View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
DragonQ
26th April 2013, 20:42
No, it does not.
The audio renderer does all this. If the audio renderer supports bitstreaming, it will know not to treat it like ordinary PCM.
Ah right, so it's up to the renderer to ensure it passes through the bitstream from LAV Audio. Thanks.
kasper93
26th April 2013, 23:24
nevcairiel: Could you add rtmp support?
I've added --enable-protocol=rtmp in build script, works just fine :)
EDIT:
Or not... Playback starts fine, but after a while
"LAVSplitter.ax(tid 9c0) 82141 : ::GetNextPacket(): End of File reached"
and it stops... I guess it's because not stable source, but LAV could wait few sec for recovery, rtmp streams send end packet when it ends... Would be nice to have it working, but I don't know if you care about rtmp or any other streaming ;p
PS. Works fine with ffplay
clsid
26th April 2013, 23:31
Can you also add support for ICYX:// urls? It is just an alias for HTTP, so it should be a simple matter of doing a string change before passing the url to libavformat.
nevcairiel
27th April 2013, 06:14
Personally, i would rather remove streaming options than adding new ones. :)
romulous
27th April 2013, 06:18
Hi nev,
I have a sample file (linked below) that was provided by one of the users on a forum I help out on. There seems to be a problem with LAV with this file - the user reports that changing the splitter to Haali's instead of LAV fixes the problem. This was the problem description:
Ripped Dogma tonite, and the beginning of the movie is all black and has white fonts. Only with fullscreen on and my Audio set to my headset the fonts are messed up :huh: if I switch to windowed mode all is fine, or if I switch to another audio device all is fine.
I notice that when the movie first starts during the very first instant of it when everything is still black you can see the blank screen (totally black) switch to a slightly brighter version of black as the video starts playing. Well.... when I'm set to my headset and in fullscreen mode the video doesn't brighten up like that until the first still image switches to a fade in at 10 seconds. If I wait till the video is playing fine then rewind to the beginning of the movie *without* hitting stop it displays correctly.
How strange is that :unsure:
I've ripped and copied about 30 of my movies so far and have not seen anything like this yet. Here's a couple screens to show what I'm talking about. both taken at the same point in the video about 5 seconds in.
Those screenshots are linked below. The user is still awaiting the '5 days before you can post' new account thing to expire on Doom9, so I offered to post it on their behalf. It would be appreciated if you could take a look at it.
Clip: https://dl.dropboxusercontent.com/u/105555957/5mb%20split%20DOGMA.Title1_0.mkv
Screenshot #1: https://dl.dropboxusercontent.com/u/105555957/Dogma%201.jpg
Screenshot #2: https://dl.dropboxusercontent.com/u/105555957/Dogma%202.jpg
Thanks!
romulous
truexfan81
27th April 2013, 06:31
nevcairiel how exactly does one compile LAV filters using VS2012? when i click build i get 7 errors saying Platform Toolset = 'v110_xp' cannot be found. it says to click the Project menu and then select Update VC++Projects to install it. problem is there is no Update VC++ Projects or anything close to it in the projects menu.
i'm trying to do this on win7
thanks
nevcairiel
27th April 2013, 06:31
There seems to be a problem with LAV with this file - the user reports that changing the splitter to Haali's instead of LAV fixes the problem.
Dunno what to tell you, but when i open this file with LAV, it immediately shows the slightly grey-ish screen, and after about 2 seconds the text appears, seems like it functions as expected.
Fullscreen mode or not, doesn't make any difference.
The fact that this is dependent on FS mode or the selected audio device suggests to me that this is not directly related to the splitter.
More relevant infos to me would be which player, decoder, renderer. HW decoding or SW, etc.
This seems hardly something the splitter has direct influence on, may just be a coincidence that switching it helps somehow.
nevcairiel
27th April 2013, 09:18
@nevcairiel: when you're first doing some fixing related to ordered chapters, how about a little optimizing also ;)
Try with this version?
I didn't do all that much testing yet, but initially it looks functional and reduces the number of querys to the disc to only one read to determine if the file is required.
However, even with like 30 files in one directory, LAV opens in under one second for me (before the change), my network must be faster. :p
Anyway, give it a go:
http://files.1f0.de/lavf/LAVFilters-0.56.2-mkvoptims.zip
Edit:
fixed link
Mercury_22
27th April 2013, 09:24
nevcairiel how exactly does one compile LAV filters using VS2012? when i click build i get 7 errors saying Platform Toolset = 'v110_xp' cannot be found. it says to click the Project menu and then select Update VC++Projects to install it. problem is there is no Update VC++ Projects or anything close to it in the projects menu.
i'm trying to do this on win7
thanks
Did you update your VS to update 2 or even update 3 CTP?
Also you need to build ffmpeg first :)
romulous
27th April 2013, 11:52
The fact that this is dependent on FS mode or the selected audio device suggests to me that this is not directly related to the splitter.
More relevant infos to me would be which player, decoder, renderer. HW decoding or SW, etc.
Thanks nev - I will get some more details about what filters are in use and will get back to you (player is Zoom Player).
mastrboy
27th April 2013, 14:00
Try with this version?
I didn't do all that much testing yet, but initially it looks functional and reduces the number of querys to the disc to only one read to determine if the file is required.
However, even with like 30 files in one directory, LAV opens in under one second for me (before the change), my network must be faster. :p
I helped a lot, went from ca 30 sec to 5 sec, still a little slower than Haali though (1-2 sec) :P
Thanks for the update, didn't expect it so soon :)
nevcairiel
27th April 2013, 15:09
Next try:
http://files.1f0.de/lavf/LAVFilters-0.56.2-mkvoptims2.zip
Maybe a bit better again? :)
Its about all i can think of right now without resorting to the really hacky things.
mastrboy
27th April 2013, 17:24
We're down to 3 sec on the same folder i tested last time. Anyway, it's more than good enough in my opinion when compared to the builds without optimizations.
nevcairiel
27th April 2013, 17:34
Sounds good, i'll call that resolved for now then.
dukey
27th April 2013, 18:48
I got a crash with yadiff deinterlacing with dslibluray
Crashes
Fault Module Name: avfilter-lav-3.dll
No idea if this helps at all
http://i.imgur.com/sz9RgFP.png
nevcairiel
27th April 2013, 20:01
Someone else reported this, but i can't reproduce any issues. :(
If this happens reliably, can you show the disasm at the crash spot? Maybe its related to some special cpu features, even if i doubt it.
dukey
28th April 2013, 01:30
http://i.imgur.com/h5CWrOS.png
Crashes basically every time in software mode anyway
cyberbeing
28th April 2013, 02:37
Sounds good, i'll call that resolved for now then.
The remaining difference would appear to be caused by QueryInformationVolume & QueryAllInformationFile calls on each MKV, which Haali doesn't do.
LAV (mkvoptims2)
CreateFile 01.mkv Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened
QueryInformationVolume 01.mkv VolumeCreationTime: 8/10/2011 6:37:29 PM, VolumeSerialNumber: 983B-EC50, SupportsObjects: True, VolumeLabel: Ani6
QueryAllInformationFile 01.mkv CreationTime: 5/8/2011 12:19:14 PM, LastAccessTime: 4/27/2013 1:10:34 PM, LastWriteTime: 5/8/2011 12:32:25 PM, ChangeTime: 4/17/2013 6:51:02 PM, FileAttributes: ANCI, AllocationSize: 564,854,784, EndOfFile: 564,817,797, NumberOfLinks: 1, DeletePending: False, Directory: False, IndexNumber: 0x100000000075b, EaSize: 0, Access: Generic Read, Position: 0, Mode: Synchronous IO Non-Alert, AlignmentRequirement: Byte
ReadFile 01.mkv Offset: 0, Length: 32,768, Priority: High
Haali
CreateFile 01.mkv Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened
ReadFile 01.mkv Offset: 0, Length: 32,768, Priority: High
CloseFile 01.mkv
ryrynz
28th April 2013, 05:41
When I my receiver is on standby and is passing through HDMI, why is it that the Microsoft DTV-DVD audio decoder is used instead of LAV?
sneaker_ger
28th April 2013, 07:08
The remaining difference would appear to be caused by QueryInformationVolume & QueryAllInformationFile calls on each MKV, which Haali doesn't do.
Here it even tells me these calls' results are "BUFFER OVERFLOW". (QueryAllInformationFile)
Other than that:
Haali closes unneeded files after the search, while LAV leaves them open to the end.
You can also see how all mkv files in the folder are being searched, although all needed segments have already been found. But Haali seems to do that, too. (Even tries to read the current file again and all files regardless of extension.) So it could be optimized, but it shouldn't be slower than Haali because of that.
nevcairiel
28th April 2013, 07:57
The remaining difference would appear to be caused by QueryInformationVolume & QueryAllInformationFile calls on each MKV, which Haali doesn't do.
I know, but this is part of the core ffmpeg file opening code, and i didn't want to start hacking around in there
sneaker_ger
28th April 2013, 08:00
Here's a sample for the simple linking via PrevUID/NextUID with supporting PrevFilename/NextFilename elements:
http://www.mediafire.com/?66sed9zia7152rr
Files A, B and C are linked. File D is an independent file. LAV behaves similar to the ordered chapters linking, i.e. it reads in all files including D.
cyberbeing
28th April 2013, 10:22
Here it even tells me these calls' results are "BUFFER OVERFLOW". (QueryAllInformationFile)
I get that as well, but I omitted it from my post since it shouldn't matter. It essentially just means that the allocated buffer was too small and Windows prevented a buffer overflow by discarding the extra data. It's quite possible FFMPEG uses a small buffer on purpose, if it doesn't care about the information at the end of these calls.
Relavant Blog Post (http://blogs.technet.com/b/markrussinovich/archive/2005/05/17/buffer-overflows.aspx)
nevcairiel
28th April 2013, 10:51
ffmpeg is just calling _fstati64, which must internally translate to those other functions with a partial data buffer (because it only needs a subset of the data), as explained in that blog post.
Anyway, i did some more changes, it will now close files it doesn't need after building the virtual timeline, and also skip that fstat call for file probing (its not needed here).
I'm not sure if i will bother dealing with Prev/NextFilename soon, it seems rather rare for these to be set properly (at all or to valid values, wouldn't survive a rename obviously), and would add a bit of extra complexity in the code, maybe at a later date (but i did put it on my task list)
Edit:
If anyone wants to test:
http://files.1f0.de/lavf/LAVFilters-0.56.2-6-g848018d.zip
Soukyuu
28th April 2013, 19:14
I am getting weird behavior on some of the videos, playback gets stuck even though both the GPU (36%) and the CPU (24%) usage are fine. I tried disabling xy vs-filter and madVR, as well as disabling LAV and the issue is gone. Turning madvr and xy-VSFilter back on doesn't reintroduce the issue.
Basically, when I jump to a chapter in an mkv, video will get stuck while audio is playing and madVR is reporting all queues to be empty. The video re-synchronizes after about 5 seconds, with madVR displaying the decoder queue overflowing (i.e.: 34-36/6), rest of the queues are shown as full. It happens with the mkv being played both from the network share (~80MB/s access speed) and my HDD. I have the video decoder in software mode, setting it to any hardware accelerated doesn't solve the issue, but results in dropped frames... but the above queue overflow doesn't happen.
Any ideas?
edit: I have to add that it happens only on this specific chapter, not all the chapters of this file, so maybe it's bitrate related?
kasper93
30th April 2013, 00:04
@nevcairiel: Could you take a look? https://dl.dropboxusercontent.com/u/16282309/MPC-HC/test1.flv
LAV Splitter doesn't see video stream. Works fine with MPC flv source and with ffplay... It's totally random shitty .flv but doesn't work only with LAV so I think it could be fixed :) Thanks in advance.
filler56789
30th April 2013, 00:59
https://dl.dropboxusercontent.com/u/16282309/MPC-HC/test1.flv
Looks like that's a b0rked file:
=>ffmpeg -i test1.flv
ffmpeg version N-49069-gc74d465 Copyright (c) 2000-2013 the FFmpeg developers
built on Jan 20 2013 23:39:19 with gcc 4.7.2 (GCC)
*
*
*
[flv @ 024f7840] decoding for stream 0 failed
[flv @ 024f7840] Could not find codec parameters for stream 0 (Video: h264, 1843 kb/s):
unspecified size
VirtualDub cannot open it neither. ;)
Workaround: remux with a DirectShow Matroska Muxer. Then if you remux the MKV with ffmpeg,
the new FLV plays normally in VirtualDub. :)
filler56789
30th April 2013, 03:01
OTOH, perhaps the following pesky .RM file is worth studying :)
http://forum.videohelp.com/threads/355579-How-to-make-playable-RMF-format-RealVideos?p=2237672&viewfull=1#post2237672
Telion
30th April 2013, 12:02
Hello, nevcairiel!
I've stumbled upon an mkv file with chapters that aren't exposed to MPC-HC/BE Jump To menu by LAV Splitter, while they are shown when using Haali or MPC Matroska Source splitters. Please take a look at the sample:
http://www.sendspace.com/file/gc9dft
nevcairiel
30th April 2013, 12:05
Hello, nevcairiel!
I've stumbled upon an mkv file with chapters that aren't exposed to MPC-HC/BE Jump To menu by LAV Splitter, while they are shown when using Haali or MPC Matroska Source splitters. Please take a look at the sample:
http://www.sendspace.com/file/gc9dft
These chapters are not marked as "Enabled" in the MKV file, and therefor are not shown.
kasper93
30th April 2013, 12:33
@filler56789
Yeah, nevermind it's just broken file... But when MPC FLV Source playback it fine ;p Anyway, I know how to fix such streams, I play a lot with shitty staff recently ;p
betaking
30th April 2013, 14:39
to nev last git can not built lavaudio.ax!
nevcairiel
30th April 2013, 14:57
Fixed
00pontiac
1st May 2013, 02:57
Dunno what to tell you, but when i open this file with LAV, it immediately shows the slightly grey-ish screen, and after about 2 seconds the text appears, seems like it functions as expected.
Fullscreen mode or not, doesn't make any difference.
The fact that this is dependent on FS mode or the selected audio device suggests to me that this is not directly related to the splitter.
More relevant infos to me would be which player, decoder, renderer. HW decoding or SW, etc.
This seems hardly something the splitter has direct influence on, may just be a coincidence that switching it helps somehow.
hi nev, yeah I'm the user Romulous mentioned (original post is here http://forum.doom9.o...873#post1625873 ) about the info you mentioned, I've taken a screenshot of my Filter Properties window (shows most of the info there I believe and is opened on the video at the same time I get the weird behavior) my player is Zoomplayer and as for software/hardware decoding, I've tried software and DXVA2 Copy-Back and DXVA2 Native, all exhibiting the same problem.
tahaa7
1st May 2013, 10:32
There seems to be a problem with the latest version of LAV Audio Decoder. It no longer outputs DTS-HD MA in full resolution (with dtsdecoder.dll), only 16-bit/48kHz.
nevcairiel
1st May 2013, 11:01
There seems to be a problem with the latest version of LAV Audio Decoder. It no longer outputs DTS-HD MA in full resolution (with dtsdecoder.dll), only 16-bit/48kHz.
Still works perfectly here, and nothing changed in there for month.
Soukyuu
1st May 2013, 11:07
I am getting weird behavior on some of the videos, playback gets stuck even though both the GPU (36%) and the CPU (24%) usage are fine. I tried disabling xy vs-filter and madVR, as well as disabling LAV and the issue is gone. Turning madvr and xy-VSFilter back on doesn't reintroduce the issue.
Basically, when I jump to a chapter in an mkv, video will get stuck while audio is playing and madVR is reporting all queues to be empty. The video re-synchronizes after about 5 seconds, with madVR displaying the decoder queue overflowing (i.e.: 34-36/6), rest of the queues are shown as full. It happens with the mkv being played both from the network share (~80MB/s access speed) and my HDD. I have the video decoder in software mode, setting it to any hardware accelerated doesn't solve the issue, but results in dropped frames... but the above queue overflow doesn't happen.
Any ideas?
edit: I have to add that it happens only on this specific chapter, not all the chapters of this file, so maybe it's bitrate related?
Not sure if this was overlooked...
tahaa7
1st May 2013, 11:22
Still works perfectly here, and nothing changed in there for month.
Sorry, my fault. Yes, it works perfectly. Looks like the Blu-ray I tried to play only has a 16-bit DTS-HD MA track.
BTW, thank you very much for this project! ;)
00pontiac
1st May 2013, 11:43
.
.
.
.
.
00pontiac
1st May 2013, 11:46
hi nev, yeah I'm the user Romulous mentioned (original post is here http://forum.doom9.o...873#post1625873 ) about the info you mentioned, I've taken a screenshot of my Filter Properties window (shows most of the info there I believe and is opened on the video at the same time I get the weird behavior) my player is Zoomplayer and as for software/hardware decoding, I've tried software and DXVA2 Copy-Back and DXVA2 Native, all exhibiting the same problem.
I should probly add the fact that in my original post to the Zoomplayer forum I found the issue to be dependent on my audio setting (yeah, bear with me here), I'm running two copies of Zoomplayer each with their own audio output settings. In the first instance my sound card is outputting audio via DirectSound: S/PDIF Pass-through Device on my audio card (which is an ASUS Xonar Essence STX Audio Device) there is no issues here, everything behaves exactly as expected with no problems. On my second installation of Zoomplayer I'm using my DirectSound: 7.1 Logitech Headset G930 for audio - THIS is where the problem occurs. It is in this instance that the problems occur, and thus my original thread on the Zoomplayer forums of 'Audio influencing Video' (http://forum.inmatrix.com/index.php?showtopic=14037&hl=%2Baudio+%2Binfluencing) So this is all a long shot and I kinda figure there's no help, just the fact that Logitech is somehow F****D again, and throwing a monkey wrench in the works with their half arsed drivers :stupid: in which case I can understand. Just following a suggestion that you might like to look at it - especially because and for the fact that when I switch to Hali for my spliter there's no issues at all.
thanks nev
leeperry
1st May 2013, 15:16
Is there a way you could please allow to choose between the WM9 DMO and libavcodec? ffdshow has the option but when I open a bunch of files in seamless playback mode with PotP, the latter will not switch between LAV/ffdshow(as LAV can also decode it) and I've got some videos that would appear to show glitches with the DMO and not libav(which also decodes in MT IIRC?) :o
:thanks:
DragonQ
1st May 2013, 15:25
Is there a way you could please allow to choose between the WM9 DMO and libavcodec? ffdshow has the option but when I open a bunch of files in seamless playback mode with PotP, the latter will not switch between LAV/ffdshow(as LAV can also decode it) and I've got some videos that would appear to show glitches with the DMO and not libav(which also decodes in MT IIRC?) :o
:thanks:
You mean like this option?
http://www.aotplaza.com/Files/HTPC/LAV%20Video%20Properties.png
paradoxical
1st May 2013, 15:26
Is there a way you could please allow to choose between the WM9 DMO and libavcodec? ffdshow has the option but when I open a bunch of files in seamless playback mode with PotP, the latter will not switch between LAV/ffdshow(as LAV can also decode it) and I've got some videos that would appear to show glitches with the DMO and not libav(which also decodes in MT IIRC?) :o
:thanks:
There already is an option. Uncheck "Use Microsoft WMV9 DMO decoder" in the LAV video properties. It's been there for some time now.
DarkSpace
1st May 2013, 16:09
If dynamic ASS style switching worked, this would be possible - but this is not in my hands, its the subtitle filters which don't support this right now.
The xy-VSFilter dev expressed that he sees this as a useful feature to support. Possibility for the future.
Just for the record, I created an issue (http://code.google.com/p/xy-vsfilter/issues/detail?id=147) at the xy-VSFilter Issue Tracker for this.
Out of interest, are you still trying to re-send the relevant styles to the subtitle renderer on a Segment switch in addition to loading the whole Style block of the main Segment or is this behavior turned off?
Aleksoid1978
2nd May 2013, 08:04
Hi nevcairiel
LAV splitter incorrect work with some .aob files (DVD-Audio).
http://aleksoid.voserver.net/Sample/MLP/ats_01_1.aob - incorrect duration detect.
http://aleksoid.voserver.net/Sample/MLP/DVDA_LPCM_16bit44100stereo.AOB - wrong track type detect, pcm_s16be instead of MLP.
Aleksoid1978
2nd May 2013, 08:06
if any have a MKV's with linked Segment and different subtitle style - upload please, i want do accept new style when Segment changes.
THX-UltraII
2nd May 2013, 14:31
Is it possible with LAV filters to move my subtitles when playing BDMV Blu-Ray structure? I tried the override placement setting in MPC-HC but it does not do anything.....
nevcairiel
2nd May 2013, 14:46
Why would the source move your subtitles?
AngelGraves13
3rd May 2013, 06:42
I've got LAV set up perfect for watching my blu-ray remuxes.
Forced Subs + flags in the MKV and MPC BE. Arcsoft DTS-HD Decoder as well. Using the 32-bit build of MPC BE because Arcsoft DLL is only 32-bit.
It doesn't get any better than using LAV.
I've got LAV set up perfect for watching my blu-ray remuxes.
Forced Subs + flags in the MKV and MPC BE. Arcsoft DTS-HD Decoder as well. Using the 32-bit build of MPC BE because Arcsoft DLL is only 32-bit.
It doesn't get any better than using LAV.
Agreed... Paired with madVR nothing is better! Mad props to nevcairiel and madshi!
QB
ps... I use PotPlayer with a super minimalist skin. I think it was Cruncher who created it... slick and clean.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.