View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
Remicade
17th January 2012, 18:55
DRC in LAV Audio works only in AC3 ? DTS don't ? It's very annoying to watch movies night.
STaRGaZeR
17th January 2012, 18:58
I usually update quite frequently (always against master), typically at least once shortly after a LAV release (so that any bugs that might come from ffmpeg can be resolved until the next release).
What "ffmpeg" do you use anyway? ffmpeg, libav, or a mix?
nevcairiel
17th January 2012, 19:29
What "ffmpeg" do you use anyway? ffmpeg, libav, or a mix?
ffmpeg and some of my own patches.
STaRGaZeR
17th January 2012, 22:58
ffmpeg and some of my own patches.
Nice. If you do right-click in the ffmpeg folder and use TortoiseGit's "Show log" feature, your custom patches are all those above the origin/upstream tag? Git noob here :p
BTW I was bored and since I couldn't multithread the Fraps decoder (there are repeated P frames in there and stuff), I just multithreaded the DNxHD decoder. Couldn't have been easier. On the 598MB sample here (http://www.limpans.com/DNxHD%20Samples.htm), I get this when benchmarking:
1 thread: ~28 fps and around 25% CPU usage. Real time playback is impossible, too slow.
4 threads: ~144 fps and around 100% CPU usage. More than 4x speedup, smooth playback is possible.
Tested on my 4 core 4 thread 2500K. Here's a build in case anyone wants to try it: http://www.mediafire.com/?lvvq1bl4d63ad2l
What's the best way to get this reviewed and eventually commited to ffmpeg?
nevcairiel
17th January 2012, 23:06
What's the best way to get this reviewed and eventually commited to ffmpeg?
http://ffmpeg.org/developer.html#Submitting-patches
In general, just make sure it looks good, then do git format-patch, and send it to the mailing list with a comment or two.
Running fate is usually a good idea, if the codec even has fate.. but the developers would probably do it before commiting it.
boyumeow
18th January 2012, 06:42
Hi, I'm confuse, should my
GeForce GTX 550 Ti, GF116, VP4, C
be able to play
Video
ID : 1
Format : MPEG-4 Visual
Format profile : Advanced Simple@L5
Format settings, BVOP : Yes
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (H.263)
Codec ID : XVID
Codec ID/Hint : XviD
using CUVID, cause I can't...
Thanks.
Zachs
18th January 2012, 06:56
I've recently made the switch from AC3Filter to LAV audio but found it to be lacking a few things that the former has.
1) Equalizer
I need to boost the high frequencies a little to compensate for my satelite speakers' lack of tweeter.
and
2) night-mode
where you can dumb down the loudness of explosion and all but keep the dialogue volume the same. In AC3Filter, this is adjustable and applies to all sources (i.e. not just AC3 Dynamic Range Compression).
Is there an equivalent way of achieving the above with LAV Audio?
thomaz909
18th January 2012, 06:57
hi nevcairiel,
im using dvbviewer together with lavvideo decoder and lav audio decoder.
sometimes after "discontinuities" happen when watching mpeg2 sdtv audio and video gets async.
the same problem happens with ffdshow.
with mainconcept mpeg2 decoder, bitcontrol and etymonix mpeg2 decoder the async issue doesnt happen.
ffdshow and lavfilters show picture errors (blocks) when a "discontinuitie" happens.
with mainconcept, etc the picture freezes and skips but no block errors are displayed.
im running lav filters in software mode (ati card) with yadif enabled and set to 50/60fps.
i hope this gets fixed cause i love lavfilters :)
Superb
18th January 2012, 12:47
Hi, I'm confuse, should my
be able to play
using CUVID, cause I can't...
Thanks.The next version of LAV Filters will be able to decode MPEG-4 ASP via CUVID.
dukey
18th January 2012, 12:47
Is there any way to increase the max playback rate under directshow ? For fast forwarding. I am using lav splitter, lav audio/video decoder and EVR. My max playback rate seems to be locked at 2x. Yet for fast forwarding DVDs I can get 16x. Is this the video renderer telling downstream the max rate ? Ie how many actual frames it can draw. It would be nice if we could fast forward, the same as we can with DVDs. Something like muting the audio past 2x, and skipping frames with video should do the trick ..
iSunrise
18th January 2012, 12:47
I've recently made the switch from AC3Filter to LAV audio but found it to be lacking a few things that the former has.
1) Equalizer
I need to boost the high frequencies a little to compensate for my satelite speakers' lack of tweeter.
and
2) night-mode
where you can dumb down the loudness of explosion and all but keep the dialogue volume the same. In AC3Filter, this is adjustable and applies to all sources (i.e. not just AC3 Dynamic Range Compression).
Is there an equivalent way of achieving the above with LAV Audio?
WRT to night-mode, there is an option to DRC (dynamic range compression) some output streams that support it under the Audio settings tab. Never tried it though.
Apart from the options in the Audio settings tab, LAV currently cannot do post-processing like AC3filter or the ffdshow post-processor filter does.
There is a fair share of people who asked nevcairiel before, but I´m not sure if it´s still on his todo list to add another tab in the lav audio filter and put in some post-processing stuff like down-mixing to stereo, for example.
You can use the ffdshow post-processor filter in your chain and achieve what you want, even though I would prefer to use LAV filters for that, because I don´t use ffdshow anymore, nevcairiel already made it 99% obsolete for me.
ryrynz
18th January 2012, 12:51
I've recently made the switch from AC3Filter to LAV audio but found it to be lacking a few things that the former has.
1) Equalizer
I need to boost the high frequencies a little to compensate for my satelite speakers' lack of tweeter.
and
2) night-mode
where you can dumb down the loudness of explosion and all but keep the dialogue volume the same. In AC3Filter, this is adjustable and applies to all sources (i.e. not just AC3 Dynamic Range Compression).
Is there an equivalent way of achieving the above with LAV Audio?
You can do both those things with ffdshow's audio processor under the volume and equalizer settings if you enable output to it via your media player.
Ahh iSunrise beat me to it while I was playing around. :D
Most sound card drivers tend to a configuration with equalizer settings, you could look into that and play with the DRC option in LAV.
nevcairiel
18th January 2012, 13:20
Only post-processing i will offer is a mixer, all the other features i have absolutely zero interest in supporting.
Mercury_22
18th January 2012, 13:38
Only post-processing i will offer is a mixer, all the other features i have absolutely zero interest in supporting.
Yes but will please, please.... :D add independent volume for each channel (like in FFD) too, cause there are a lot of movies/videos with surround channels with too lower volume or "vice versa", or people have different speakers (see above :) ) or....:p
jos99
18th January 2012, 13:43
The CUVID decoder should be able to use that, yes.
Its only partial acceleration, but better then nothing.
Hmm...when I remove all internal codecs and filters in MPC-HC, set LAV Video Decoder and LAV Splitter Source as preferred in external filters, MPC decoder just shows up when I try to play WMV9/VC1 MP content, even if I block it, any ideas?
nevcairiel
18th January 2012, 13:52
Yes but will please, please.... :D add independent volume for each channel (like in FFD) too, cause there are a lot of movies/videos with surround channels with too lower volume or "vice versa", or people have different speakers (see above :) ) or....:p
If there is a full matrix, you can do whatever you please (except increase the overall gain above 100%, because that would have a potential for clipping).
Keiyakusha
18th January 2012, 13:59
Am I doing something wrong or currently there is no way to output YV24 when decoding h264 4:4:4 8 or 10 bit? It outputs only AYUV which is not supported by avisynth or virtual dub.
nevcairiel
18th January 2012, 14:00
Am I doing something wrong or currently there is no way to output YV24 when decoding h264 4:4:4 8 or 10 bit? It outputs only AYUV which is not supported by avisynth or virtual dub.
Did you see a checkbox for YV24 in the formats configuration? No? There you have it! :)
I only implemented the most common formats, which are the recommended formats by Microsoft.
However, supporting YV24 would most likely be rather easy, because its a simple enough format.
Keiyakusha
18th January 2012, 14:04
Aha ok. No problems, I still can open files in virtual dub through hacky 3rd party ffmpeg-based plugin and save them to yv24. But hey, are you saying that AYUV is more common than yv24? Is there anything except LAV that supports it (and benefits from it)? ^__^
However, supporting YV24 would most likely be rather easy, because its a simple enough format.
Well, I'm not going to request this as a feature. I don't really need this on daily basis. Just now I need to process exactly this kind of content.
nevcairiel
18th January 2012, 14:21
AYUV is the recommended format by Microsoft for 8-bit 4:4:4, and madVR accepts it, as does EVR (although EVR depends on hardware support, which is usually not very good).
Adding YV24 support is probably a matter of half an hour or so, i'll put it somewhere on my list of things to do when i need something quick. :)
jos99
18th January 2012, 14:38
Hmm...when I remove all internal codecs and filters in MPC-HC, set LAV Video Decoder and LAV Splitter Source as preferred in external filters, MPC decoder just shows up when I try to play WMV9/VC1 MP content, even if I block it, any ideas?
Doh, solved, WMV3 & VC1 weren't ticked on LAV Formats tab, same for LAV audio, wma and wmapro were unticked (using Shark codec pack).
CruNcher
18th January 2012, 15:32
Lav wouldn't it be a good idear to merge AV Splitter and Lav Splitter resources into 1, both of you seem to reach for the same goal :)
Av Splitter feels a tad more stable has Program Switching (a custom graph system,including mediatype manipulation) for .ts and Lav Splitter has some more neat features combining both would be a good idea i guess :)
Though of course Mr Kytmanov would need to open up his code completely in the first place :)
nevcairiel
18th January 2012, 15:46
Not going to happen.
I only work open source, and with people that respect and endorse open source, both of which don't apply here.
Also, I don't want any graph manipulation things, that's not the splitters job.
CruNcher
18th January 2012, 16:06
Sad i found the idea of this German/Russian Collaboration exciting though i fully understand your points and as said obviously Mr Kytmanov would have to wakeup maybe starting to contributing to lav splitter would be a good start ;)
PS: Though i guess still Lav Splitter leads in overal interoperability recent test show that it's still ahead in playback efficiency also Av Splitters stream switching fails on many Streams in the test database even fails @ detecting programms sometimes @ all :) Also it has a lot of Latm issues that Nev can perfectly fix on both sides having the Audio decoder also under his control ;).
And because of this there are much more unsync situations as well which require to change the whole decoding chain just because of 1 file gets unsync with this decoder using another decoder its fine but another stream gets unsync that worked with the first ;) (this is practically eliminated in Lav Splitter and most video audio decoder combinations especially lav video + lav audio + coreavc + ffdshow + cyberlink).
RBG
18th January 2012, 17:48
CruNcher
Can you, please, upload any video samples, on which you encounter problems with AV. By the way, what version of AV do you use in your testing?
nevcairiel
I don't know, maybe you were asked this question few times before, but do you plan implementing mkv segment linking support to your splitter in the future? That surely is a nice feature supported by both AV and Haali, and it is sad that LAV is some kind of outsider here.:(
nevcairiel
18th January 2012, 17:55
Honestly, its a useless feature, not a nice feature. :p
It will be implemented some day, but don't hold your breath.
CruNcher
18th January 2012, 17:59
CruNcher
Can you, please, upload any video samples, on which you encounter problems with AV. By the way, what version of AV do you use in your testing?
nevcairiel
I don't know, maybe you were asked this question few times before, but do you plan implementing mkv segment linking support to your splitter in the future? That surely is a nice feature supported by both AV and Haali, and it is sad that LAV is some kind of outsider here.:(
1.2.0.6
they're a lot of issues (also some which it shares with lav splitter best example the mp4/mov freeze issue, most probably a core ffmpeg,libavformat issue) though im not putting the same effort into 2 different projects with the same goal (based on the same core) either they become 1 and share the same principals of the core they use or i have to decide for 1 and this decision is fairly clear for me for now (and it wont be the dark side ;) ) :)
MasterNobody
18th January 2012, 18:24
nevcairiel
Why there is no FFV1 support in LAV Video (I didn't found it on formats tab)? I thought it is rather easy to support it when you use ffmpeg. So why it is not there?
adam777
18th January 2012, 18:41
If there is a full matrix, you can do whatever you please (except increase the overall gain above 100%, because that would have a potential for clipping).
Just when I was about to ask if there are some news regarding this issue.
Glad to see it's still somewhere on the to-do list :)
(Oh, I'm totally ignoring the "if" at the beginning :p)
Pat357
18th January 2012, 18:44
Only post-processing i will offer is a mixer, all the other features i have absolutely zero interest in supporting.
By a mixer, I suppose you mean a 7+1 channel matrix or what did you have in mind ?
With a matrix based solution (maybe with presets for 2.0, 5.1 downmix), I think everybody could do it's own thingie :D
RBG
18th January 2012, 19:12
CruNcher
Dark side, lol...:D I have to agree with you, merging both projects would be great especially for end users, one splitter to rule them all:D, but sadly I must admit, that is something of the plane of dreams.:(
nevcairiel
Personally, I don't think it's useless, segment linking is relatively common among anime society. But again, nobody cares about anime lovers...
nevcairiel
18th January 2012, 19:14
common doesnt make useful. :D
Midzuki
18th January 2012, 19:43
Not to mention that presently most animés are N0T worth watching :devil: , to begin with ;) :) :p :D
Pat357
18th January 2012, 19:56
1.2.0.6
they're a lot of issues (also some which it shares with lav splitter best example the mp4/mov freeze issue, most probably a core ffmpeg,libavformat issue)
I thought these issues were fixed in the latest Lav version(s)
Can you upload a mov/mp4 that still freezes with LAV 0.44 ?
Thanks ! :D
PS: just to quickly rule out the core : do these mp4/mov's also crash in FFplay ? Output FFprobe ? Also freeze in Mplayer / Mplayer2 / Avplay (libav only) ?
RBG
18th January 2012, 20:25
Midzuki
Don't be so stodgy, I've got plenty of old good titles in my collection, where segment linking is being used, eg Clannad, Darker than Black, Kanon, and I still want to have perfect seamless playback of them. Also if this year was poor for worthy anime, that doesn't mean in any way that next year will be the same.;)
Andy o
18th January 2012, 20:51
Is that such a big deal? I've watched a couple of cartoons with that feature for openings/endings, and why would anyone want to watch an identical opening/closing every episode? Is there any other way it is widely used?
clsid
18th January 2012, 20:57
You could just continue to use Haali splitter for MKV and use LAV Splitter for everything else.
RBG
18th January 2012, 21:20
Andy o
They are not always identical, that's the point. Also I prefer to have full episode and not cut version and it is better when you yourself can decide to watch or not to watch op/ed, you can always rewind them, gladly there are markers on the time line of potplayer.
clsid
That could be an option, if it wasn't so damn annoying to switch between splitters manually, especially when you're watching something for the first time.
CruNcher
18th January 2012, 22:11
ehh you just register haali disable all the other plugins leave only mkv and then register lav splitter and disable mkv parsing :) the only problem is you need decoder DXVA/Software that work fine in every case with Haalis Splitter (and every supported format haali supports) and bug fixing is problematic most probably the decoder has to adapt but that's also problematic if you think about 3rd party decoder :)
But the Manually switching that really was yesterday :)
Nope the MP4/MOV (H.264 only so far) problem isn't fixed though the streams can be fixed by remuxing them though not every muxer fixes those freezeing streams yet most probably that's also why they have appeared after editing. The Origin for most of these streams seems to be Apple Finalcut :(
Most interesting parser player beahaviour with such a stream is VLC it will reload the stream right in the middle with a small hickup and continue, while ffmpeg based software often just freezing the Video Stream :P
zmaster
18th January 2012, 22:43
A small question about the splitter. It is theoretically possible that the splitter can ignore certain parts with a certain name (the chapter name)?
RBG
18th January 2012, 23:27
CruNcher
Oh my! I need to sleep more, I reread what clsid wrote and understood, that I misread it somehow, shame on me.:o Of course using one splitter for one container format and another for everything else is not a problem at all. I just wanted to say, that there is no universal solution for one format, mkv for example.:( Haali is relatively stable has linked video support, but has its own cons, about them you have already wrote in the post above, also it has no graph builder, which is a noticeable disadvantage for me. AV has a lot of advanced features, including linked video support, graph builder, but it has some bugs, as I use it most of the time, sometimes I am just forced to switch to another splitter to get correct video playback. LAV is relatively stable too, its open sourse, which is great, compatible decoders pack included, but has no linked video support at all.
CruNcher
19th January 2012, 00:04
Yeah i know in what for a situation you are exactly for example something just came up a second ago ;) going through my database finally moved forward from .ts to .mov now i came up to a streams with ima4_adapcm_qt the problem i want to use MPC-HCs Mp4 splitter for .mov because of the (freeze) problems above and now i just found out that tada ima4 is not compatible with MPC-HCs splitter and Lav Audio only MPC-HCs audio splitter connects (so solutions would be have both registered and lower the others merit and hope it wont interfere with anything else, try to make them interoperable or try to fix the mp4/mov freeze) ;)
Linked segment is something i don't use myself also graph building is not really that interesting it's a nice advanced feature same for the mediatype changer the only really interesting thing in AV splitter compared to Lav Splitter for me personally are Programm switching support and proper working raw .(h)264 parsing ;)
Zachs
19th January 2012, 00:28
You can do both those things with ffdshow's audio processor under the volume and equalizer settings if you enable output to it via your media player.
Ahh iSunrise beat me to it while I was playing around. :D
Most sound card drivers tend to a configuration with equalizer settings, you could look into that and play with the DRC option in LAV.
Ah my sound card driver used to have equalizer in XP but it's no longer available in Win7.
How would one go about setting up ffdshow to use with LAV Audio? I'm using MPC-HC.
Edit: nevermind. Found out I could use AC3Filter (select PCM only under "Use AC3Filter for:") as the audio post processor for LAV Audio. I'm using it for EQ and DRC. I could even use it to downmix / upmix! Don't think Nev needs to add post processing capabilities to his filters at all.
CruNcher
19th January 2012, 01:35
@Nev
going through the database for .mov i experienced something odd with Lav Audio ?
@ Decoding PCM sowt Lav Audio showed considerably higher CPU utilization then compared to the MPC-HC Audio Decoder also tried to disable 32 bit floating point and also 32 bit in general and enabled same for MPC-HC Audio no difference (was rendering with the default 16 for both from the start)
i wonder where that difference of Lav Audio = 5%, MPC-HC Audio = 2% (3% Utilization difference) comes from in this decoding case ?
Audio
ID : 2
Format : PCM
Format settings, Endianness : Little
Format settings, Sign : Signed
Codec ID : sowt
Duration : 3mn 30s
Bit rate mode : Constant
Bit rate : 1 536 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Stream size : 38.6 MiB (16%)
Language : English
Encoded date : UTC 2010-01-22 22:09:41
Tagged date : UTC 2010-01-22 22:13:16
Material_Duration : 211064
Material_StreamSize : 40524192
same difference visible for this twos
Audio
ID : 2
Format : PCM
Format settings, Endianness : Big
Format settings, Sign : Signed
Codec ID : twos
Duration : 3mn 55s
Bit rate mode : Constant
Bit rate : 1 411.2 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Bit depth : 16 bits
Stream size : 39.6 MiB (14%)
Language : English
Encoded date : UTC 2011-02-12 13:05:33
Tagged date : UTC 2011-02-12 13:08:10
AAC Decoding doesn't show such a huge difference
nevcairiel
19th January 2012, 07:55
The raw PCM "decoders" are more designed for readability and clarity then for speed.
There are also some features that are only activated with PCM, like the detection of DTS-in-WAV, which might take a bit processing power.
Its no CPU load to worry about.
proper working raw .(h)264 parsing ;)
raw h264 streams play fine for me, they just don't allow seeking, like all raw streams.
Those streams are only intermediates between encodes/muxings, and i don't think its that crucial to be able to seek in them. :p
Its more something that ffmpeg would need to support, not me, anyway. :)
Nope the MP4/MOV (H.264 only so far) problem isn't fixed
Can you dig up a link to such a broken file? I cannot find the one i downloaded. :(
nevcairiel
19th January 2012, 08:17
A small question about the splitter. It is theoretically possible that the splitter can ignore certain parts with a certain name (the chapter name)?
No, thats not possible.
Chapters are just markers on the stream, like bookmarks, they are no logical units.
In theory you could try to jump to the next chapter of course, but it wouldn't be accurate or seamless.
e-t172
19th January 2012, 08:36
Ah my sound card driver used to have equalizer in XP but it's no longer available in Win7.
Sounds like you have a Creative card. In that case you can get back equalization and a bunch of other features by installing the unofficial drivers by Daniel_K.
zmaster
19th January 2012, 15:29
No, thats not possible.
Chapters are just markers on the stream, like bookmarks, they are no logical units.
In theory you could try to jump to the next chapter of course, but it wouldn't be accurate or seamless.Thanks for reply.
Midzuki
19th January 2012, 16:59
Hummm, LAV Splitter apparently does not use "MEDIASUBTYPE_MPEG1AudioPayload". As a consequence, it cannot connect to the MPG123 decoder (mpg123dsf.ax), for example.
CruNcher
19th January 2012, 18:35
The raw PCM "decoders" are more designed for readability and clarity then for speed.
There are also some features that are only activated with PCM, like the detection of DTS-in-WAV, which might take a bit processing power.
Its no CPU load to worry about.
raw h264 streams play fine for me, they just don't allow seeking, like all raw streams.
Those streams are only intermediates between encodes/muxings, and i don't think its that crucial to be able to seek in them. :p
Its more something that ffmpeg would need to support, not me, anyway. :)
Can you dig up a link to such a broken file? I cannot find the one i downloaded. :(
This is strange i can definitely seek with AV Splitter in any raw file (ffmpeg), with Lav Splitter (ffmpeg) the seek bar is just grey (disabled) so i doubt Kytmanov fixed it in ffmpeg though i guess he has the ability todo it and then it would be really sad if he didn't contributed that back :(
Av Splitter
http://img37.imageshack.us/img37/640/avsplitterraw.png
Lav Splitter
http://img267.imageshack.us/img267/9241/lavsplitterraw.png
http://forum.doom9.org/showpost.php?p=1534773&postcount=15
http://forum.doom9.org/showpost.php?p=1534774&postcount=6567
On the yahoo trailer its @ the cut point (introduction,cut,trailer) seems to be always @ a cut (Finalcut) point on the sample in my video its also @ a cut point (first scene,cut,next scene) (Finalcut)
here is the issue propagated to .mp4 http://www.mediafire.com/?yx92afb8mrn7r3r (mp4box) it looks identical in what happens @ least (freeze)
I thought these issues were fixed in the latest Lav version(s)
Can you upload a mov/mp4 that still freezes with LAV 0.44 ?
Thanks ! :D
PS: just to quickly rule out the core : do these mp4/mov's also crash in FFplay ? Output FFprobe ? Also freeze in Mplayer / Mplayer2 / Avplay (libav only) ?
yes they freeze several 3rd party applications based on ffmpeg (many of the all in one converters, video editors ect)
though i have to admit i didn't tried it with the latest trunks of libav or ffmpeg libav alone yet but earlier freezed since i first reported it way back, though what i hoped for is that feedback finds it way back to ffmpeg through lav splitter as well (dynamically) this is why i didn't reported it directly yet i agree that most probably was wishful thinking and in retrospect a mistake (i really hoped for it). Also since the project splitt it got more chaotic as you knew that these software was using ffmpeg now you need to make sure first what it uses ;)
http://win32.libav.org/win32/libav-win32-20110318.7z <- still freezes
http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-latest-win32-static.7z <- yep also freezes
just to make sure
ffmpeg:
G:\aero-solveig-all-60fps.264: error while seekingsq= 0B f=0/0 0/0
libav:
also fails with seeking raw
So it seems Kytmanov indeed did some own fix here or uses some experimental fix in Av Splitter that works really well :)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.