|
|
| 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.
-------------------- May the FOURCC be with you... |
 |
| 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. 
The video decoding must be done through ffdshow?
-------------------- useful links: VirtualDub, Input plugins and filters, AviSynth, AVI-Mux GUI, AC3ACM by fcchandler, VirtualDub FAQ |
 |
| 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 |
 |
| Barough |
Posted: Sep 27 2010, 01:06 PM |
 |
|

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

|
Thnx
--------------------
 |
 |
| 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! |
 |
| 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 |
 |
| 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 |
 |
| 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. |
 |
| 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. 
Stay tuned for further developments.
-------------------- May the FOURCC be with you... |
 |
| 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. 
Stay tuned for further developments. | That's very nice
--------------------
 |
 |
| 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. |
 |
| 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. 
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 |
 |
| 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 | |
 |
| 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! |
 |
| 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... 
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... |
 |