View Full Version : Decoding VC-1 into AviSynth
Blue_MiSfit
9th July 2008, 04:49
Hey all,
So I'm trying to figure out a very fast way to decode VC-1 into an AviSynth script.
My source is an adult title from a BluRay that has 1080i60 VC-1, and I'm trying to downconvert it to 960x540p60.
I can't seem to get enough decoding speed out of WMVideo Decoder in DirectShowSource, so I'm looking into alternatives.
ffmpegsource is good, but not ideal since it's not multithreaded (guessing). Cyberlink filters need to be babied IIRC, and I don't think you can use the Media Player Classic HC VC1 decoder outside of MPC.
Suggestions?? I want to take the source MKV (remuxed from the m2ts source) and push it through x264 at real time, just to be academic about it. CRF encoding and high speed settings are mandatory - obviously! :)
~MiSfit
henryho_hk
9th July 2008, 07:25
Can you register the MPC-HC standalone filter (http://sourceforge.net/project/showfiles.php?group_id=170561), raise the merit, and then use DirectShowSource?
Blue_MiSfit
9th July 2008, 07:27
um... AWESOME!
I had no idea there was a standalone filter!
Trying now...
mikeytown2
9th July 2008, 09:01
ffmpegsource documentation
threads: Sets the number of decoder threads used. Defaults to the number of cpus reported by windows. Ignored by lavc if the used decoder doesn't implement it.
Guess you won't know till you try since its decoder dependent
Wilbert
9th July 2008, 10:01
Can you register the MPC-HC standalone filter, raise the merit, and then use DirectShowSource?
One of these (http://sourceforge.net/project/showfiles.php?group_id=170561&package_id=264678&release_id=609982)? Which one?
saint-francis
9th July 2008, 14:16
Can you register the MPC-HC standalone filter (http://sourceforge.net/project/showfiles.php?group_id=170561), raise the merit, and then use DirectShowSource?
But you get no DXVA unless it's connected to a DXVA supporting renderer. You were talking about using it for DXVA right? For software decoding it's the same as the ffmpeg decoder.
Inventive Software
9th July 2008, 15:53
But you get no DXVA unless it's connected to a DXVA supporting renderer. You were talking about using it for DXVA right? For software decoding it's the same as the ffmpeg decoder.
Regarding the connecting to a DXVA-supported renderer, is there a way to create a "fake" renderer that uses DXVA and merely throughputs the data to AviSynth?
saint-francis
9th July 2008, 17:18
Regarding the connecting to a DXVA-supported renderer, is there a way to create a "fake" renderer that uses DXVA and merely throughputs the data to AviSynth?
I was asking about this in the MPC HC thread and people seemed to think it was impossible. Impossible at this time at least. I would be a miracle if it were made to work though.
Blue_MiSfit
9th July 2008, 19:05
I would imagine that invoves downloading the data back from the video card across PCIe to RAM. I can't imagine that's nearly as fast as just playing straight from the framebuffer.
Anyway - I tried the MPC decoder (without DXVA) and avisynth just hung waiting for the filter graph to initialize :)
Still trying..
If I use ffdshow to decode, how should I set up the graph? Should I enable libavcodec or Windows VC1 decoding inside ffdshow?
Haali splitter (MKV) -> ffdshow decoder ?
~MiSfit
Blue_MiSfit
9th July 2008, 20:47
So - I think I found at least part of the problem - my source is true interlaced 1080i VC1.
PowerDVD played it perfectly, is there any way to use their filters?
~MiSfit
Wilbert
11th July 2008, 19:32
Can you register the MPC-HC standalone filter, raise the merit, and then use DirectShowSource?
One of these (http://sourceforge.net/project/showfiles.php?group_id=170561&package_id=264678&release_id=609982)? Which one?
Anyone ? :)
Blue_MiSfit
11th July 2008, 19:50
Sorry Wilbert :)
It was confusing for me too, but the one you want is MPCVideoDec. It works just fine, but being based on the ffmpeg decoder it doesn't support interlaced VC-1 :(
I got the video to decode with DirectShow, simply by using WMVideo Decoder DMO. Unfortunately, I still have a huge bottleneck somewhere (can't get it to bob at an acceptable speed, even with just bob() and MT)!
~MiSfit
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.