View Full Version : ffmpegsource2 Blank initial frame
chipzoller
31st August 2011, 07:15
I'm getting an error when trying to open an MKV VC-1 BluRay stream (2048 x 1080, 29.97) using ffmpegsource2 (v2.16) in avsp: "Insanity detected: decoder returned an empty frame". I've tried changing several parameters including seekmode with no joy. Apparently, ffdshow x64 will not play this stream back via libavcodec but WMVideo decoder DMO in Windows 7 will. This is the first problem I've had opening such streams via FFMS2 and can't figure out what in this stream is causing it to fail. I've even tried re-muxing the video stream to MKV again with no luck. Any ideas?
TheFluff
31st August 2011, 19:26
Try ffvidesource("derp.mkv", threads=1). The error message means exactly what it says though; for some reason libavcodec decided to output a frame without any data in it. Before 2.16 the behavior with such frames was just to crash.
chipzoller
31st August 2011, 20:27
No change. FWIW, this is a stream extracted from my "Life" box set (Attenborough). Every one has opened without a hitch and was progressive; the last, "Plants", is proving problematic and also interlaced. I've tried extracting the stream several times with eac3to provided with MeGUI (svn 2028).
TheFluff
31st August 2011, 21:25
Provide a sample and I'll take a look.
chipzoller
31st August 2011, 22:48
Thanks for your help. First 5 seconds here: http://www.mediafire.com/?zp29i622rha0i3i
TheFluff
31st August 2011, 23:36
Thanks for your help. First 5 seconds here: http://www.mediafire.com/?zp29i622rha0i3i
[vc1 @ 0x3c220] Interlaced frames/fields support is not implemented
I guess that explains why it doesn't output anything. It also answers the mystery of whether interlaced VC-1 works in FFMS2 or not with a resounding "no".
chipzoller
31st August 2011, 23:38
Ah, that would explain it. Any other suggestions as to what I can use as a source plugin/function?
TheFluff
1st September 2011, 01:50
dss2() will probably work for your purposes. Another alternative is DGDecodeNV.
chipzoller
1st September 2011, 02:08
Oddly, DirectShowSource() and dss2() will open the 5 second sample but not the complete video file (10.9GB). dss() gives me a "can't open" error code 80004005 and DirectShowSource() a timeout waiting for graph to start.
Guest
1st September 2011, 02:22
You sample works just fine with DGDecNV. This is the only source filter I know that handles interlaced VC1 correctly.
chipzoller
1st September 2011, 02:24
Unfortunately, I don't have an Nvidia GPU or else I would gladly spend the $15 for a license.
TheRyuu
1st September 2011, 06:54
Use this (http://fileforum.betanews.com/detail/Win7DSFilterTweaker/1262732488/1) (assuming you're running Windows 7) to make sure that VC1 is using the Microsoft decoders for both 32 and 64bit.
Then try dss2 again.
chipzoller
1st September 2011, 07:00
Thanks for the advice but I still get the same error regardless of whether MS or ffdshow is used as the decoder of choice.
TheFluff
1st September 2011, 07:11
I find it really odd that it works with the sample but not with the full file. DirectShow graph debugging can be really annoying, but I guess that's what you'll have to start doing. Grab GraphStudio or something and start poking at it; also try with other smaller parts of the file and see what happens.
Guest
1st September 2011, 13:01
Unfortunately, I don't have an Nvidia GPU or else I would gladly spend the $15 for a license. You can install a $50 GT520 card alongside your ATI card, assuming you have a PCIe slot available. That card has the VP5 engine, which is the fastest to date for CUVID by a large margin.
chipzoller
1st September 2011, 22:31
I might consider doing that in the future, but I'd like to figure this out first. I've never had the need to mess with GraphEdit and so am unsure about how I can construct a graph to have avisynth pick it up for processing. When I render this file, it connects to WMVideo Decoder DMO. If I change VC-1 decoder to wmv9 in ffdshow x64 I can have it renderable in directshow filters with other players, but how can I force that behavior elsewhere? Even when I set the merit to high in ffdshow I can't render the file in the editor.
TheRyuu
2nd September 2011, 01:18
Can you upload a slightly larger sample that has a reproducible failure (I can take a look at it)?
chipzoller
2nd September 2011, 05:10
1.5 minute clip here: http://www.mediafire.com/?8adtciod2oy8odb
EDIT: That sample doesn't exhibit the problem I am experiencing. However, I tried splitting larger chunks from the problematic file and found that even dividing it in half produced 2 perfectly fine files. I just combined them back into a whole file and while ffmpegvideosource() still complains, dss2() will render the file now. Really bizarre
chipzoller
5th September 2011, 19:17
Thanks again, guys, for offering to help me out with this.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.