Welcome Guest ( Log In | Register )


Important

The forums will be closing permanently the weekend of March 15th. Please see the notice in the announcements forum for details.

Pages: (23) [1] 2 3 ... Last » ( Go to first unread post )
New FLV and Matroska plugins for VirtualDub, (works in progress)
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
fccHandler
Posted: Sep 26 2010, 04:58 AM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



Moitah's old FLV plugin was starting to show its age. Most of the FLVs I see now use AVC video and AAC audio, and his plugin never supported those. Therefore I took it upon myself to create a brand new FLV plugin from scratch.

As of today I can successfully open all of the FLV files I have, so I guess it's time to go public with it:

http://fcchandler.home.comcast.net/~fcchan...ler/Plugins/FLV

Known issues:
  • Not all formats are supported, but I think I support everything that Moitah's filter supported.
  • VirtualDub can't decompress AAC audio because there is no ACM codec for it. It can be Direct Stream Copied though.
  • Currently no workaround is implemented for variable frame rate video. A/V sync may suffer in this case.

Enjoy. smile.gif

--------------------
May the FOURCC be with you...
 
     Top
stephanV
Posted: Sep 26 2010, 08:49 AM


Spam killer ;)


Group: Moderators
Posts: 4348
Member No.: 8917
Joined: 18-February 04



Thanks. Personally I don't have much use for this, but it is good to see you are still active. smile.gif

The video decoding must be done through ffdshow?

--------------------
useful links:
VirtualDub, Input plugins and filters, AviSynth, AVI-Mux GUI, AC3ACM by fcchandler, VirtualDub FAQ
 
    Top
Placio74
Posted: Sep 26 2010, 04:05 PM


VideoAudio


Group: Members
Posts: 1216
Member No.: 21485
Joined: 24-May 07



QUOTE (stephanV @ Sep 26 2010, 10:49 AM)
The video decoding must be done through ffdshow?

Yes - for FLV1 and VP6F.
For AVC - also can use x264vfw.

--------------------
VideoAudio.pl - Serwis o technologii wideo & audio
 
     Top
Barough
  Posted: Sep 27 2010, 01:06 PM


Advanced Member


Group: Members
Posts: 95
Member No.: 22677
Joined: 24-December 07



Thnx smile.gif

--------------------
user posted image
 
    Top
Dstruct
Posted: Sep 28 2010, 03:50 AM


Advanced Member


Group: Members
Posts: 257
Member No.: 24005
Joined: 8-August 08



Yep, thanks for the plugin!
 
    Top
jbionic
Posted: Sep 29 2010, 06:35 PM


Member


Group: Members
Posts: 28
Member No.: 28456
Joined: 6-September 10



QUOTE (Placio74 @ Sep 26 2010, 04:05 PM)
QUOTE (stephanV @ Sep 26 2010, 10:49 AM)
The video decoding must be done through ffdshow?

Yes - for FLV1 and VP6F.
For AVC - also can use x264vfw.

how can I decode the flv file through ffdshow?
I mean, I tried to open it in VD, but it shows an err screen
 
     Top
Placio74
Posted: Sep 30 2010, 04:28 AM


VideoAudio


Group: Members
Posts: 1216
Member No.: 21485
Joined: 24-May 07



QUOTE (jbionic @ Sep 29 2010, 08:35 PM)
I mean, I tried to open it in VD, but it shows an err screen

What error?

QUOTE (jbionic @ Sep 29 2010, 08:35 PM)
how can I decode the flv file through ffdshow?

When You install ffdshow do not forget to select VFW interface.

Go to - VFW Configuration (ffdshow video encoder configuration) > Decoder > Codecs - and set support for selected codecs.

--------------------
VideoAudio.pl - Serwis o technologii wideo & audio
 
     Top
DarrellS
Posted: Oct 1 2010, 08:10 PM


Advanced Member


Group: Members
Posts: 567
Member No.: 1061
Joined: 28-November 02



Thanks fcchandler!

Saves me from having to use FLVextract to demux files and mux to mp4 with Yamb.
 
     Top
fccHandler
Posted: Oct 3 2010, 07:01 AM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



I'm going to go ahead and give you guys a little taste of the other plugin I'm currently working on:

http://fcchandler.home.comcast.net/Plugins/Matroska

Be warned that this is VERY experimental right now. I can open exactly two of my Matroska files with this. But hey, it's a start. smile.gif

Stay tuned for further developments.

--------------------
May the FOURCC be with you...
 
     Top
Barough
Posted: Oct 3 2010, 01:08 PM


Advanced Member


Group: Members
Posts: 95
Member No.: 22677
Joined: 24-December 07



QUOTE (fccHandler @ Oct 3 2010, 08:01 AM)
I'm going to go ahead and give you guys a little taste of the other plugin I'm currently working on:

http://fcchandler.home.comcast.net/Plugins/Matroska

Be warned that this is VERY experimental right now. I can open exactly two of my Matroska files with this. But hey, it's a start. smile.gif

Stay tuned for further developments.

That's very nice smile.gif

--------------------
user posted image
 
    Top
pureocean
Posted: Oct 4 2010, 08:08 AM


Advanced Member


Group: Members
Posts: 53
Member No.: 27197
Joined: 13-March 10



@fccHandler:

Thank you very much for you to start preparing this plugins(Especially Matroska). Of course, will improve over time. This input-plugins will be useful to many people, as your WMV/MPG2/AC3ACM plugins. I wish, you success and patient on this works.
 
     Top
v0lt
Posted: Oct 4 2010, 02:23 PM


Advanced Member


Group: Members
Posts: 119
Member No.: 26125
Joined: 5-September 09



fccHandler
Thank you very much. We waited a very long time. smile.gif

My tests:
mkvmerge
0.8.0 - Opened
0.8.9 - Opened
0.9.5 - Opened
1.0.1 - Opened
1.4.1 - Opened
1.4.2 - Opened
1.5.0 - Opened or Crashed
1.5.5 - Opened or Crashed
1.6.5 - Crashed
1.7.0 - Crashed
2.0.2 - Crashed
2.1.0 - Crashed
2.9.8 - Parse failed
3.4.0 - Parse failed
4.0.0 - Parse failed

VirtualDubMod 1.5.10.2 - Opened

Direct Show Matroska Muxer - Hung
 
     Top
Dstruct
Posted: Oct 5 2010, 10:19 AM


Advanced Member


Group: Members
Posts: 257
Member No.: 24005
Joined: 8-August 08



Crash on MKV loading:

CODE
VirtualDub crash report -- build 32839 (release)
--------------------------------------

Disassembly:
10004d60: 32c0            xor    al, al
10004d62: c20400          ret    0004
10004d65: cc              int    3
10004d66: cc              int    3
10004d67: cc              int    3
10004d68: cc              int    3
10004d69: cc              int    3
10004d6a: cc              int    3
10004d6b: cc              int    3
10004d6c: cc              int    3
10004d6d: cc              int    3
10004d6e: cc              int    3
10004d6f: cc              int    3
10004d70: 8b442404        mov    eax, [esp+04h]
10004d74: 8b4820          mov    ecx, [eax+20h]
10004d77: db4020          fild   dword ptr [eax+20h]
10004d7a: 85c9            test   ecx, ecx
10004d7c: 7d06            jge    10004d84
10004d7e: dc0540420110    fadd   qword ptr [10014240]
10004d84: df6c2408        fild   qword ptr [esp+08h]
10004d88: 8b5024          mov    edx, [eax+24h]
10004d8b: 85d2            test   edx, edx
10004d8d: dec9            fmulp  st(1), st
10004d8f: db4024          fild   dword ptr [eax+24h]
10004d92: 7d06            jge    10004d9a
10004d94: dc0540420110    fadd   qword ptr [10014240]
10004d9a: dc0d78440110    fmul   qword ptr [10014478]
10004da0: def9            fdivp  st(1), st
10004da2: dc0538420110    fadd   qword ptr [10014238]
10004da8: e8e91c0000      call   10006a96
10004dad: c20c00          ret    000c
10004db0: 8b442404        mov    eax, [esp+04h]
10004db4: 8b4824          mov    ecx, [eax+24h]
10004db7: db4024          fild   dword ptr [eax+24h]
10004dba: 85c9            test   ecx, ecx
10004dbc: 7d06            jge    10004dc4
10004dbe: dc0540420110    fadd   qword ptr [10014240]
10004dc4: df6c2408        fild   qword ptr [esp+08h]
10004dc8: 8b5020          mov    edx, [eax+20h]
10004dcb: 85d2            test   edx, edx
10004dcd: dec9            fmulp  st(1), st
10004dcf: dc0d78440110    fmul   qword ptr [10014478]
10004dd5: db4020          fild   dword ptr [eax+20h]
10004dd8: 7d06            jge    10004de0
10004dda: dc0540420110    fadd   qword ptr [10014240]
10004de0: def9            fdivp  st(1), st
10004de2: dc0538420110    fadd   qword ptr [10014238]
10004de8: e8a91c0000      call   10006a96
10004ded: c20c00          ret    000c
10004df0: 8b442404        mov    eax, [esp+04h]
10004df4: 8b4824          mov    ecx, [eax+24h]
10004df7: 8b5104          mov    edx, [ecx+04h]      <-- FAULT
10004dfa: 8b442408        mov    eax, [esp+08h]
10004dfe: 895004          mov    [eax+04h], edx
10004e01: 8b4908          mov    ecx, [ecx+08h]
10004e04: 894808          mov    [eax+08h], ecx
10004e07: c70000000000    mov    dword ptr [eax], 00000000
10004e0d: c6400c00        mov    byte ptr [eax+0ch], 00h
10004e11: c20800          ret    0008
10004e14: cc              int    3
10004e15: cc              int    3
10004e16: cc              int    3
10004e17: cc              int    3
10004e18: cc              int    3
10004e19: cc              int    3
10004e1a: cc              int    3
10004e1b: cc              int    3
10004e1c: cc              int    3
10004e1d: cc              int    3
10004e1e: cc              int    3
10004e1f: cc              int    3
10004e20: 8b442408        mov    eax, [esp+08h]
10004e24: 8b54240c        mov    edx, [esp+0ch]
10004e28: c20c00          ret    000c
10004e2b: cc              int    3
10004e2c: cc              int    3
10004e2d: cc              int    3
10004e2e: cc              int    3
10004e2f: cc              int    3
10004e30: 6aff            push   0ffh
10004e32: 68662f0110      push   10012f66
10004e37: 64a100000000    mov    eax, fs:[00000000]
10004e3d: 50              push   eax
10004e3e: 83ec0c          sub    esp, 0ch
10004e41: 53              push   ebx
10004e42: 55              push   ebp
10004e43: 56              push   esi
10004e44: 57              push   edi
10004e45: a134830110      mov    eax, [10018334]
10004e4a: 33c4            xor    eax, esp
10004e4c: 50              push   eax
10004e4d: 8d442420        lea    eax, [esp+20h]
10004e51: 64a300000000    mov    fs:[00000000], eax
10004e57: 8bf9            mov    edi, ecx
10004e59: 897c2414        mov    [esp+14h], edi
10004e5d: 8b4424          mov    eax, [esp+24h]

Built on Aegis on Sun Sep 05 20:52:28 2010 using compiler version 1400

Windows 5.1 (Windows XP x86 build 2600) [Service Pack 3]

EAX = 00bd3d30
EBX = 00c5a9ac
ECX = 00000000
EDX = 10004df0
EBP = 00c5a9d8
ESI = 00c5a4e8
EDI = 00c5a9b8
ESP = 0012fcec
EIP = 10004df7
EFLAGS = 00210246
FPUCW = ffff027f
FPUTW = ffffffff

Crash reason: Access Violation

Crash context:
An out-of-bounds memory access (access violation) occurred in module 'Matroska'...

...reading address 00000004.

Pointer dumps:

EAX   00bd3d30: 10014818 00e50048 00000000 ffffffff 01ffa298 00000002 3b9aca00 027c6a3d
EBX   00c5a9a8: 00bd3d28 00000000 00000000 00c56358 3b9aca00 027c6a3d 0003170f 00000000
EDX   10004df0: 0424448b 8b24488b 448b0451 50890824 08498b04 c7084889 00000000 0c40c600
ESI   00c5a4e8: 005fb7b0 00000000 00000000 00000000 00000000 00000000 00000000 00000000
EDI   00c5a9b8: 3b9aca00 027c6a3d 0003170f 00000000 00000001 00000001 00000000 00000000
ESP   0012fce8: 77da6c03 004d690b 00bd3d30 00c5a9d8 00c56374 00c5a498 0012fda4 00000000
     0012fd08: 00c5a4e8 00c56374 00c5a498 00c56380 005fb894 000001c6 0012fd58 005d7a0f
     0012fd28: 00000007 004d6f0e 00bd3d30 00c56358 00c5a498 00c56ca8 00c5a498 00000000
     0012fd48: 00bd3d30 00c56380 005fb894 000004e9 0012fd98 005d7a83 00000003 00465057
EBP   00c5a9d8: 00000000 00000000 00000000 00000000 00a10044 010c0179 00000170 ffffffff
     00c5a9f8: 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000000
     00c5aa18: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00c5aa38: 00000000 00000000 00000000 00518fb1 0012f3ec 006425c0 00000000 00000000

Thread call stack:
10004df7: Matroska!VDGetPluginInfo [10000000+3550+18a7]
004d690b: VDVideoSourcePlugin::VDVideoSourcePlugin()
004d6f0e: VDInputFilePlugin::GetVideoSource()
00465057: VDProject::Open()
0051d1d8: VDAutoLogger::VDAutoLogger()
00448cbb: VDProcessCommandLine()
7e368734: USER32!GetDC [7e360000+86c7+6d]
7e36882a: USER32!GetDC [7e360000+86c7+163]
7e3689cd: USER32!GetWindowLongW [7e360000+88a6+127]
7e3693e9: USER32!PeekMessageW [7e360000+929b+14e]
7e3693a8: USER32!PeekMessageW [7e360000+929b+10d]
7e37a43b: USER32!PeekMessageA [7e360000+1a340+fb]
004520d8: WinMain@16()
005b771b: __tmainCRTStartup()
7c817077: kernel32!RegisterWaitForInputIdle [7c800000+1702e+49]



File was

CODE
General
Format                           : Matroska
File size                        : 7.93 GiB
Duration                         : 2h 20mn
Overall bit rate                 : 8 069 Kbps
Writing application              : mkvmerge v2.2.0 ('Turn It On Again') built on Mar  4 2008 12:58:26
Writing library                  : libebml v0.7.7 + libmatroska v0.8.1

Video
ID                               : 1
Format                           : AVC
Format/Info                      : Advanced Video Codec
Format profile                   : High@L4.1
Format settings, CABAC           : Yes
Format settings, ReFrames        : 3 frames
Codec ID                         : V_MPEG4/ISO/AVC
Duration                         : 2h 20mn
Bit rate                         : 6 556 Kbps
Width                            : 1 280 pixels
Height                           : 532 pixels
Display aspect ratio             : 2.40:1
Frame rate                       : 23.976 fps
Color space                      : YUV
Chroma subsampling               : 4:2:0
Bit depth                        : 8 bits
Scan type                        : Progressive
Bits/(Pixel*Frame)               : 0.402
Stream size                      : 6.29 GiB (79%)
Title                            : CHD
Writing library                  : x264 core 61 r957M 7ce0f2c
Encoding settings                : cabac=1 / ref=3 / deblock=1:-3:-3 / analyse=0x3:0x113 / me=umh / subme=7 / psy_rd=0.6:0.6 / brdo=1 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=2 / deadzone=6,4 / chroma_qp_offset=-8 / threads=6 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=3 / wpredb=1 / bime=1 / keyint=250 / keyint_min=25 / scenecut=40(pre) / rc=2pass / bitrate=6556 / ratetol=1.0 / qcomp=1.00 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / pb_ratio=1.30 / aq=2:0.50 / zones=199190,202511,b=0.3

Audio
ID                               : 2
Format                           : DTS
Format/Info                      : Digital Theater Systems
Codec ID                         : A_DTS
Duration                         : 2h 20mn
Bit rate mode                    : Constant
Bit rate                         : 1 510 Kbps
Channel(s)                       : 6 channels
Channel positions                : Front: L C R, Side: L R, LFE
Sampling rate                    : 48.0 KHz
Bit depth                        : 24 bits
Stream size                      : 1.48 GiB (19%)
Language                         : Chinese
 
    Top
OPODER!!!
Posted: Oct 7 2010, 03:54 PM


Newbie


Group: Members
Posts: 5
Member No.: 26679
Joined: 27-December 09



Thank your for your plugins!
 
     Top
fccHandler
Posted: Oct 9 2010, 04:54 AM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



v0lt and Dstruct: Thank you for your testing results.

I've uploaded tonight's build, which adds preliminary support for AVC video and AAC audio, and should fix the crash posted by Dstruct:

http://fcchandler.home.comcast.net/Plugins/Matroska

Currently the parsing stage concludes with just four possible outcomes: Success, a "Parse failed" popup, a crash, or a hang. But as I get deeper into this I do plan to implement much better error handling in the future.

I have found one Matroska file in which the parsing is very slow. I mean, like, pathologically slow. I haven't figured out yet what is going on there.

FWIW, my code is based on this specification:

http://www.matroska.org/technical/specs/index.html

However, I have at least one Matroska file which violates that spec. The Info block indicates that it was created using libmkv 0.6.4 and HandBrake 0.9.4. I say it is broken because they have written the MuxingApp field with an id of 0x80, not 0x4D80 as it should be. I've worked around this in the code, but I'm not sure who I should complain to about it... dry.gif

As with the FLV plugin, you will not be able to decode AAC within VirtualDub. For now it can only be Direct Stream Copied.

--------------------
May the FOURCC be with you...
 
     Top
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:
337 replies since Sep 26 2010, 04:58 AM Track this topic | Email this topic | Print this topic
Pages: (23) [1] 2 3 ... Last »
<< Back to VirtualDub Filters and Filter Development