View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
nevcairiel
23rd July 2013, 14:12
I just checked, and the NullTextRenderer has a extremely low merit (MERIT_DO_NOT_USE+1), so any other renderer with a normal merit should take precedence.
And since VSFitler and ffdshow subs worked previously, it seems to also work. ;) Maybe that particular type you cooked up just isn't valid for VSFilter, it does appear to be kinda odd, no subtype and no formattype.
invy
23rd July 2013, 23:29
Hello, nevcairiel, I am hoping you have an answer to this problem. I was directed to this LAV place of discussion, over from the MPC tracker. I will copy and paste the message if you don't mind:
>> Is there a better FLV decoder/splitter that is faster than LAV or ffdshow?
I download FLV files from various places all over the web and I always seem to have a problem with them, notably the larger files.
Allow me to explain my problem with it. Let's say I have a 300 MB file that is 1:00:00 hour long. I try to seek ahead in the file to let's say for example, around the 45 minute mark but it takes more than 10-15 seconds to load for some reason.
Well, not for "some" reason because I know EXACTLY what it's doing in those few moments, because I take a look at my Resource Monitor (Windows 7), and apparently it has to LOAD the entire file from the beginning up until the point that you seeked to. I see it loading the file from my hard drive at a rate of 10-20 MB sec.
Why does it have to do this? None of the other filetypes do this. Only FLVs do this. I assume this is normal behavior?
Is there a setting or trick to getting it to render the file in some other method?<<<
In short, summary: FLV files (specifically larger ones) I download from all over the net all have the same "problem" of having to load the entire file whenever I try and seek to a certain part of the video. I say "problem" loosely because I don't know if this is expected behavior or not, but FLV files are the only one that it ever occurs with.
I hope you have an answer to my question. Thanks
owlsroost
24th July 2013, 09:00
The reconnect drops were only an occasional problem (if the EVR Mixer wasn't being very responsive during the reconnect activities) - the main problem is inside the MP custom presenter, which is optimised to work best with 'normal' streams i.e. ones that have a stable frame rate.
I'm working on trying to improve it at the moment, but the old 'aggressive deinterlacing' behavior was a handy workaround for these awkward streams.....
I've done some more investigation/testing/MP code mods...
The standard 0.58.1 version in 'Auto' mode (with the reconnects) fixes a problem - with 0.57 and earlier - where sometimes the nVidia hardware decoder/deinterlacer seems to get very confused for a second or so on an interlaced -> progressive transition, resulting in a bunch of dropped frames.
Interestingly the symptoms are different in DXVA2 Native and CUVID modes (but they both have the problem), but my dev laptop with Intel HD gpu seems to work fine in the same situation.
So my conclusion is that (in 'Auto' mode at least) the reconnects are probably a good idea.
zero9999
24th July 2013, 15:28
now that mpc-hc supports pipe input from stdin, is it possible to hook up yuv4mpeg in lav splitter?
michkrol
24th July 2013, 15:59
Is there a setting or trick to getting it to render the file in some other method?<<<
From my experience most of *.flv files don't have information required for fast seeking and there's no way around it without editing the files.
Remuxing the file to other container is probably the easiest and fastest solution (should be as fast as copying the file).
Short guide to remuxing the file(s) to *.mkv (matroska):
Download MKVToolNix (free software), open mkvmerge GUI, drag&drop single file to "input files", select output filename, remux, profit (?). This will add information required for faster seeking. I've done it with some videos from YouTube and it worked like a charm.
nevcairiel
24th July 2013, 18:13
Thats probably the case, flv is primarily a streaming format and many of these saved streams dont contain the seeking information.
wanezhiling
24th July 2013, 18:57
Seems mpc-be did a workaround for FLV seeking.
nevcairiel
24th July 2013, 19:06
Seems mpc-be did a workaround for FLV seeking.
Everyone is free to submit patches to ffmpeg. :)
invy
24th July 2013, 19:45
From my experience most of *.flv files don't have information required for fast seeking and there's no way around it without editing the files.
Remuxing the file to other container is probably the easiest and fastest solution (should be as fast as copying the file).
Short guide to remuxing the file(s) to *.mkv (matroska):
Download MKVToolNix (free software), open mkvmerge GUI, drag&drop single file to "input files", select output filename, remux, profit (?). This will add information required for faster seeking. I've done it with some videos from YouTube and it worked like a charm.
Thats probably the case, flv is primarily a streaming format and many of these saved streams dont contain the seeking information.
Thanks for the explanation, I figured the reason had to be something like that as opposed to being a bug or whatnot.
The remuxing worked great, except for one huge problem: no audio was muxed in because it was that dreaded, stinking NellyMoser garbage. Nothing can be done about this, correct? Or is there, other than converting it?
Soukyuu
24th July 2013, 20:05
The remuxing worked great, except for one huge problem: no audio was muxed in because it was that dreaded, stinking NellyMoser garbage. Nothing can be done about this, correct? Or is there, other than converting it?You could try other containers, maybe mp4 works? Easiest way might be MeGUI. Though I'm surprised there are some obscure formats mkv doesn't support. NellyMoser doesn't seem to be an audioformat from what google showed me, what's the extension?
nevcairiel
24th July 2013, 20:37
NellyMoser doesn't seem to be an audioformat from what google showed me, what's the extension?
http://wiki.multimedia.cx/index.php?title=Nellymoser
Its a rather stupid codec mostly only used in flash files.
You should probably transcode it with ffmpeg from flv into mkv/mp4, while keeping video untouched.
Aleksoid1978
25th July 2013, 02:11
Thats probably the case, flv is primarily a streaming format and many of these saved streams dont contain the seeking information.
Some FLV contained in the header's metadata of the data keyframe. And ffmpeg support it's and parse.
Megalith
25th July 2013, 02:17
@Megalith
There's a clipping protection build in which will reduce the volume during rare extremely loud passages.
If the sound is just too quiet increase the volume elsewhere.
If you want to change the mix, i.e. the relation between the channels, then set it as you like best.
Setting all levels to 1 will not keep consistency but the default values will in general.
Including the LFE is uncommon. But if you do it needs to be played 10 dB louder than the other channels. However downmixing needs a correction for some channels. Therefore the center and surrounds are set 3 dB quieter and LFE needs 10 dB - 6 dB = 4 dB which gives a level of 10^(1/5) ~= 1.5849 (this is to include LFE with the rest default settings).
Actually an adaptive process would be necessary for minimizing all the possible problems of downmixing. Also listening at different volumes needs different mixing coefficients.
So in the end one won't get it perfect anyways which is why I propose to set anything just as one likes. :)
Thank you. I actually dove into some of the older posts and unearthed what are the supposed default/recommended settings for the mixer:
Center: .71
Surround: 1:00
LFE: .71
So I take it the LFE being set to .71 is incorrect? How about the center and surround coefficients?
Aleksoid1978
25th July 2013, 02:48
nevcairiel
With LAV Splitter show incorrect tag from AVI if it's contains non English text.
MPC:
http://i.imgur.com/7wPcC9I.png
MediaInfo:
http://i.imgur.com/d9sUrJy.png
LAV:
http://i.imgur.com/ehwfZdf.png
nevcairiel
25th July 2013, 07:20
Some FLV contained in the header's metadata of the data keyframe. And ffmpeg support it's and parse.
Yes, some, and if that is present, ffmpeg and LAV will use it.
But not all FLVs have that, in fact, quite a lot do not.
nevcairiel
With LAV Splitter show incorrect tag from AVI if it's contains non English text.
I'll have a look.
Edit:
Looks like AVI stores the tags in a ANSI charset and not UTF-8.
I added a fallback to ANSI parsing when UTF-8 parsing fails, however as always with ANSI codepages, this will only display properly if your local codepage matches the one of file.
STaRGaZeR
25th July 2013, 08:06
Nev, I guess you already have a Haswell, right? :p
How's QS working on it? On my old Sandy the fake screen method started to have issues (mainly BSODs) after the Catalyst march update or so, so I disabled QS completely. I'll try it again today with the new 4770K, but any weirdness I should care about? How's the speed and power consumption?
nevcairiel
25th July 2013, 08:25
If i would care about power consumption, i would not buy a 4770k.
QS works just like before for me, but i do not use any fake screen hacks or other weirdness, because i simply have a secondary screen actually connected to the iGPU.
And i don't really watch movies on that PC, its just my Dev and Gaming PC. :D
bugmen0t
25th July 2013, 08:27
Thank you. I actually dove into some of the older posts and unearthed what are the supposed default/recommended settings for the mixer:
Center: .71
Surround: 1:00
LFE: .71
So I take it the LFE being set to .71 is incorrect? How about the center and surround coefficients?
LAV uses the ITU recommendations as defaults and they're fine:
Center = 0.71 (-3 dB)
Surround = 0.71 (-3 dB)
LFE = 0 = off (or if one insists to include it: LFE = 1.58 (+4 dB))
The 3 dB attenuation of the center is to compensate for mixing one channel (the center) to two channels (left and right). Otherwise the center would be too loud since the volume adds up.
The 3 dB attenuation of the surrounds is for the same reason as in the past they had mono surrounds, i.e. two surround channels with exactly the same content. Therefore in cinemas and with downmixing they needed to have the surrounds 3 dB quieter. As they started to have actual stereo surrounds they mixed them 3 dB louder in the soundtrack already to compensate for that, so we still need -3 dB for downmixing.
The LFE should not include any dramatical relevant material. The front channels should contain all relevant bass already. Therefore it's common to not include it. If one still wishes to do so it should be played 4 dB louder. However that means you need to decrease the overall volume of the mix to prevent clipping and you will lose some bits. Therefore as a compromise some people also set it to -3 dB which will be too quiet but doesn't affect the rest of the mix. (Or maybe they're just wrong in thinking it works the same as for the center but the volume of bass adds up differently.)
I will now stop discussing this because in the end it just comes down to this:
Leave everything at default (that's the ITU recommendation; nev actually knows what he does ;)) or set them howsoever you like.
STaRGaZeR
25th July 2013, 10:03
If i would care about power consumption, i would not buy a 4770k.
QS works just like before for me, but i do not use any fake screen hacks or other weirdness, because i simply have a secondary screen actually connected to the iGPU.
And i don't really watch movies on that PC, its just my Dev and Gaming PC. :D
Power consumption awareness doesn't collide with fast processors, low PC when you don't need the performance and all that horsepower when you need it is the real thing :D
I'll try it the next few days, let's see how that goes. Hoping for no BSODs. And no VC-1 decoding artifacts :p
DragonQ
25th July 2013, 10:19
Power consumption awareness doesn't collide with fast processors, low PC when you don't need the performance and all that horsepower when you need it is the real thing :D
Plus, as of Sandy Bridge, overclocking doesn't affect idle power consumption as much because minimum clock speed isn't affected. Nehalem doesn't work like that, so my CPU's minimum clock speed was 2.2 GHz instead of 1.6 GHz for the last 4 years. :O
STaRGaZeR
25th July 2013, 11:38
Plus, as of Sandy Bridge, overclocking doesn't affect idle power consumption as much because minimum clock speed isn't affected. Nehalem doesn't work like that, so my CPU's minimum clock speed was 2.2 GHz instead of 1.6 GHz for the last 4 years. :O
Both clock speed and voltage are reduced under idle, and there's also power gating. My 4770K idles at 800 MHz, 0.7V, ~2.8W of package power at stock, the same but 0.77V when overclocked :D
DragonQ
25th July 2013, 12:21
Both clock speed and voltage are reduced under idle, and there's also power gating. My 4770K idles at 800 MHz, 0.7V, ~2.8W of package power at stock, the same but 0.77V when overclocked :D
Yeah I'd save a lot in electricity if I upgraded. It'd probably pay for itself in 20 years or so! ;)
STaRGaZeR
25th July 2013, 17:14
Mmm, it doesn't quite work right. First, there's always a second mouse cursor in the top left corner (caused by Intel drivers). Second, the fake screen resolution is fixed at 1280x720 and can't be changed, with my old Sandy it wasn't fixed. And third, every 10-20 seconds there's a weird issue, the image freezes for 1-2 seconds while audio keeps playing, and then it catches up very quickly resulting in a graph like this (http://www.imagebam.com/image/67a6fb267180103). Conclusion: not usable! Back to software mode.
magic144
26th July 2013, 03:46
Just want to +1 pOpY's posting
http://forum.doom9.org/showthread.php?p=1637943#post1637943
I just noticed on watching a DVD (SD MPEG2) that if I tried to engage LAV Video SW deinterlacing (YADIF), ZoomPlayer crashes (fault module avfilter-lav-3.dll)
Doesn't seem to matter if HW Decoder is engaged or not.
(Using 0.58, 0.58.1)
This problem is resolved going back to <= LAV 0.57
My setup is AMD Radeon 5670 gfx, Zoom Player MAX 8.7b12, Windows 7 Home Premium 32-bit.
Let me know if I can (and how to) send you any test data or other support info.
Cheers,
m
nevcairiel
26th July 2013, 07:10
The only thing that helps with crashes are crash dumps. You could try with MPC-HC and see if it also crashes, and if it does it should write a crash dump file which you can upload.
On the other hand, a crash within avfilter will most likely not show up properly in the dump anyway, but still worth a try i guess.
Sadly, i was unable to reproduce any issues on my end.
Edit:
I managed to reproduce the issue, i'll take a look.
Edit2:
And its fixed, bugfix release coming out soon.
magic144
26th July 2013, 13:09
Wow - quick turnaround - thanks!!
nevcairiel
26th July 2013, 13:10
I looked into the issue before, but today i got lucky and figured out the reason, either i was blind before or who knows.
nevcairiel
26th July 2013, 13:33
LAV Filters 0.58.2
LAV Splitter
- Fixed demuxing of WavPack from MKV
LAV Video
- Fixed a crash when YADIF was being used on a single- or dual-core CPU
LAV Audio
- Fixed decoding of DTS streams with a frame size change mid-stream
Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.58.2.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.58.2.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.58.2-x64.zip)
Just a bug fix/crash fix release, primarily for the YADIF crash, and i decided to pull in two other safe changes.
This release is not based on todays git master, but a stable branch i specifically created to push these changes (of course master also contains the fixes), just as a FYI for anyone that builds their own or bundles it.
Anyway, not much to say about this one otherwise!
Have fun!
CharlieCL
26th July 2013, 13:54
The default setting of LAV hardware acceleration is software. Is it possible to detect HW acceleration available and select right codec? For example, when my PC is Quick Sync enabled it will set Quick Sync as default codec. The difficult may be no universal code to detect HWA for all processors from NVIDIA/INTEL/AMD, and so on.
nevcairiel
26th July 2013, 14:02
LAV intentionally uses software by default, because its guaranteed to produce correct results and does not rely on properly functioning drivers and the likes to output an image.
Blight
26th July 2013, 14:48
nev:
The LAV Installer has some script that closes players, but it causes Zoom Player to crash and not close gracefully, any ideas why?
How are you trying to close the process?
nevcairiel
26th July 2013, 15:48
Thats just Inno Setup features, it notices when a process still uses one of the files its trying to overwrite and trys to close that processes, i have zero influence on that.
clsid
26th July 2013, 16:45
That feature can be disabled (CloseApplications=false), but then a restart would be required to complete the installation when a file is in use.
Blight, it uses this Windows API:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa373524.aspx
LeChuck
26th July 2013, 17:34
When playing the 2D Blu-ray Version of "Tron Legacy" the german audio track just goes silent at
01:23:28 and stays off until i seek to another position.
It happens with LAV Audio set to DTS Bitstreaming. Software-Decoding works fine with no audible artefacts.
I'm sorry to report that the issue still exists in 0.58.2
The weird thing is that the 'roytam' nightly builds mentioned by 'ryrynz' have the issue fixed with 'lavf-my130718-c60a0ac.7z' or later :confused:
@nevcairiel: Is it possible, that your fix is not in the 0.58.2 build?
clsid
26th July 2013, 17:45
Any chance for getting an "Auto-load VSFilter" equivalent in LAV Splitter anytime soon? WMP often refuses to load it by itself, especially with external subs.
nevcairiel
26th July 2013, 17:57
@nevcairiel: Is it possible, that your fix is not in the 0.58.2 build?
Yes, its not in 0.58.2, it'll only be in 0.59
That fix needs more testing to ensure it didn't break anything else in the process, so it didn't go into the stable. But i'm sure you're done watching that movie now :p
LeChuck
26th July 2013, 19:47
Yes, its not in 0.58.2, it'll only be in 0.59
That fix needs more testing to ensure it didn't break anything else in the process, so it didn't go into the stable. But i'm sure you're done watching that movie now :p
Ok, no problem. I just thought your 0.58.2 release notes suggested that the fix is already in there.
Btw. i think the original Tron is the better movie anyway :)
nevcairiel
26th July 2013, 19:49
Ok, no problem. I just thought your 0.58.2 release notes suggested that the fix is already in there.
That was for another issue actually. ;)
dg512
26th July 2013, 22:05
@nev
Is is possible to have an option of 'Automatic' (i.e. first available) for the hardware decoder dropdown in LAV Video?
ƒreeman
26th July 2013, 22:37
Excellent Filter mate.. one question though..
when running intel quicksync, is it supposed to use dxva2..??
Tom Keller
27th July 2013, 01:20
Today i experienced the same behavior described here 1 1/2 years ago:
http://forum.doom9.org/showpost.php?p=1545919&postcount=7723
That alone is really odd. But there's more. Because strangely enough: the "LAV Audio Decoder" (vice versa) refuses to connect to neither the "Haali Media Splitter" nor the "MPC MP4/MOV Splitter", if a QuickTime video with QDM2 audio is the source. Same with the "AV Splitter" from void: no connection to LAV Audio possible (but in this case ffdshow won't work too :eek: - so it's kind of a draw ;) ). Really weird!
I know... i know: QDM2 is kind of a rare audio format. But still: it's a bummer, that in some cases you have to stick with specific filter combinations, although in theory it shouldn't be necessary.
nevcairiel
27th July 2013, 08:45
when running intel quicksync, is it supposed to use dxva2..??
QuickSync is just a wrapper around DXVA2, so internally it'll always use it.
Today i experienced the same behavior described here 1 1/2 years ago:
Well, no you haven't.
The question back then was why ffdshow wouldn't connect to LAV Splitter, and i still don't know why it doesn't.
Your question is why LAV Audio doesn't connect to other splitters for QDM2, which is a completely different thing.
In any case, keep in mind that there is hundreds of small and unimportant audio codecs, so unless someone asks about one specifically, i'm content having it limited to work with LAV Splitter only. But since you asked, next version should now connect to QDM2 with other splitters too. I'm just not sitting down and hunting for samples for all these odd formats and hooking them up, if noone expresses interest. :)
Hi.Last night I watched Oblivion Blu-ray with DTS-MA track and experienced strange audio glithes/drops here and there with latest LAV audio filter. For example right from beginning when universal logo arrives around 00h:00m:19s point. With ffdshow everything plays fine.
red5goahead
27th July 2013, 17:42
A question about matrix encoded material: is it possibile with Lav decode a Dolby prologic II stereo track to 5+1 channel layout and switch to it only when the stereo track is encoded?
I know there are the mixing features but I'm not sure how the mixing (or better the up-mixing in my case) are implemented on a stereo track without Dolby prologic II
Weirdo
27th July 2013, 21:56
Back on the subject of Nullsoft .nsv files after a couple of years... tried both MPC-HC and jrMC and LAV opens them, but seek is not possible. Here (https://dl.dropboxusercontent.com/u/59646917/Nsv%20file.rar) is one such file, in case it's an easy fix.
nevcairiel
27th July 2013, 22:16
Back on the subject of Nullsoft .nsv files after a couple of years... tried both MPC-HC and jrMC and LAV opens them, but seek is not possible. Here (https://dl.dropboxusercontent.com/u/59646917/Nsv%20file.rar) is one such file, in case it's an easy fix.
Can anything seek in those?
NSV is supposed to have a header with a seeking index and info about the file duration (a NSVf chunk), however this header can be ommited for streaming content - and then you don't know how long the file is or where to seek to, really.
Weirdo
27th July 2013, 22:24
Can anything seek in those?
NSV is supposed to have a header with a seeking index and info about the file duration (a NSVf chunk), however this header can be ommited for streaming content - and then you don't know how long the file is or where to seek to, really.
Hm, I thought VLC could seek but looks like it can't. Winamp can seek though. Maybe they use some proprietary tricks...?
wanezhiling
28th July 2013, 05:08
http://pan.baidu.com/share/link?shareid=3664210942&uk=3558042035
nev, lav cant decode the divx file?
nevcairiel
28th July 2013, 08:06
http://pan.baidu.com/share/link?shareid=3664210942&uk=3558042035
nev, lav cant decode the divx file?
Should be fixed, "Divx" was a rather unusual FourCC, usually its either "divx" or "DIVX", not mixed-case.
wanezhiling
28th July 2013, 09:19
:thanks:
Seems that LAV often lacked some unusual FourCCs, many cases happened before.:)
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.