View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
wanezhiling
20th May 2013, 15:59
First? :p
pearlblack15
20th May 2013, 16:25
This could really be a noob question but what good is it to enable HW deinterlacing when using QuickSync Decoder? Deinterlacing is enabled in MadVR (if in doubt) and set to auto in LAV. Based on the discussion here (http://yabb.jriver.com/interact/index.php?topic=72012.0) and here (http://forum.doom9.org/showthread.php?t=156191&page=540), you said MadVr would be more efficient in doing so assuming Madvr is 'completely' GPU oriented.
nevcairiel
20th May 2013, 16:42
There are other use-cases than simple playback, where it is useful. Not always is a renderer involved, or there is some processing before the renderer which needs progressive video. Its all about the options. :)
pearlblack15
20th May 2013, 19:17
Well, I just want the videos to play and have better picture quality, atleast that which can be achieved with the GPU handling almost every processing. CPU heat annoys me (I have mobile Platform).
So, I have QS Decoder HW Acceleration enabled in LAV and using MadVr, although 'avcodec' is better compared to Quicksync decoder. Therefore, I am good to go with HW deinterlacing option disabled in LAV and let MadVr handle it ? :confused: Because, both will be using GPU to do the same kind of work. But if disabling Deinterlacing in renderer and enabling HW Deinterlacing in LAV gives me something better without performance hit or costing the CPU , I would be glad to enable it. Otherwise this line is good:
"For a pure playback chain with no CPU post processing at all, in theory there should be no benefit letting LAV Video do the hardware deinterlacing instead of the renderer" - madshi (http://yabb.jriver.com/interact/index.php?topic=72012.msg487511#msg487511)
________________________________________________
#Just trying to learn :)
paradoxical
20th May 2013, 19:20
As nev says, LAV can be used in instances where there is no renderer involved (such as using it in conjunction with DirectShowSource in AviSynth). So if one wants hardware-accelerated deinterlacing it's beneficial in such a case.
ThurstonX
20th May 2013, 20:57
...but I have to ask.
I understand that in order to use MPC's built-in audio delay feature, I need to enable its Audio Switcher. By doing so, am I missing out on anything in LAV Audio? I prefer the ability to tweak the delay via the keyboard.
I have MPC set up to prefer all three LAV elements in External Filters.
Thanks.
pearlblack15
20th May 2013, 20:58
^ :thanks:
and thanks Nev, for his excellent work. And good luck with the project :) Since v 0.56, it saw great improvements in performance!
derpycat
20th May 2013, 21:12
ooo. thanks for the update!
does the last change in the changelog render madflac obsolete...?
also quick question, what's the correct install procedure - uninstall and then reinstall?
thanks =3
paradoxical
20th May 2013, 21:22
I understand that in order to use MPC's built-in audio delay feature, I need to enable its Audio Switcher. By doing so, am I missing out on anything in LAV Audio?
No, you aren't.
ThurstonX
20th May 2013, 21:43
No, you aren't.
Excellent. Thanks for the quick reply.
mastrboy
20th May 2013, 22:04
Question related ordered chapters, just noticed a difference in behavior with the default tag for subtitles between Haali and LAV splitter.
The main video files have subtitle track 3 as default and the OP/ED which is in separate files for the series has subtitle track 1 as default, Haali switches from subtitle track 1 to subtitle track 3 when done playing the Opening and correctly switches back to track 1 when starting to play the Ending file in the virtual timeline.
LAV splitter stays on track 1 throughout the entire virtual timeline without "honoring" the default track tag in mkv.
Is this intended behavior?
itsonlyjustincase
21st May 2013, 10:14
Does the latest Lav 0.57 includes the latest intel QS 0.42 ?
nevcairiel
21st May 2013, 10:14
No, it does not. I didn't have time or a Win8 system to test on right now, and i don't include untested updates.
itsonlyjustincase
21st May 2013, 10:17
No, it does not. I didn't have time or a Win8 system to test on right now, and i don't include untested updates.
Thank you for this feedback :).
AndreaMG
21st May 2013, 12:49
LAV Filters 0.57
- Added a Popup Menu to the Tray Icon which allows Stream, Edition and Chapter switching
Thanks Nev.
Andrey /MAG/
21st May 2013, 15:47
Hello Nev.
I see good working HW deinterlacing with QuickSync in new LAV Decoder. It makes 50 fps from 25i source. Thanks!
But CUVID HW deinterlacing stop working to me. It gives only 25 fps from the same 25i source. Option "50p/60p (Video)" is selected. What I do wrong?
---
Core i5-3570K + GTX 660 Ti
wanezhiling
21st May 2013, 15:51
sample: http://www.sendspace.com/file/aot417
Disable mpc ac3 decoder (http://farm6.staticflickr.com/5461/8769740210_e1cffe33a6_o.png)
Disable lav aac decoder (http://farm9.staticflickr.com/8397/8769740180_1325a79436_o.png)
Haali could correctly connect mpc aac decoder when switching to the aac track. (http://farm8.staticflickr.com/7422/8769758012_2f6893f4d6_o.png)
LAV still connects lav audio decoder when switching to the aac track and be mute. (http://farm9.staticflickr.com/8539/8769741448_c78f13b758_o.png):)
nevcairiel
21st May 2013, 16:15
sample: http://www.sendspace.com/file/aot417
Disable mpc ac3 decoder (http://farm6.staticflickr.com/5461/8769740210_e1cffe33a6_o.png)
Disable lav aac decoder (http://farm9.staticflickr.com/8397/8769740180_1325a79436_o.png)
Haali could correctly connect mpc aac decoder when switching to the aac track. (http://farm8.staticflickr.com/7422/8769758012_2f6893f4d6_o.png)
LAV still connects lav audio decoder when switching to the aac track and be mute. (http://farm9.staticflickr.com/8539/8769741448_c78f13b758_o.png):)
If you want to switch decoder on stream switch, you need to activate the option "Remove Audio Decoder on Audio Stream Switch"
wanezhiling
21st May 2013, 16:24
I never notice that option...
You are a genius nev.:)
aufkrawall
21st May 2013, 19:05
Thanks for the new version, nev. QS deinterlacing seems to be working fine on a quick test.
AndreaMG
21st May 2013, 20:43
CUVID HW deinterlacing stop working to me. It gives only 25 fps from the same 25i source. Option "50p/60p (Video)" is selected. What I do wrong?
Hi Mag,
I tried both 25i and 30i video material with SVP and "50p/60p (Video)" option enabled and I get properly hardware deinterlaced 50p and 60p videos.
mindbomb
21st May 2013, 20:56
Hello Nev.
I see good working HW deinterlacing with QuickSync in new LAV Decoder. It makes 50 fps from 25i source. Thanks!
But CUVID HW deinterlacing stop working to me. It gives only 25 fps from the same 25i source. Option "50p/60p (Video)" is selected. What I do wrong?
---
Core i5-3570K + GTX 660 Ti
i've noticed this as well. It happened in previous versions of lav video too. I just assumed the cuvid decoder detected it as a film source.
nevcairiel
21st May 2013, 21:21
The only reason it would disable 50/60p internally is when it detects soft-telecine flags on the content, because it screws playback up if it doubles the frames.
nevcairiel
Can you confirm the problem with dtsdecoderdll about which I PMed to you? It's still not working for me with 0.57
mindbomb
21st May 2013, 23:16
After looking at the cuvid deinterlacing a bit more, it works properly with evr, but with madvr, it always reports the frame rate as half from the source filter. Appears to be only a cosmetic issue, actual frame rate when measured with fraps is the full 50/60 fps.
NikosD
22nd May 2013, 08:41
Trying an Nvidia GT440 card on an old M/B with a PCI-E 1.1x4 speed slot (x16 physical size), I came out with a result which made my preference to DXVA native, even more solid.
Every 1080p clip I tried with DXVA-CB and NVCUVID was unplayable in real-time with VP4 of GT440 on the M/B mentioned above.
The Video Bus load created by copy-back methods of DXVA-CP and NVCUVID was simply too much for the PCI-E 1.1x4 bus resulting in very low Video Engine utilization (<50%) and very high CPU utilization.
So, it doesn't really matter if you have an ATI/AMD or Nvidia card, when your PCI-E slot is slow regarding Copy-Back implementations (DXVA, NVCUVID)
The only solution is DXVA native.
P.S GT440 is a GDDR5 model and system RAM is dual channel DDR2-533MHz
FiJaY5050
23rd May 2013, 00:37
Hi,
I have an issue where using LAV filters sometimes results in badly resized or flipped videos. This also happens using FFDshow but I can use the Resize>resize to screen resolution option to fix that.
Is there anyway I can force LAV to resize properly?
filler56789
23rd May 2013, 00:51
Hi,
I have an issue where using LAV filters sometimes results in badly resized or flipped videos. This also happens using FFDshow but I can use the Resize>resize to screen resolution option to fix that.
Is there anyway I can force LAV to resize properly?
Please specify: codecs with which those videos were compressed, frame size (width X height), video renderer you're using, operating system, whatever.
Besides, ffdshow has a built-in video processor, but LAV Video does not.
RealSnoopyDog
23rd May 2013, 07:32
dtsdecoder.dll is working for me with the latest LAV
filler56789
23rd May 2013, 13:15
dtsdecoder.dll is working for me with the latest LAV
Same here.
It's still not working for me with 0.57
Perhaps the version of your DTSdecoderdll.dll is too new?
I've read that the DLL from the latest TMTs is not compatible with eac3to, so maybe it's not compatible with LAV Audio as well :confused:
nevcairiel
23rd May 2013, 13:33
All versions of the dtsdecoder from 1.1.0.0 up to 1.1.0.8 are supported. I've not seen a newer version even in the latest TMT6.
Note that especially the old versions (1.1.0.0 and 1.1.0.1 i believe) need the MSVC++ 2003 runtime, which is not easily available as a stand-alone download. Newer versions need the 2005 runtime, i believe.
I also have not really any influence how it decodes stuff. Either it works, or it doesn't. Its a blackbox.
Decoding is working, but I have problem with that (http://www.mediafire.com/download/btivmayt2lbnaas/%5BUTW-THORA%5D_Evangelion_2.22_-_You_Can_(Not)_Advance_v2_%5BBD%5D%5B1080p%2Cx264%2CDTS-ES%5D%5B13434436%5D_part.mkv) sample. I thought it might be a problem with timestamps or something.
itsonlyjustincase
23rd May 2013, 15:34
Please specify: codecs with which those videos were compressed, frame size (width X height), video renderer you're using, operating system, whatever.
Besides, ffdshow has a built-in video processor, but LAV Video does not.
FiJaY5050 --> Are you a Serato Video user ? :p
I have the same problem with 640x360 videos H.264/MPEG-4 AVC
The weirdest thing is that it happens only with old 4/3 videos recompressed with H.264 AVC codec cause with new recent HD 16/9 files recompressed the same way there is no problem of resized videos.
Perhaps an option in Lav to resize like ffdshow would be great
06_taro
23rd May 2013, 17:44
Nev, I wrote one patch to add an option to try DXVA2(native) first, and fall back to other HW decoders if fails.
Generally, if one check the DXVA2 (native) box, LAV will try to use DXVA2(native) for decoding, and will fall back to CUVID/QuickSync/DXVA(copy-back) according to how the drop-down-list is configured, and finally switch to SW if it fails again:
http://oi44.tinypic.com/1111imv.jpg
This allows to use DXVA2(native) for plain LAV Video->Video Renderer chain, but automatically switch to other copy-back HW decoders if other processor like DirectVobSub (auto-loading version) is involved. I simply do not like to use DXVA(copy-back) for everything on my HD6xxx even if native is available for a filter graph, for the GPU->CPU bandwidth limits.
Patch and some more details can be found in Issues #214 (http://code.google.com/p/lavfilters/issues/detail?id=214).
If anyone would like to take a try, here is a test build (with some other patches (http://tmod.nmm-hd.org/LAVFilters/patches/) for my own use, like a rough implementation of Matroska tags of metadata, not anything useful):
Download (http://tmod.nmm-hd.org/LAVFilters/)
STaRGaZeR
23rd May 2013, 20:28
nev, how can I revert to a specific commit with TortoiseGit to test some stuff? I tried show log->right click on wanted commit->switch/checkout to this, and it does indeed revert LAV's code to that commit. However, in the same confirmation window, there is this little update submodules button (yeah, I want to revert the submodules too). When I click OK to revert all submodules it always throws me:
git.exe submodule update --init "ffmpeg"
fatal: reference is not a tree: 2e6f7ffcbe706d88cb79246f2c264e5f94d29dc2
Unable to checkout '2e6f7ffcbe706d88cb79246f2c264e5f94d29dc2' in submodule path 'ffmpeg'
git.exe submodule update --init "libbluray"
git.exe submodule update --init "qsdecoder"
git did not exit cleanly (exit code 1) (1201 ms @ 23/05/2013 21:26:41)
in the face. Any suggestions? :p
nevcairiel
23rd May 2013, 22:45
Any suggestions? :p
The Git repository "forgets" some intermediate Git revisions in the ffmpeg repository because they are not tagged, so rolling back to some arbitrary point in the past only really works for the release tags of ffmpeg (i made one tag for every lav release)
Just came across this:
Why would anyone here care about linux?
LAV has supported 4K decoding on compatible NVIDIA hardware for a long time already, the Windows drivers have supported it just fine - just the linux VDPAU driver did not support it yet.
paradoxical
24th May 2013, 14:54
@ nevcairiel:
Just came across this:
Originally Posted by nvidia.com
http://www.nvidia.com/object/linux-d...23-driver.html
[...]
Added support in VDPAU for 4k resolution MPEG-1/2 and H.264 video decoding, up to 4032x4048 for MPEG-1/2 and 4032x4080 for H.264, and up to 65536 macroblocks for both.
[...]
;)
So you're posting about something completely irrelevant to LAV? What use would LAV have with a Unix/Linux API? VPDAU = Video Decode and Presentation API for Unix.
detmek
24th May 2013, 15:32
LAV Filters is Windows application. VDPAU is API for Unix based operating systems.
VDPAU Level D = VP5 is just a equivalent. It means thet what we mark sa VP5 for Windows it is marked as Level D for Linux.
Andrey /MAG/
24th May 2013, 16:07
Sorry. But I can't solve my problem with HW deinterlacing in decoder.
M2TS 29.97i works fine. It gives me 59.94 fps at decoder output.
But MP4 25i from my camcorder gives only 25 fps. I use QS and CUVID. QS gives 50 fps only in one case: if it is windowed mode with EVR Custom renderer in MPC-HC. If I use another renderer or use EVR Custom with D3D Fullscreen then it gives me only 25 fps.
I did measurements with SVP. It shows real fps at decoder output.
Filter chain is always the same: Haali splitter > LAV Video Decoder > ffdShow raw video filter > renderer
Here one of my (hard to deinterlacing) MP4 file: http://www.sendspace.com/file/99ec0i
I don't understand what is wrong. Give me your advice please.
Chapter about Video stream from MediaInfo:
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L4.0
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Format settings, GOP : M=3, N=15
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 7s 120ms
Bit rate mode : Variable
Bit rate : 17.2 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 3.161
Original display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan order : Top Field First
Bits/(Pixel*Frame) : 0.333
Stream size : 14.6 MiB (99%)
Title : SAMSUNG AVC
Language : English
paradoxical
24th May 2013, 16:10
What about nevcairiel then:
?
:)
:rolleyes:
Irrelevant especially as you misunderstood what he said. VDPAU is a Unix API. Did you miss the part where I told you what the acronym meant?
nevcairiel
24th May 2013, 16:31
Video support is a hardware feature, its independent of the API.
I'm sorry the Windows driver doesn't have a fancy readme that outlines the Hardware video support of all the NVIDIA cards, so i link people to the Linux readme. But its a list of Hardware Support, it has nothing to do with Linux or Windows.
Driver changes for another OS are still completely irrelevant. Especially Video Decoder support has always been quite different between Windows and Linux.
petran79
24th May 2013, 17:54
Regarding the Intel Quicksync feature and the latest LAV:
does it only support 32-bit version of LAV?
I have a laptop with Intel 3000 and Nvidia GT555M and while the 32-bit LAV detects now the Quicksync decoder, same thing does not occur with the 64-bit version.
nevcairiel
24th May 2013, 18:33
But MP4 25i from my camcorder gives only 25 fps. I use QS and CUVID. QS gives 50 fps only in one case: if it is windowed mode with EVR Custom renderer in MPC-HC. If I use another renderer or use EVR Custom with
CUVID should be fixed in the next version, QS works just fine for me.
Regarding the Intel Quicksync feature and the latest LAV:
does it only support 32-bit version of LAV?
QuickSync works fine in 64-bit, something must be wrong in your system.
mindbomb
24th May 2013, 18:58
The only reason it would disable 50/60p internally is when it detects soft-telecine flags on the content, because it screws playback up if it doubles the frames.
I have a question about this. I was watching something that had telecine flags I think, and what was happening with the cuvid decoder was that it would bounce back and forth between 23.976 and 59.99 fps throughout the entire video with the cuvid decoder.
here is a sample:
http://www.mediafire.com/download/1t68dqd028rywyh/dex.zip
Is there something wrong with the way the file was muxed, or is it something with the cuvid decoder? can anything be done?
nevcairiel
24th May 2013, 19:01
That clip is simply mixed content, it seems to switch between soft and hard telecined all the time, its really quite terrible.
QuickSync deinterlacing produces new (intermediate) frames with invalid time stamps (there's a dedicated invalid time stamp).
EVR doesn't care about this and interpolates them. Other renderers just drop those frames.
QS decoder has a feature to interpolate the time stamps but it's turned off in LAV because LAV controls the time stamps.
Currently the time stamp interpolation depends on knowing the frame rate, a feature that was always turned off in LAV as it may produce bad results (slow or jumpy video) in heavily broken clips. Halli media splitter was especially bad in this sense producing time stamps that fools the frame rate calculation completely off.
The internal (QS) time stamp calculation was also needed for proper handling of soft telecine (IVTC).
Having the renderer do deinterlacing is much more efficient and it uses the same HW (same video quality). It makes sense using QS DI for transcoding or adding subtitles (or almost any other video processing) after the decoder.
nevcairiel
24th May 2013, 21:30
bVppEnableDITimeStampsInterpolation is turned on by LAV actually, if thats what you mean.
I didn't check if it actually produces timestamps or my own code fills them in, though.
bVppEnableDITimeStampsInterpolation is turned on by LAV actually, if thats what you mean.
I didn't check if it actually produces timestamps or my own code fills them in, though.
It works fine in EVR and MadVR in normal clips. I fixed the frame interpolation behavior a while ago. Now it's independent. It uses frame rate information from the stream and doesn't try to guess it. If frame rate information is missing it will not interpolate time stamps.
The known issues are:
* 2:2 pulldown is not working in D3D9 decoding. Works in D3D11 (probably driver bug).
* Clips with soft inverse telecine look choppy as QS will not perform inverse telecine when bTimeStampCorrection is false. Most clips looks fine, only some have issues.
Users who use EVR-CP or any other low performing renderer are out of luck, it seems that it can't handle 60fps (on my system anyway). Users should try to play a 60fps progressive clip (no DI) and see if it works for them
nevcairiel
25th May 2013, 10:04
There was quite a discussion when YADIF got a bit slower recently because of a memory overread fix that made it less efficient, so here is something that will make YADIF quite a bit faster again, really faster than it has ever been (unless you're on a single core, i guess)
x86: http://files.1f0.de/lavf/LAVFilters-0.57-5-gde80953.zip
x64: http://files.1f0.de/lavf/LAVFilters-0.57-5-gde80953-x64.zip
This version makes YADIF multi-threaded using slice-threading, meaning the image is split into several slices and processed in parallel.
In my tests, this makes YADIF 50-80% faster on my PC, your results may vary.
There are no options, it'll just be magically faster.
NikosD
25th May 2013, 12:03
@ nevcairiel:
Just came across this:
;)
Why would anyone here care about linux?
LAV has supported 4K decoding on compatible NVIDIA hardware for a long time already, the Windows drivers have supported it just fine - just the linux VDPAU driver did not support it yet.
@wanezhiling and other PotPlayer users
Using LAV Video 0.57 in DXVA native mode by checking UHD option on VP5 video processor of my new signature card, can play EVERY H.264 video beyond Full HD (1920 x 1080) at more than 30 fps and up to 40 fps - depending on bitrate mostly.
There are a few exceptions of course like the notorious "duck" file @3860x2140 and 370Mbps! which is decoded @27 fps and another one I have @4096 x 2160 and 130Mbps which is decoded @29 fps.
But almost all of my 4K files can play real-time with that tiny little 35€ card :D
Users of PotPlayer's internal built-in DXVA native method and LAV video should use EVR renderer instead of EVR-CP default PotPlayer's renderer to achieve such performance using VP5 inside GT520=GT610 cards.
I don't know the performance of Kepler cards with VP5 and EVR-CP.
If you have to use EVR-CP, the performance drops significantly.
Maybe PotPlayer's developers should take a look at it...
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.