View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
nevcairiel
19th August 2011, 19:38
Thanks for the new Video decoder. I'm doing tests right now. I notice MPEG1 videos are not decoded by LAV Video decoder if I disable MPEG1 support in ffdshow. It's the Windows default one which is used. Is it intended (lower merit) ? Does the MS one better then the ffmpeg one ?
Also, it does not decode MP1 audio (whereas ffdshow do). Intended ?
With which splitter? Probably the media types are different.
pirlouy
19th August 2011, 19:58
I try to use only LAV stuff (except madVR decoders), and I confirm it's the LAV splitter. It's for all MPEG1 videos !
As you guess, these are poor quality videos.
Here is an example, with MPEG1 videos and MP1 audio:
http://dl.free.fr/vpgBXGDfH (5Mo)
6233638
19th August 2011, 20:29
You mean LAV CUVID uses more power than LAV CPU Video decoder ??? I though one reason of CUVID was the fact it uses a dedicaced GPU processor which save ressources ??!!!!Yes, but it makes my GPU (which is a gaming-class GPU rather than HTPC) go into its high power mode rather than staying in its low power mode which means the system ends up using considerably more power.
It probably doesn't need to be in the high power state, but there doesn't seem to be a way to force it to stay in the low power mode, it's automatic.
The CPU does the same thing when running LAV Video Decoder, clocking up to the full speed, but you can create a power management profile to keep it downclocked rather than going up to full speed to keep power consumption down. (as CPU usage isn't going over 30% it's fine in the low power state)
DXVA shaves off 10W compared to the CPU decoding, but I can't use MadVR with DXVA.
pirlouy
19th August 2011, 20:43
Yeah... I'm not really convinced. Maybe someone with a GT430 could tell his results.
The use of a special dedicaced processor should not interfere with GPU processor.
It seems to me it's better to use CPU decoder (LAV Video or MadVR -actual- decoders) than CUDA solution. CUDA is like DXVA: untrustworthy.
nevcairiel
19th August 2011, 20:45
The real advantage is the deinterlacing with lav cuvid. ;)
Plutotype
19th August 2011, 21:10
Hi Nev,
tested 0.32, so far no issues with video. I have couple of general questions:
- LAVvideo - what would speak for your LAVvideo decoder to be used instead of internal madVR or even ffdshow video decoder?+/-
- LAVvideo - number of threads is the number of physical cores or inclusive virtual ones?
- LAVsplitter - is File Source ( Async. ) still needed in the preffered list of external decoders?
- LAVsplitter - does "remove audio decoder before audio stream switch" work properly with MPC-HC? In what exactly does it help?
- should I use exe installer instead of .bat files?
Thanks
Pluto
madshi
19th August 2011, 21:35
- LAVvideo - what would speak for your LAVvideo decoder to be used instead of internal madVR or even ffdshow video decoder?+/-
Compared to the current version of the madVR internal decoders:
+ LAV fully supports Reclock
+ LAV allows you to use post processing, e.g. DirectVobSub
+ LAV supports more video codecs
o performance should be identical
- LAV doesn't support VC-1 interlaced, but doesn't reject it
Compared to ffdshow:
+ newer version of ffmpeg/libav library, I think
+ full support for 9bit & 10bit decoding, 4:2:0, 4:2:2 and 4:4:4
+ capable of outputting decoded video untouched to madVR
+ dedicated and active developer -> quick bugfixes etc
- LAV doesn't support VC-1 interlaced, but doesn't reject it
nevcairiel
19th August 2011, 21:37
- LAV doesn't support VC-1 interlaced, but doesn't reject it
If you tell me how. ;)
I tried, but the only method i could come up with was checking the interlaced flag in the header.
However, that flag is also set on 60i coded EVOs with forced pulldown, which decode just fine.
In the end, i decided to not block it.
madshi
19th August 2011, 21:42
If you tell me how. ;)
I tried, but the only method i could come up with was checking the interlaced flag in the header.
However, that flag is also set on 60i coded EVOs with forced pulldown.
In the end, i decided to not block it.
Well, it's a pity that ffmpeg/libav doesn't support interlaced decoding yet. I don't think there's anything you can do to fix the problem. madVR can work around it by simply switching to the Intel VC-1 decoder for interlaced content.
But truth be told, I consider the MS decoder to be superior to both the ffmpeg/libav and Intel VC-1 decoders, anyway. Consequently I've disabled the internal VC-1 decoder(s) in madVR by default. Maybe it would be worth a thought disabling the VC-1 decoder by default in LAV Video, too? I don't really see why anybody would want to use the ffmpeg/libav VC-1 decoder. It's slower than the MS VC-1 decoder, without having any advantages that I'm aware of. But maybe I'm missing something?
nevcairiel
19th August 2011, 21:46
The MS decoder doesn't work with EVO streams, don't ask me why not.
But i guess cannot make it right for everyone.
SamuriHL
19th August 2011, 21:48
I would prefer to keep EVO streams working. ;) Although I suppose you could add a toggle to turn off VC1.
nevcairiel
19th August 2011, 21:50
There are toggles. :p
SamuriHL
19th August 2011, 21:52
There are toggles. :p
Ah, yea, that's true. So.....what's the problem? :D
jmone
19th August 2011, 21:57
I've given up on keeping the EVOs and now almost finished remuxing all my HD-DVD content to Blu or just M2TS....Just 3 Box Sets of TV Series to go...
madshi
19th August 2011, 22:00
The MS decoder doesn't work with EVO streams, don't ask me why not.
It works just fine for me with EVO streams, using the Haali Media Splitter.
jmone
19th August 2011, 22:05
I actually see the need for a Deinterlacer as more of an issue than VC1(i) for simplifying the Filter environment. I'm thinking here of the MC16 RO setup, where if JR wanted to replace FFDSHOW with LAVVideo, VC1 handling would not change (RO already uses the preinstalled MS Filter for this anyway as this option is OFF in ffdshow), but they would still need to load FFDSHOW RAW to get the deinterlacing options like YADIF.
nevcairiel
19th August 2011, 22:09
It works just fine for me with EVO streams, using the Haali Media Splitter.
Right, i just found the issue that caused it to not work. Should've looked earlier. :)
I also broke EVO VC-1 decoding with LAV CUVID recently, its fixed now, but not yet released .. oh well. Screw those crazy EVOs. :)
SamuriHL
19th August 2011, 22:09
It works just fine for me with EVO streams, using the Haali Media Splitter.
Blasphemy! :p :D
SamuriHL
19th August 2011, 22:11
Right, i just found the issue that caused it to not work. Should've looked earlier. :)
I also broke EVO VC-1 decoding with LAV CUVID recently, its fixed now, but not yet released .. oh well. Screw those crazy EVOs. :)
ROFLMAO! I guess I'll need to build me a new LAV CUVID. :D
jmone
19th August 2011, 22:17
mmmm - I'm now almost tempted to just copy the EVOs from the TV Box Sets as they are already stored one per eps instead of remuxing them
Budtz
19th August 2011, 22:19
Is there a sharpening filter in the new video decoder or can i use ffdshow's in combination?
nevcairiel
19th August 2011, 22:20
Is there a sharpening filter in the new video decoder or can i use ffdshow's in combination?
You can use ffdshow raw as post-processor just fine.
Budtz
19th August 2011, 22:24
You can use ffdshow raw as post-processor just fine.
Is ffdshow raw different from the normal ffdshow tryouts?
and would there be any improvments to pq by doing this vs just using ffdshow alone for both decoding and postprocessing?
nevcairiel
19th August 2011, 22:26
There is too many factors involved to really comment on this right off the bat. ffdshow has some known issues, but if they affect you directly is impossible to say.
Plutotype
19th August 2011, 22:27
madshi,
thanks for your responses. Do you still see benefits to have internal video decoder inside of madVR when you can offload the progress on an video decoder to Nev? Competition is good, but how can a ordinary movie freak know what is going on?:)
Nev,
Could you please give me short answers my other questions I asked before?
thanks
Pluto
nevcairiel
19th August 2011, 22:30
- LAVvideo - number of threads is the number of physical cores or inclusive virtual ones?
If you want maximum performance, leave it on "Auto".
The fastest option is number of your cores (including the HT cores) * 1.5 - that is what Auto will use.
- LAVsplitter - is File Source ( Async. ) still needed in the preffered list of external decoders?
Not if you use the installer. But it doesn't hurt either.
- LAVsplitter - does "remove audio decoder before audio stream switch" work properly with MPC-HC? In what exactly does it help?
There are some minor issues with MPC-HC, but only if you disable the MPC-HC audio switcher. The advantage of that option is that it allows you to switch the audio decoder for different formats - if you only want the same for most formats anyway, just leave it off.
- should I use exe installer instead of .bat files?
I would use the real installer, it makes sure that everything is setup properly and the LAV Splitter is the preferred splitter. Otherwise you might need the File Source thing.
If LAV Filters are the only filters you install, it doesn't make much of a difference.
The .bat files really are more for people that want to control everything.
Budtz
19th August 2011, 22:38
You can use ffdshow raw as post-processor just fine.
to do this: Do i disable all decoders in ffdshow and then enable "Raw video"?
6233638
19th August 2011, 22:48
Yeah... I'm not really convinced. Maybe someone with a GT430 could tell his results.
The use of a special dedicaced processor should not interfere with GPU processor.
It seems to me it's better to use CPU decoder (LAV Video or MadVR -actual- decoders) than CUDA solution. CUDA is like DXVA: untrustworthy.I've just checked it again; as soon as I start using LAV CUVID, power consumption jumps considerably.
With the BIOS & CPU throttling changes I've made, the system now pulls 147W with MadVR & CUVID (rather than almost 180W) and 144W with EVR-CP & CUVID, compared to 100W with EVR-CP & DXVA.
Obviously with this being a gaming card, the difference in power consumption between its high and low power states is going to be considerably more than a HTPC card like the GT430.
If there's a way to get CUVID to do the decoding without kicking it into the high power state, it looks like it could shave off about 7W of power usage compared to CPU decoding. (which is currently at 110W)
UPDATE: Nvidia Inspector's "Multi Display Power Saver" tool lets me force the GPU to stay in the P8 (Video) mode rather than the P0 (Full 3D) power state. This drops power consumption to 103W with MadVR & LAV CUVID compared to 110W with CPU decoding, or 100W with EVR-CP & DXVA.
This is a less-than-ideal situation though, and it would be better if CUVID only put the GPU into the P8 power state rather than P0.
VipZ
19th August 2011, 22:49
Hi Nev, awesome work on LAV Video release :)
The recent change to allow MS VC1 on EVO's causes more issues than it solves IMO, this being wrong is pretty much the only thing making VC1 simple.
Because this is wrong, ffdshow (wrong fps and sync loss) or MS VC1 (sync but stutters) don't connect to LAV Spiltter on EVO's which don't work anyway. This way you can set any other VC1 decoder as a higher merit over LAV Video to handle VC1 in any other container where there are no issues, leaving LAV Video to handle VC1 in EVO perfectly.
I have pretty much replaced all my HD-DVD's but before this change LAV was the only filter set to be able to deal with EVO flawlessly.
I have yet to encounter any issues with decoding any content with LAV Video set to decode all formats, ffdshow set as disabled for everything but VC1 with wmv9, this is quite a simple setup, but I haven't come across any content which doesn't work with it.
Plutotype
19th August 2011, 22:56
Thanks,
Regarding selecting "auto" for number of threads at LAVvideo - I think I found a bug. When selecting auto and playing MPEG-2 video in 1080p content (m2ts file), MPC-HC crashes. It does not happen with VC-1/AVC videos (m2ts).
When I select any other number of threads for the same MPEG-2, it works fine ( tried some between 1-12 ).
Pluto
rahzel
19th August 2011, 23:15
thanks nev.
lav video works great on my desktop; gonna try it on my htpc later. I can hopefully ditch divx h264.
lauhangwoo
19th August 2011, 23:30
When I installed LAV Filters via installer, I can't complete Windows Experience Index testing anymore.
It fails at Windows Media Decoding optimization or whatever called in english.
This doesn't happen with zip version of LAV Filters x86/x64.
LAV Filters 0.32, Windows7 x64
pirlouy
19th August 2011, 23:43
But truth be told, I consider the MS decoder to be superior to both the ffmpeg/libav and Intel VC-1 decoders, anyway. Consequently I've disabled the internal VC-1 decoder(s) in madVR by default. Maybe it would be worth a thought disabling the VC-1 decoder by default in LAV Video, too? I don't really see why anybody would want to use the ffmpeg/libav VC-1 decoder. It's slower than the MS VC-1 decoder, without having any advantages that I'm aware of. But maybe I'm missing something?
Yes !
With MS decoder, I have some problems: even if it needs less CPU, the video in not always synchronized with audio (and subtitles), there is a delay after some time, or after seeking; and I don't have this problem with ffmpeg (madVR, ffdshow or LAV).
Like I never have problem with ffmpeg, I stay with it.
And it seems I don't have any interlaced videos (I don't have DVD).
mindbomb
19th August 2011, 23:45
to do this: Do i disable all decoders in ffdshow and then enable "Raw video"?
you can do this, but there already is an "ffdshow raw video filter" which is set up like this for convenience.
Also, speaking of that, how good is ffdshow at detecting when to use deinterlacing?
Also, what is wrong with the intel vc-1 decoder? I understand the problems with ffmpeg's, but i would think intel's would be fine.
I can hopefully ditch divx h264.
Heh, I was using divx h264 on one of my computers too, though now I am using lav video. It hasn't been updated for such a long time, I wonder if ffmpeg has more or less caught up to it in terms of performance.
pirlouy
19th August 2011, 23:50
UPDATE: Nvidia Inspector's "Multi Display Power Saver" tool lets me force the GPU to stay in the P8 (Video) mode rather than the P0 (Full 3D) power state. This drops power consumption to 103W with MadVR & LAV CUVID compared to 110W with CPU decoding, or 100W with EVR-CP & DXVA.
This is a less-than-ideal situation though, and it would be better if CUVID only put the GPU into the P8 power state rather than P0.
Thanks for your tests; I'm sure it can help people, and maybe Nevcairiel will find a solution to this problem.
6233638
20th August 2011, 00:01
Thanks for your tests; I'm sure it can help people, and maybe Nevcairiel will find a solution to this problem.As it's more CUVID related than LAV Filters (though it was the new LAV Video Decoder that got me started) I have moved discussion over to that topic: http://forum.doom9.org/showthread.php?p=1520556#post1520556
In short: I now have even lower power consumption than DXVA when playing back SD video using this tool.
There are three power consumption modes for my GPU:P12, low power for 2D
P8, medium power for Video
P0, full power for 3D
DXVA automatically kicks the GPU into P8 power consumption, so EVR-CP/DXVA uses 100W.
With this tool, MadVR/CUVID can run in the P12 state with SD videos, dropping consumption to 92W. (and P8 with HD, at 103W)
So I have effectively halved my power consumption when playing back SD video from 180W this morning to 92W now!
rahzel
20th August 2011, 00:38
Heh, I was using divx h264 on one of my computers too, though now I am using lav video. It hasn't been updated for such a long time, I wonder if ffmpeg has more or less caught up to it in terms of performance.
<--djskribbles from 'AHD'. ;)
bruce73
20th August 2011, 01:10
Sorry for the noob question, but I'm new to LAV and have a quick question about audio. I can't get DTS-HD MA bitstreamed with the LAV decoder with Daum. I have to use it's built-in decoder. Is there a setting I need to enable or disable?
Win 7/64
GT-430
Daum PotPlayer 1.5.29332 (x86)
LAV 0.32
STaRGaZeR
20th August 2011, 01:11
CUDA is like DXVA: untrustworthy.
Everything GPU related = problems. It's a huge mess, with only one culprit: drivers. Drivers suck, all companies the same.
nand chan
20th August 2011, 02:47
Everything GPU related = problems. It's a huge mess, with only one culprit: drivers. Drivers suck, all companies the same.
I can confirm this, drivers suck. Both manufacturer's GPU hardware has been easily capable of supporting 10-bit output now but neither company has actually written drivers worth a damn yet so we still can't use them.
@nevcairiel: Does this build of LAV Video include the swscale levels bug fix?
jmone
20th August 2011, 06:28
Anyone got a link to a build of LAVSplitter with the EVO fix in it I could test?
Thanks
Nathan
betaking
20th August 2011, 07:05
Anyone got a link to a build of LAVSplitter with the EVO fix in it I could test?
Thanks
Nathan
http://hotfile.com/dl/127317313/dd3abe3/LAVFilters-0.33_x86_(Svn).7z.html
cengizhan
20th August 2011, 07:43
I tried to use new version with dvbdream. video and audio is out of sync.
roytam1
20th August 2011, 08:04
I actually benchmarked this now:
Using a H264 4:4:4 10bit 1920x1080 movie, on a Core i7 2600K - in a debug build, release builds will be faster.
These times are *per frame*
Y410 (native) 7.5ms
AYUV 9.8ms
RGB32 20.8ms
YUY2 19.8ms
YV12 20.5ms
NV12 30.4ms
Granted, i just spent some time optimizing the AYUV/Y410 path before doing the measurements.
However, i do not see the higher processing requirements for AYUV.
These numbers show some interesting things, though. For example, it would be impossible to play this movie smoothly if it was 60fps, unless you renderer supports native 4:4:4 input. I am using a bicubic scaler for down-sampling the chroma, i'm sure the numbers for YUY2/YV12/NV12 would be alot lower if i switched to bilinear or even point scaling.
Also, swscale is not multi-threaded right now, but it could be in the future, so we'll see about that.
PS:
Why is there no planar 4:4:4 pixel format? That would be far more efficient then AYUV...
Edit:
Updated Y410 numbers after optimizing the path as well
It had in the past, YV24 (or I444).
but according http://forum.doom9.org/showthread.php?t=113362 , it is not in spec anymore.
AviSynth and VirtualDub will output raw YUV444p video in AVI with FourCC YV24.
for packed YUV 4:4:4, there is an alternative, IYU2.
http://www.fourcc.org/yuv.php#IYU2
jmone
20th August 2011, 08:23
http://hotfile.com/dl/127317313/dd3abe3/LAVFilters-0.33_x86_(Svn).7z.html
Thanks.
Did some testing with an EVO from "Heroes, S1E1"
MediaInfo reports it as:
Video
ID : 253 (0xFD)-85 (0x55)
Format : VC-1
Format profile : AP@L3
Duration : 53mn 17s
Bit rate : 18.6 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Scan order : 2:3 Pulldown
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.374
Stream size : 6.92 GiB (91%)
When I play it with LAVSplitter / LAVCUVID / madVR the movie is reported as 59.94 and I get presentation glitches and it parts it stutters badly.
The same file when remuxed to M2TS plays at 23.976 and while it does not have the presentation glitches it too does not look very good with panning and will stutter on these scenes badly.
Samples:
Original EVO: http://www.megaupload.com/?d=BOC0RSXW
Remuxed M2TS: http://www.megaupload.com/?d=H5USKBUW
VipZ
20th August 2011, 08:43
Thanks.
Did some testing with an EVO from "Heroes, S1E1"
When I play it with LAVSplitter / LAVCUVID / madVR the movie is reported as 59.94 and I get presentation glitches and it parts it stutters badly.
The same file when remuxed to M2TS plays at 23.976 and while it does not have the presentation glitches it too does not look very good with panning and will stutter on these scenes badly.
I'm Uploading samples:
Original EVO: TBA
Remuxed M2TS: TBA
Yep, the only way to play EVO's perfectly is natively with LAV Splitter/Audio/Video. I think Arcsoft may work and LAV CUVID, if you have ATI and why go though all the trouble, where LAV Video works perfectly.
Hero's S1 is the only HD-DVD I haven't replaced, but they work fine with the LAV combo.
nevcairiel
20th August 2011, 09:09
It had in the past, YV24 (or I444).
but according http://forum.doom9.org/showthread.php?t=113362 , it is not in spec anymore.
AviSynth and VirtualDub will output raw YUV444p video in AVI with FourCC YV24.
for packed YUV 4:4:4, there is an alternative, IYU2.
http://www.fourcc.org/yuv.php#IYU2
There is no use in weird formats if nothing else supports them. :)
@nevcairiel: Does this build of LAV Video include the swscale levels bug fix?
What bug fix?
roytam1
20th August 2011, 10:26
There is no use in weird formats if nothing else supports them. :)
What bug fix?
At least madVR will support YV24 and I444 ;-)
Morpheus_xx
20th August 2011, 10:37
Hi,
does the LAV splitter allow to use the AVCHD playlist files in same way as for BluRay discs?
I don't only mean the playback of the single *.MTS files, but also to use the playlist (*.MPL)
The AVCHD structure is nearly identical to BD, but uses short file extensions (3 chars), means: *.bdmv -> .BDM ; *.m2ts -> *.MTS
The main issue with such playlists is, they contain file references to *.m2ts, although the real filenames are *.MTS
(see also http://en.wikipedia.org/wiki/File:AVCHD_actual_file_structure.svg).
When you try to open the playlist with the LAV splitter it fails, because the referenced files are not found. Could the splitter be extended to support the short file extensions as kind of "fallback" source when reading the stream files?
Thank you
Morpheus_xx
dann23
20th August 2011, 13:32
@nevcairiel
Does lavvideo support subtitles in wmp12? I tried some mkv files but no subtitles. I see in wmp12 that lavvideo and lavaudio are used for decoding but no subtitles. I use the standard settings for lavsplitter and I even tried to put eng in the preffered languafes field.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.