View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
nevcairiel
30th September 2011, 22:07
People should answer a bug reporting Quiz before being allowed on these forums.
- You assume i know which scene in that movie you're referring to. I don't. You know, we have timestamps for this.
- Does it happen everytime you hit that spot? What if you seek just past it?
- Are you using the ffmpeg decoder, or the ArcSoft DTS-HD decoder? Or even bitstreaming?
Its all in the details. Your post is basically like "My playback doesn't work, halp"
Xaurus
30th September 2011, 22:31
nev,
Never mind. I get no audio drop out with ffdshow so I'll keep it, saves us both the extra trouble. Thanks anyway.
TheShadowRunner
30th September 2011, 23:06
I'd really like to understand how the BBC Japan MKV I linked (http://www.megaupload.com/?d=A8BZORB1) last time is rendered at
12ms average when using CoreAVC 2.5.5 w/CUDA + madVR
versus twice that value at
23ms average when using LAV Video w/CUDA enabled + madVR
How could CUDA performance change so radically between the 2 decoders [on my system]?
The output pin is the same: Major Type: Video - Sub Type: YV12 Format: VideoInfo2 YV12 2048X1072, 12 bits
I use the latest nvidia 285.38 beta on XP SP3.
Any further hint is welcome.. I'd really fancy using LAV Video dec for everything!
Superb
30th September 2011, 23:08
nev,
Never mind. I get no audio drop out with ffdshow so I'll keep it, saves us both the extra trouble. Thanks anyway.
Don't be lame... give him the details so he'll be able to analyze/fix the issue... :/
XRyche
1st October 2011, 03:48
While i agree with the general idea of separating those tasks, its not always as easy as one might think. Ignoring the obvious fact that its more work to write a separate filter, there are some other issues as well:
- "Dumb" players connect the decoder directly to the renderer, no post processor in between
- DirectShow adds a significant overhead in some cases (for example, 10bit YUV. The DShow format P010 is an interleaved format, while decoders and processors typically prefer planar - so you have to map it back and forth)
- Configuration for the end-user is more complex
I'm sure there are other Pros and Cons, but overall, it creates a whole load of new problems.
Short of some pixel format conversions (and of course HW deinterlacing, which you really cant separate effectively), i have yet stayed away from post-processing. I do have some plans to integrate at least software deinterlacing. On the other hand, the libavfilter library makes using its filters so easy, so filters like sharpen, denoise and deband would be very easily implemented. Creating a DirectShow component for that is much more involving, tbh.
I wish we were living in a perfect world where we could do everything properly .. but we don't..
For me, i usually am happy now if i separate those actions clearly in code, so that maybe one day they can be recycled into a proper separate filter. ;)
PS:
With color controls i assume he wants the typical hue/contrast/brightness controls.
Yes I did mean the typical hue/contrast/brightness controls. I would use my gfx cards colour controls but it has absolutely no affect on madVR. Oh well, thanks for the explanation.
kennae
1st October 2011, 04:02
Hi
Firstly, thanks for all your hard work! Been using your work from the beginning and would love to get this final thing from bothering me:
The only problem I have in my full chain is that I can't get FFDshow Audio Processor to load. I need it to downmix audio after LAV Audio into 2.1 or 2.0.
I have the latest MPC-HC (3750), MadVR 0.74, FFDshow 3984, ReClock 1.8.7.7 and LAV Filters 0.36 installed. In MPC-HC I have disabled all built in stuff and have set LAV source, video and audio as preferred.
Last in the chain is FFDshow Audio Processor with only mixer enabled. Tried with the default merit and set as preferred, no dice.
I don't really know if I could just use LAV Audio and output what it outputs to Reclock and let my Pioneer AVR handle the channels, but I really dont know what it does to the signal. Like will I have "less" sounds than by downmixing in computer.
Please help with any suggestions you can. I bet this isn't fault of LAV Audio but still the right place to ask. If not, I wont bother you.
MORE TESTING:
I can't seem to get LAV Audio to load with the most common codecs. Only FLAC music files load LAV Audio automaticly, but any video I tried drops to some default decoder and FFDshow Audio Processor then loads (for the first time on my machine). Don't know what the heck to do so I will use FFDshow Audio Decoder for now since LAV Audio is somehow left behind every other filter or it's somehow messed up.
I tried re-installing the whole LAV pack, but nothing changed.
Is there a way to reset all the filters in WIN7 64bit and just install my stuff from ground up?
Thanks.
QBhd
1st October 2011, 05:26
Yes I did mean the typical hue/contrast/brightness controls. I would use my gfx cards colour controls but it has absolutely no affect on madVR. Oh well, thanks for the explanation.
Don't use the video color controls of your GPU... use the desktop color controls of the GPU.
QB
wanezhiling
1st October 2011, 05:51
win7 x86
GT240/GT520
GeForce 285.38 Driver
PotPlayer 1.5.29795(default setting)
I found almost no 1080i HDTV could reach 50/60fps with CUVID hardware decoder on my GT240/GT520......:(
But it doesn't happen on my another old graphic card 8500GT/GTS250.
Here is the sample.:thanks:
http://www.gokuai.com/f/jQb7m2n9dIbMhQ55
Sebastiii
1st October 2011, 07:17
nev,
Never mind. I get no audio drop out with ffdshow so I'll keep it, saves us both the extra trouble. Thanks anyway.
Don't get Nev wrong :)
But sure you fill all information to easy reproduce bug :)
I will try on "The Big Lebowski Blu-ray" :)
So please, can you screenshot the graph from grapstudio and also your LAV Audio Setting ?
Just to be sure to have the same setting :)
Thanks.
nevcairiel
1st October 2011, 08:24
I can't seem to get LAV Audio to load with the most common codecs. Only FLAC music files load LAV Audio automaticly, but any video I tried drops to some default decoder and FFDshow Audio Processor then loads (for the first time on my machine). Don't know what the heck to do so I will use FFDshow Audio Decoder for now since LAV Audio is somehow left behind every other filter or it's somehow messed up.
Make sure that ffdshow audio is configured to accept float audio, because thats what LAV Audio will output on most common movie formats. Additionally, I would force ffdshow to only use one output format, preferably float or int24.
Since you're having connection problems, i would suggest trying int24 first.
Xaurus
1st October 2011, 11:13
Don't get Nev wrong :)
But sure you fill all information to easy reproduce bug :)
I will try on "The Big Lebowski Blu-ray" :)
So please, can you screenshot the graph from grapstudio and also your LAV Audio Setting ?
Just to be sure to have the same setting :)
Thanks.
It's not easy to reproduce (unfortunately) because seeking to that first point it dropped doesn't make it drop. I suspect this could be something else than specifically this blu ray.
The audio is DTS-HD MA at 48kHz.
All codecs are checked in the formats tab, and in the audio settings tab only A/V sync is checked.
nevcairiel
1st October 2011, 12:27
Since the problem does not occur reproducible on that one spot, and pausing fixes it for a while, its quite unlikely that its actually a decoding problem.
Sounds rather like a incompatibility between the decoder and the audio renderer, but since your signature claims that you're using ReClock, thats unlikely as well. It could also be a problem with that disc and its timestamps, but i don't have that Blu-ray disc to check it out.
asasadad_1
1st October 2011, 12:34
here (http://samples.mplayerhq.hu/V-codecs/h264/PAFF/HDForum-06.04.04-01:05:30.ts) is a sample that lav splitter 0.36 doesn't output video, MPC-mpeg splitter works.
nevcairiel
1st October 2011, 12:48
here (http://samples.mplayerhq.hu/V-codecs/h264/PAFF/HDForum-06.04.04-01:05:30.ts) is a sample that lav splitter 0.36 doesn't output video, MPC-mpeg splitter works.
That is quite some broken file.
I recommend to report the problem to ffmpeg itself, since they are failing to detect the video stream properly.
http://ffmpeg.org/bugreports.html
nevcairiel
1st October 2011, 14:01
So, here is a quick test build of a new feature i implemented.
Specifically, this enables LAV Audio to convert between sample formats, which means that if you had issues with float audio before, you can now make it convert that to integer, by simply disabling float.
Note that i do not recommend turning off any output formats unless either your hardware or another DirectShow component does not work properly otherwise.
Specifically, there is no advantage in outputting audio that was decoded as 16-bit integer in any higher format, so disabling it will not increase quality at all!
Anyhow, here is the build:
http://files.1f0.de/lavf/LAVFilters-0.36-pcm.zip
VipZ
1st October 2011, 14:38
Nev is it possible to make VC1 in EVO use frame time correction? At present the intermediate state seems to be disabled for this, if set to enabled, works perfectly with LAV Video and MS DMO, with both EVR CP and MadVR.
The sample rate conversion seems to work well with DTS-MA included, not that I would use it :p
nevcairiel
1st October 2011, 14:48
Nev is it possible to make VC1 in EVO use frame time correction? At present the intermediate state seems to be disabled for this, if set to enabled, works perfectly with LAV Video and MS DMO, with both EVR CP and MadVR.
And i thought i turned it specifically off for EVO for some reason..
Anyway, its on again.
You're right that with LAV Video it works in both modes, but with the WMVideo Decoder it only works properly in one.
VipZ
1st October 2011, 14:58
And i thought i turned it specifically off for EVO for some reason..
Anyway, its on again.
You're right that with LAV Video it works in both modes, but with the WMVideo Decoder it only works properly in one.
For me the WMVideo and LAV Video was giving the same results when testing it. I tested in both MPC with FTC off only and PotPlayer with EVR CP and MadVR. Was testing with my sample, maybe putting in a disk would give better results.
kennae
1st October 2011, 15:07
I can output 16/24bit int and 16/24/32 float up to 96KHz to my amph and it supports them. So I don't think the problem lays there.
Thanks for the answer and I will try the test build and some other settings tomorrow when I have time off from work.
ajp_anton
1st October 2011, 15:11
Shouldn't color/brightness/contrast adjustment/correction be in the renderer and not the decoder or a separate filter?
Sebastiii
1st October 2011, 16:05
So, here is a quick test build of a new feature i implemented.
Specifically, this enables LAV Audio to convert between sample formats, which means that if you had issues with float audio before, you can now make it convert that to integer, by simply disabling float.
Note that i do not recommend turning off any output formats unless either your hardware or another DirectShow component does not work properly otherwise.
Specifically, there is no advantage in outputting audio that was decoded as 16-bit integer in any higher format, so disabling it will not increase quality at all!
Anyhow, here is the build:
http://files.1f0.de/lavf/LAVFilters-0.36-pcm.zip
Thanks :)
Xaurus
1st October 2011, 16:16
nev,
I can't open any file with the new test build. I tried changing the new options (16-bit, 24-bit etc.) but to no avail.
It seems it's the avutil-lav-51.dll that is crashing:
screenshot (http://home.halden.net/mordor/crash3.png)
What info do you need? I am on Win 7 Pro 64-bit.
nevcairiel
1st October 2011, 16:20
Did you replace all files, not just the .ax?
avutil really doesn't do all that much, a crash in it is rather unusual otherwise.
Xaurus
1st October 2011, 16:29
Did you replace all files, not just the .ax?
avutil really doesn't do all that much, a crash in it is rather unusual otherwise.
I installed all files except the splitter and video .ax , when I installed these too it works. Thanks.
nevcairiel
1st October 2011, 16:30
I updated ffmpeg yesterday, so a update of everything is required. :)
Sebastiii
1st October 2011, 16:38
Heya :) 16 bit and mediaportal audio renderer seems working nice :)
Thank you m8 :)
STaRGaZeR
1st October 2011, 17:09
http://forum.doom9.org/showthread.php?p=1529560#post1529560
Mosu's answer to this post is useful for the default/forced flags debate.
nevcairiel
1st October 2011, 17:13
http://forum.doom9.org/showthread.php?p=1529560#post1529560
Mosu's answer to this post is useful for the default/forced flags debate.
Thats apparently how most players interpret the flags, even though i don't. :)
Anyhow, thats probably how it'll work by default once i get around to re-writing the selection parts.
There is so much to do...
STaRGaZeR
1st October 2011, 17:34
Nice to hear that!
A little update about the seeking stuff we discussed some time ago: now that I've been using LAVS for a long period of time I've had to go back to other splitters because of that seek-and-freeze issue, it seems it affects everything, not only H.264 or long GOPs.
nevcairiel
1st October 2011, 18:14
I don't get why some people have so terrible experience with seeking. All i get is sometimes a bit slow seeking, audio starts, video takes 2-3 seconds to catch up, but otherwise, everything is fine. MKV seeking works very similar to how Haali does it, with one difference - Haali suppresses audio data until the video has caught up, not sure if that would cause so much issues.
Xaurus
1st October 2011, 19:39
As I suspected, there is an underlying problem with LAV audio somehow. I just started watching a normal tv show (mkv), then after ~18 minutes the sound dropped out completely. This is around the same time as the incident yesterday.
As I have no clue how to reproduce this other than watching something for ~18 minutes, I can't do much really. Other than switch back to ffdshow audio. Just thought I'd try your new build nev, with the bit options.
nevcairiel
1st October 2011, 19:47
It doesn't make much sense that it would cut out after playing for 18 minutes just like that. Too bad it takes so long to reproduce.
What is your ffdshow output set to? Does it output 16bit int, or float as well?
Xaurus
1st October 2011, 20:08
It doesn't make much sense that it would cut out after playing for 18 minutes just like that. Too bad it takes so long to reproduce.
What is your ffdshow output set to? Does it output 16bit int, or float as well?
I fully agree, it doesn't make any sense at all.
ffdshow:
Using Mixer (2/0/0 stereo) & Volume (volume boost) filters.
Pass-through: none marked
Output: 16-bit, 24-bit, 32-bit, 32-bit float.
Connected to Reclock which is set to Directsound (with WASAPI I get the "format not supported" blablabla):
Sampling rate: Same as input
Format: 16-bit
In the properties for Digital Audio (S/PDIF) in Windows I have set:
Sample rates: 44.1, 48, 88.2, 96
Default format: 2 channel, 16-bit, 48000 Hz
Sent through S/PDIF to a 2-channel DAC (Cambridge DAC magic, accepts 16-24 bit and 44.1 to 96 KHz sampling rate) which in turn is connected to my normal stereo amplifier.
pankov
1st October 2011, 23:14
I'd really like to understand how the BBC Japan MKV I linked (http://www.megaupload.com/?d=A8BZORB1) last time is rendered at
12ms average when using CoreAVC 2.5.5 w/CUDA + madVR
versus twice that value at
23ms average when using LAV Video w/CUDA enabled + madVR
How could CUDA performance change so radically between the 2 decoders [on my system]?
The output pin is the same: Major Type: Video - Sub Type: YV12 Format: VideoInfo2 YV12 2048X1072, 12 bits
I use the latest nvidia 285.38 beta on XP SP3.
Any further hint is welcome.. I'd really fancy using LAV Video dec for everything!
TSR,
how much memory does your Geforce 8500 have?
Can you check with GPU-Z (or other similar tool) if the GPU memory reaches the limit with LAV and not with CoreAVC?
Also, do check your GPU/Memory Controller/Video Engine Loads with both filters and see if you'll find a difference. Also look at the Core/Memory/Shader Clocks and see if they fluctuate with LAV and not with CoreAVC.
jmone
2nd October 2011, 00:10
Got a good one! In testing egur's SandyBridge accelerated FFDSHOW decoder, I found that you can use both the Intel IGP as well as a discreet GPU. I was testing the Intel 3000 IGP on my i7-2600K based HTPC in which I also have a GTX550Ti that I normally run. To get the Intel IGP HDMI output to work I had to disabled the other GPU in the BIOS. The "interesting" thing is while the nvidia control panel complains that the 550Ti is not installed, LAV CUVID can still access the GPU, eg it hands off the processing to the 550Ti, return the result to the IGP and outputs it just fine!
So from what I could tell with nvidia inspector, the 550Ti does nothing most of the time with the Intel GPU chugging along, then when LAV CUVID fires up for specific playback then away it goes (note: this was with LAV CUVID, I've not tested LAV Video with CUVID). For those changing low power this hybrid setup may be of interest.
nevcairiel
2nd October 2011, 00:12
Using a NVIDIA GPU without a display connected really does not have all that many advantages... the cuda interface brings it into the high performance mode, which will eat alot of power, and without a direct 3d interface, you will not get the best deinterlacing quality..
jmone
2nd October 2011, 00:23
...It also seemed to push up the rendering time in madVR slightly. I use P0 mode anyway as I find P8 is just not powerful enough to get stutter free 50 or 60fps playback in madVR. Thanks for the info on deinterlacing, are you saying that you don't get Vector Adaptive in such setups or that it is a completly different deinterlacing process? (FYI - I was only testing and will be going back to stock std 550Ti - who needs the complications!)
TheShadowRunner
2nd October 2011, 01:26
Hello Pankov, excellent idea. This 8500 has 512 MB of RAM.
Here are the results with GPU-Z.
CoreAVC + CUDA (average)
Memory Used: 237 MB
GPU Load: 42%
Memory Controller Load: 36%
Video Engine Load: 49%
LAV + CUDA (average)
Memory Used: 243 MB
GPU Load: 80%
Memory Controller Load: 29%
Video Engine Load: 50%
With LAV, even though there's a lot of skipped frames, the "GPU Load" never goes past 80%. No crazy spikes but constant 78-80%.
CoreAVC's CUDA "GPU Load" is also constant at 40-42% throughout the sample, and not a single skipped frame.
Andy o
2nd October 2011, 02:00
Don't use the video color controls of your GPU... use the desktop color controls of the GPU.
QB
I don't think that's a good idea at all, cause the changes applied by these cards can introduce banding. Better do it in the display itself, or if madshi could do it in madVR.
pankov
2nd October 2011, 02:50
TSR,
can you test the same video with ffdshow or MPC's or madVR's decoders ... or even CoreAVC or LAV Video Decoder without CUDA?
It'd be interesting to see the pure madVR GPU load.
btw
are you sure CoreAVC is actually using CUDA and not software mode?
XRyche
2nd October 2011, 02:59
I don't think that's a good idea at all, cause the changes applied by these cards can introduce banding. Better do it in the display itself, or if madshi could do it in madVR.
Agreed, the desktop controls do work using Digital vibrance, which is better (not quite where I wanted it) for video. The problem is it totally makes everything else very creepy and it's kind of a pain to manual adjust it every time i watch a video and then do something else. To my understanding madshi is on hiatus so I don't see that feature becoming a reality any time soon. Not to mention, it seems like it won't be a priority anyway because i haven't seen this suggested while searching the forums just a bit ago. Oh well , CoreAVC is relatively cheap (not as cheap as LAV lol) so I guess I'll stick with it for the time being.
TheShadowRunner
2nd October 2011, 03:27
TSR,
can you test the same video with ffdshow or MPC's or madVR's decoders ... or even CoreAVC or LAV Video Decoder without CUDA?
So, you mean, in software? I have a quad cpu @ 2.7ghz, it doesn't break a sweat and runs flawlessly with all decoders in software mode, LAV included of course.
Trying ffdshow or MPCs' DXVA isn't possible as madVR makes them fall back to software of course.
The mystery is only in the difference between LAV's CUDA and CoreAVC's CUDA.
are you sure CoreAVC is actually using CUDA and not software mode?
Yes 100%, green icon and 0-4%CPU.
jmone
2nd October 2011, 03:41
...It also seemed to push up the rendering time in madVR slightly.
I take that back. For x264 and VC1 the rendering time was under that required even for 60fps material (16.67ms) ...but averaging around 12ms there was not much overhead till it would start dropping frames. The killer however was interlaced MPG material as this could push rendering times above 20ms and I'd drop alot of frames especially on DVB-T broadcasts. As a comparison using just the 550Ti I get around 2ms.
I'm sticking with the 550Ti as it is!
QBhd
2nd October 2011, 04:00
I don't think that's a good idea at all, cause the changes applied by these cards can introduce banding. Better do it in the display itself, or if madshi could do it in madVR.
I wasn't saying it was a good idea... just that any control of a madVR image can't be done with GPU "video controls". The poster of this problem seems to have an issue with TV or PC levels. If his image is washed out, I am betting his RGB levels are not set properly.
BTW, The only thing I use in my "desktop color" controls is a slight drop in the gamma setting. It seems to do a better job with my hardware than adjusting the gamma settings in madVR. Really wish I could get my hands on a colorimeter and properly calibrate the display :)
QB
nevcairiel
2nd October 2011, 09:51
The mystery is only in the difference between LAV's CUDA and CoreAVC's CUDA.
You don't happen to have "High Quality Processing" checked, do you?
It would increase the GPU Load slightly, but doubling it is still somewhat unlikely.
The GPU itself is only used for deinterlacing and other post-processing tasks. Do you maybe have the edge enhancer and noise remover in the NVIDIA control panel active? It won't affect madVR, but it does affect my CUVID decoder.
pankov
2nd October 2011, 10:26
TSR,
I do want to see your GPU (not CPU) load in pure software decoding mode - just to have a reference how much madVR is taxing your GPU.
Volfield
2nd October 2011, 12:06
For me LAV CUVID and CoreAVC CUDA have the same GPU Load.
TheShadowRunner
2nd October 2011, 22:46
You don't happen to have "High Quality Processing" checked, do you?
No, these are my LAV settings (http://videoff7.free.fr/lavset.png).
The GPU itself is only used for deinterlacing and other post-processing tasks. Do you maybe have the edge enhancer and noise remover in the NVIDIA control panel active? It won't affect madVR, but it does affect my CUVID decoder.
I'm afraid not, either. :/
Everything in the nVidia panel is set to default, except "Use Inverse telecine" which I enabled. I tried to disable it, same results.
TSR,
I do want to see your GPU (not CPU) load in pure software decoding mode - just to have a reference how much madVR is taxing your GPU.
Oh sure, I get it.
So, with LAV in software mode, i get:
Memory Used: 164 MB
GPU Load: 32%
Memory Controller Load: 26%
Video Engine Load: 0%
(exact same results with CoreAVC in software mode.)
nevcairiel
2nd October 2011, 23:18
Here is two CUDA related test builds, to see if anything changes at all:
The first contains all libraries, because they changed since 0.36 release, the second is just an alternate LAVVideo.ax to apply onto the first.
1) http://files.1f0.de/lavf/LAVFilters-0.36-cuvid-sync.zip
2) http://files.1f0.de/lavf/LAVVideo-0.36-pure-cuda.zip
Let me know if either of these builds changes your GPU load.
TheShadowRunner
2nd October 2011, 23:32
Wow thank you very much nev, testing in progress!
Results are in:
with LAVFilters-0.36-cuvid-sync, I'm getting the exact same results as previous public build.
With LAVVideo-0.36-pure-cuda, it's actually much worse, with GPU Load at 98% and madVR average rendering at 36ms! (versus GPU Load at 80% and madVR rendering at 21ms on public LAV build).
So you altered something related to the source of the issue, for sure ;)
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.