View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
SamuriHL
7th April 2011, 16:37
Personally, i don't see the point of ffdshow in wmv9 mode anyhow. Its the same decoding as the WMVIdeo Decoder DMO, just in another packaging.
Yea, I don't understand that one, either. I guess it's convenient in that you can just specify the ffdshow decoder and it'll handle it, but, it's a bit redundant.
Snowknight26
7th April 2011, 16:51
Personally, i don't see the point of ffdshow in wmv9 mode anyhow. Its the same decoding as the WMVIdeo Decoder DMO, just in another packaging.
There's an odd issue where any graph with the WMVideo Decoder DMO times out, whereas it doesn't with ffdshow set to use wmv9.
hoborg
7th April 2011, 17:05
I did test that file again, and yes, it does not work perfect with ffdshow in wmv9 mode, however the glitches are really very minor, at least with my development version here.
I see 9 dropped frames, just at the beginning of the movie, everything else seems "ok". This is with EVR-CP and Frame Time Correction on, VC-1 timestamp option on "Auto" in LAV Splitter.
It does however play perfect with the following:
- LAV CUVID Decoder
- Cyberlink PDVD Decoder
- ArcSoft Video Decoder
I admit that VC-1i is not fully supported, therefor i just call it broken until ffmpeg supports VC-1i. There are a multitude of decoders available that do support it, including the standard windows decoder.
Personally, i don't see the point of ffdshow in wmv9 mode anyhow. Its the same decoding as the WMVIdeo Decoder DMO, just in another packaging.
Btw, weren't you one of those that made me write the compat mode for the Cyberlink decoder for VC-1 anyway? :d
Thanks for test.
That is a mystery for me ... :(
Why ffdshow in wmv9? Subtitles, keyboard shortcuts to control audio/subtitles switching, postprocessing, etc...
And yes, that was i (about Cyberlink decoder). Gabest can do both (Cyberlink+FFDshow) without any problem, LAVF, sadly, can't :/
nevcairiel
7th April 2011, 17:16
There is one more thing that i can do that should make the VC-1 output from both gabest and LAV Splitter identical, but i don't know when i'll have time, its actually a bit more complex.
Mercury_22
7th April 2011, 18:17
With Nevcairiel-LAVFSplitter-c6eb3f6 I have VC-1 i smooth again and all index.bdmv are playing :):thanks:
P.S. Maybe it's just my impression but it still doesn't seem as smooth as before (or MPC-HC's internal), again it's just a visual impression :p
nevcairiel
7th April 2011, 18:35
Thanks for test.
That is a mystery for me ... :(
Why ffdshow in wmv9? Subtitles, keyboard shortcuts to control audio/subtitles switching, postprocessing, etc...
And yes, that was i (about Cyberlink decoder). Gabest can do both (Cyberlink+FFDshow) without any problem, LAVF, sadly, can't :/
I made it output 100% exactly the same data, yet ffdshow is only smooth with the MPC-HC Splitter. I think its something hidden in ffdshow. :(
Or something that my logging filter does not catch, but its still weird.
What i see now is perfect playback, except, the first few seconds, 64 frames are dropped. After that, its just perfect, as long as i keep FTC on. If i turn FTC off, its horrible - however for some reason, its ok when using the gabest splitter.
I can't figure out why. The output of both splitters is 100% identical, it must be something in ffdshow that treats data differently if its from the MPC-HC splitter.
hoborg
7th April 2011, 19:11
I made it output 100% exactly the same data, yet ffdshow is only smooth with the MPC-HC Splitter. I think its something hidden in ffdshow. :(
Or something that my logging filter does not catch, but its still weird.
What i see now is perfect playback, except, the first few seconds, 64 frames are dropped. After that, its just perfect.
I can't figure out why. The output of both splitters is 100% identical.
Thanks for your efort.
I think this VC-1i issue is not that important after all.
Cay you share your test build?
I just hit some ugly xvid stuttering issue. This sample (http://rapidshare.com/files/456362292/xvid_sample.zip) play choppy/corupted if it is splitted by .20 LAVF + FFDShow libavcodec/ffmpeg-MT - FFDShow xvid (ffdshow_rev3811_20110406_xvidvideo-ru_x86-msvc2010.zip) working just fine.
No problem if MatroskaSplitter.ax is used with all decoders.
nevcairiel
7th April 2011, 19:30
I just hit some ugly xvid stuttering issue. This sample (http://rapidshare.com/files/456362292/xvid_sample.zip) play choppy/corupted if it is splitted by .20 LAVF + FFDShow libavcodec/ffmpeg-MT - FFDShow xvid (ffdshow_rev3811_20110406_xvidvideo-ru_x86-msvc2010.zip) working just fine.
No problem if MatroskaSplitter.ax is used with all decoders.
Again, the output of both splitters is exactly the same (if i turn off stream parsing), yet it still stutters. Well actually, its 99.9% the same on this sample, the duration of the very first frame is different, but that won't cause the whole file to break down.
http://files.1f0.de/Dump.zip
Thats my modified Dump filter, which you can just connect in GraphStudio to a output pin, and it'll write whatever it gets into a text file.
Doing so for the mkv or the vc-1i m2ts from before will yield nearly the same output (the absolute time values will be different every run, of course), yet playback is like day and night with ffdshow. (You won't be able to get the same output with 0.20, but with 0.21 you will)
If someone from the ffdshow guys wants to speak up, please do.
nevcairiel
7th April 2011, 19:46
LAV DirectShow Filters 0.21
LAV Splitter
- Improve MPEG-TS program handling in some special circumstances
- Filter out misdetected audio streams (unsupported DTS Express on BluRays)
- Increase the priority of DTS-HD over normal DTS
- Use the official AVI MEDIASUBTYPE instead of a custom one
- Added options to completly disable stream parsing
- Added a new VC-1 parser which will take over when VC-1 timestamp adjustments are turned off
Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.21.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.21-x64.zip)
PS: Due to the media subtype change, i recommend unregistering and registering the filter afterwards again.
This is really only a bugfix release, only really "new" feature is the ability to disable stream parsing, and the new VC-1 parser.
Speaking about VC-1, when you turn off the Timestamp Correction option, but keep the Video Stream Parsing option active, the new parser will be used. By use of this parser, you'll get exactly the same output as the MPC-HC Mpeg splitter produces.
Now, don't ask me why playback is still broken with ffdshow. I hope someone else can shed some light on this.
nevcairiel
7th April 2011, 19:55
One thing i just figured out, the registry routines in LAV Splitter don't seem to be able to overwrite the "normal" AVI entry in the registry, so if you unregister it before, you'll have to live with the default AVI Splitter.
Not that AVI is a special format, the default splitter is doing alright, and the MPC-HC internal splitter is fine too .. i'll have to think about a solution for the next version though. =)
Blight
7th April 2011, 20:12
Like i said in my previous post, i can change it so that my source uses the same subtype for AVI that the MS AVI Splitter expects. Personally i don't like that way very much, because it doesn't allow you to easily install two source filters next to each other, but it would "fix" the media type of the Async File Source.
But, then i ask myself, why would anyone want to? The MS AVI Splitter doesn't really have any magnificient features that mine or the MPC-HC AVI Splitter does not have.
I just tested 0.21 and the MS filter now connects, thanks for the fix!
The WMV splitters don't use the File Source (Async), so they don't care.
Is WMV splitting officially recommended now?
nevcairiel
7th April 2011, 20:13
I just tested 0.21 and the MS filter now connects, thanks for the fix!
Well, but LAV Splitter doesn't anymore, right now...... :)
Is WMV splitting officially recommended now?
Not really, just thinking about future headaches. :)
Blight
7th April 2011, 20:33
nevcairiel:
Do you intend (at a future date) to extend the LAVSplitter to live streaming (opening a file from a URL)?
And I believe FFMPEG supports NSV splitting and I don't think there's a DirectShow splitter for this format, is it something you're thinking of?
nevcairiel
7th April 2011, 20:34
Whats a NSV file? Samples? =)
Adding new file formats is usually not that hard, assuming they use "common" video/audio formats.
You can already test it if you just throw the file at it in GraphStudio.
Blight
7th April 2011, 21:01
NSV is NullsoftVideo, it's mainly used for streaming, not really that popular, it's just that it never had a DirectShow splitter available.
There's more info on it here: http://www.scvi.net/
Can't really find a sample file. Only a few torrent files with low seeders.
NanoBot
7th April 2011, 22:17
Hi,
For those who like to experiment with using the splitter for formats for which it isn't registered by default. You can force its use for a file extension with this tweak:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Media Type\Extensions\.xyz]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"
Post your findings here. Then I can add options to the installer for working formats.
[HKEY_CLASSES_ROOT\Media Type\Extensions\.flac]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"
works fine. At last I am able to play raw flac files using ffdshow a decoder, since the internal flac splitter of MPC-HC refuses to connect to ffdshow as decoder :thanks:
The only missing thing is that the metadata is either not forwarded to mpc-hc or mpc-hc is not accepting the metadata. Therefore I get the filename of the flac file in the title bar of MPC-HC instead of the title name from the flac tag. Of course I don't know if this is caused by the spliiter or by mpc-hc itself.
nevcairiel
7th April 2011, 22:19
I was meaning to officially support those raw audio files..
jmone
7th April 2011, 22:25
On my Win7 Ultimate 64-Bit box I've had to remove the MS Internal Script Command Renderer Filter (http://msdn.microsoft.com/en-us/library/dd390349(v=vs.85).aspx) as it keeps connecting to the Sub Title Pin with Blu-ray and the playback stalls (yet I don't have this issue with my 32-Bit HTPC). I don't know why lavsplitter is connecting to this filter on this PC & ONLY with BD playback, or what the consequences of removing this filter (I did try lowing it's merit to do not load but it still did).
Filter 'N:\Media4\Video\TORCHWOOD_S1_D1_UK\BDMV\index.bdmv'
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Host: c:\users\mum and dad\downloads\filters\lavfilters\lavsplitter.ax
Output Pin 'Video'
Connected to pin 'Input' of filter 'J. River Media Proxy Video'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435657-0000-0010-8000-00AA00389B71}, Format type FORMAT_VideoInfo2
Output Pin 'Audio'
Connected to pin 'Input' of filter 'J. River Media Proxy Audio'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {00002001-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Output Pin 'Subtitle'
Connected to pin 'In' of filter 'Internal Script Command Renderer'
Major type MEDIATYPE_Text Sub type TIME_FORMAT_NONE, Format type TIME_FORMAT_NONE
CruNcher
7th April 2011, 22:30
http://www.mediafire.com/download.php?61ynvmy0x47n5b3 <- another Hauppauge sample this should show the out of sync issue better (a delay correction problem ?)
pankov
7th April 2011, 23:20
LAV DirectShow Filters 0.21
LAV Splitter
- Improve MPEG-TS program handling in some special circumstances
- Filter out misdetected audio streams (unsupported DTS Express on BluRays)
- Increase the priority of DTS-HD over normal DTS
- Use the official AVI MEDIASUBTYPE instead of a custom one
- Added options to completly disable stream parsing
- Added a new VC-1 parser which will take over when VC-1 timestamp adjustments are turned off
I've just tested this version and I'm very happy to report that it works with ZoomPlayer.
Thanks, Nev!
and thanks, Blight, for pointing what was problem.
It's pretty late here now so I'll continue my tests tomorrow but I can happily report that .mkv and .ts and .avi files play flawlessly for now.
:thanks:
:)
VipZ
7th April 2011, 23:30
Hi Nev
Here are my current findings and reasons for source choices,
MP4 using LAV, all good here
MKV using MPC, using due to supporting embedded fonts
MPEG TS using LAV, all good here
MPEG PS using MPC, cant seek in any MPEG PS files tested
FLV, using MPC, cant seek in any FLV files tested
OGM, using MPC, cant seek and/or stuttering on most files. OGM is pretty much a dead I guess, but there are many older files using this container
AVI, using LAV, all good here
FLAC,AC3,DTS,OGG using LAV, all good here.
Bluray, tested Zombieland and all good here, can switch video streams perfectly as well via index.bdmv
If you need any samples for problematic formats let me know.
Looking forward to more awesome improvements :)
Snowknight26
7th April 2011, 23:56
H.264 streams in EVOs aren't handled properly if they have pulldown flags. The splitter is showing that the video is 59.94fps. Sample: http://stfcc.org/misc/payback.sample.evo
CruNcher
8th April 2011, 00:05
yep most interesting is the .ts splitter in lav but mpc-hc splitter also makes progress and plays some streams or has some functions that lavf doesn't currently :)
Midzuki
8th April 2011, 02:45
yep most interesting is the .ts splitter in lav but mpc-hc splitter also makes progress and plays some streams or has some functions that lavf doesn't currently :)
Yes, I confirm the filter MpegSplitter.ax from MPC-HC is much better than before :cool: , seeking is easier now :) :) :) , two more revisions and it will become better than the ArcSoft demuxer :D
nevcairiel
8th April 2011, 06:49
MPEG PS using MPC, cant seek in any MPEG PS files tested
..
FLV, using MPC, cant seek in any FLV files tested
..
OGM, using MPC, cant seek and/or stuttering on most files.
Can't seek in MPEG PS at all? I noticed that i cannot seek in some VOB files, but otherwise it seemed ok.
Samples for the above 3 cases would be appreciated.
H.264 streams in EVOs aren't handled properly if they have pulldown flags. The splitter is showing that the video is 59.94fps. Sample: http://stfcc.org/misc/payback.sample.evo
I see it reports it as 60fps, but it still plays fine, so i'm not too worried. ffdshow even plays it as 24p, like its meant to be played. just perfect.
Besides the mis-reported fps, anything else wrong with that file?
nevcairiel
8th April 2011, 14:54
I am happy to report that i fixed the VC-1 problem, in VC-1 Timestamp mode "auto" (indetermined checkbox state) it now plays perfectly with MPC-HC internal, ffdshow (both in wmv9 and avcodec mode), with Cyberlink, ArcSoft, LAV CUVID and WMVideo DMO Decoder. Tested both progressive, and if supported (so not MPC-HC and ffdshow-avcodec), interlaced.
I'm still puzzled by that weird MKV, however.
Sebastiii
8th April 2011, 15:39
Thanks Nevcairiel :)
It's nice :)
Seb.
SamuriHL
8th April 2011, 15:46
Has it been committed to git? I'm not seeing the changes yet.
Sebastiii
8th April 2011, 16:01
Hi SamuriHL :) it seems yes :) just build it :)
nevcairiel
8th April 2011, 16:02
I'm still puzzled by that weird MKV, however.
I figured the problem out. Well, at least i know why it happens. Going to run some additional tests and hope for the best.
Edit:
Commited a fix, which hopefully works and doesn't break anything else.
SamuriHL
8th April 2011, 16:48
Hi SamuriHL :) it seems yes :) just build it :)
Weird. TortoiseGIT was being strange. I got it now. Thanks!
Sebastiii
8th April 2011, 16:59
I figured the problem out. Well, at least i know why it happens. Going to run some additional tests and hope for the best.
Edit:
Commited a fix, which hopefully works and doesn't break anything else.
Great ;) will try @home :).
Mercury_22
8th April 2011, 17:28
I am happy to report that i fixed the VC-1 problem, in VC-1 Timestamp mode "auto" (indetermined checkbox state) it now plays perfectly with MPC-HC internal, ffdshow (both in wmv9 and avcodec mode), with Cyberlink, ArcSoft, LAV CUVID and WMVideo DMO Decoder. Tested both progressive, and if supported (so not MPC-HC and ffdshow-avcodec), interlaced.
I'm still puzzled by that weird MKV, however.
Yes I can confirm this :thanks:
There still is a problem with PGS subtitles : they are displayed after some time = always missing the first 2-3 lines (any type of codec avc, vc-1, mpeg2 & decoder) and for the same files (m2ts or index.bdmv) MPC-HC's internal splitter doesn't have this problem (the missing first lines) it shows all the lines from the beginning
SamuriHL
8th April 2011, 17:37
Yes I can confirm this :thanks:
There still is a problem with PGS subtitles : they are displayed after some time = always missing the first 2-3 lines (any type of codec avc, vc-1, mpeg2 & decoder) and for the same files (m2ts or index.bdmv) MPC-HC's internal splitter doesn't have this problem (the missing first lines) it shows all the lines from the beginning
Yea, I was seeing something like that, as well, but attributed it to my machine just being painfully slow. If you have that issue, as well, then maybe there's something else going on.
Snowknight26
8th April 2011, 17:58
I see it reports it as 60fps, but it still plays fine, so i'm not too worried. ffdshow even plays it as 24p, like its meant to be played. just perfect.
Besides the mis-reported fps, anything else wrong with that file?
Had some issues with MPC-HC's internal decoders and Microsoft's decoder either displaying frames in the wrong order or inserting black frames, but seeing as it also happens with Haali Media Splitter, you're off the hook. :p
Damien147
8th April 2011, 18:02
Hello!
Audio Decoder sounds like chewed videotape:p in the beginning or when seeking with this file and audio goes out of sync.
mediaInfo:
General
Complete name : Conan the Barbarian\Conan the Barbarian.avi
Format : AVI
Format/Info : Audio Video Interleave
File size : 724 MiB
Duration : 2h 10mn
Overall bit rate : 777 Kbps
Video
ID : 0
Format : MPEG-4 Visual
Format profile : Advanced Simple@L5
Format settings, BVOP : 1
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (H.263)
Muxing mode : Packed bitstream
Codec ID : XVID
Codec ID/Hint : XviD
Duration : 2h 10mn
Bit rate : 640 Kbps
Width : 688 pixels
Height : 320 pixels
Display aspect ratio : 2.2:1
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.121
Stream size : 596 MiB (82%)
Writing library : XviD 1.1.0 (UTC 2005-11-22)
Audio
ID : 1
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 3
Mode : Joint stereo
Mode extension : MS Stereo
Emphasis : 50/15ms
Codec ID : 55
Codec ID/Hint : MP3
Duration : 2h 10mn
Bit rate mode : Constant
Bit rate : 128 Kbps
Channel(s) : 2 channels
Sampling rate : 44.1 KHz
Compression mode : Lossy
Delay relative to video : 26ms
Stream size : 119 MiB (16%)
Alignment : Split accross interleaves
Interleave, duration : 42 ms (1.00 video frame)
Title : Audio Stream
Writing library : LAME3.97
Is it because of Conan the Barbarian?:scared:
:stupid:
edit:Actually audio out of sync with every avi file I tried.
Talking about 0.21 version
Silent Rain
8th April 2011, 19:29
Hi nevcairiel!
When finally LAV Filters replace the internal splitters of MPC-HC???
Your quote: "It is planned for this splitter to eventually replace the internal splitters of MPC-HC".
SamuriHL
8th April 2011, 19:40
It's been discussed very recently (in the last few pages, in fact). MPC-HC may change to facilitate being able to drop any filters you want into a directory within the MPC-HC dir, and then it'll automagically recognize them so that you can use what you want. Those will become the "internal" filters and won't even have to be registered in order to work, meaning it'll still remain quite portable.
Silent Rain
8th April 2011, 19:56
That is, LAV Filters will not be in the future replace the built-in splitters MPC-HC?
SamuriHL
8th April 2011, 20:03
I think you're missing the point. There won't BE any "built-in" splitters in MPC-HC. All the filters will be removed from the executable and moved to a separate folder if the current proposed design changes are implemented. This allows people to use whatever filters they want as "preferred internal". Rather than relying just on what's compiled into the executable. The internal filters page will be redesigned to show the filters that are added to the filters directory. So, in essence, yes, LAV Filters could "replace" the current splitters. It'll give you far more choice.
hoborg
8th April 2011, 20:31
I am happy to report that i fixed the VC-1 problem, in VC-1 Timestamp mode "auto" (indetermined checkbox state) it now plays perfectly with MPC-HC internal, ffdshow (both in wmv9 and avcodec mode), with Cyberlink, ArcSoft, LAV CUVID and WMVideo DMO Decoder. Tested both progressive, and if supported (so not MPC-HC and ffdshow-avcodec), interlaced.
I'm still puzzled by that weird MKV, however.
:thanks:
hoborg
8th April 2011, 20:31
I figured the problem out. Well, at least i know why it happens. Going to run some additional tests and hope for the best.
Edit:
Commited a fix, which hopefully works and doesn't break anything else.
:thanks::thanks:
nevcairiel
8th April 2011, 20:43
Can't seek in MPEG PS at all? I noticed that i cannot seek in some VOB files, but otherwise it seemed ok.
Samples for the above 3 cases would be appreciated.
Hey VipZ, i figured out why you cannot seek, its actually MPC-HCs fault.
Go into Options, Tweaks, and disable "Fast Seek (keyframe)", that allows full seeking again.
I'll look into disabling the key-frame reporting for files where its not supported properly.
MPC-HC should really fallback on normal seeking when the last keyframe syncpoint is too far away.
Edit:
Fixed, only active in MKV and AVI now, these formats i know that it works somewhat ok.
Also fixed the stuttering in the OGM sample. Yay.
I guess that just leaves embedded fonts from your list, eh.
nevcairiel
8th April 2011, 21:25
I guess that just leaves embedded fonts from your list, eh.
nevermind that, next version will support embedded fonts in MKV.
Are embedded fonts used in any other kind of files? If so, anyone has samples?
VipZ
8th April 2011, 21:37
Awesome, thanks Nev :)
nautilus7
8th April 2011, 21:57
Hi, this (http://www.mediafire.com/?nb5vjh2ue207lwd) TrueHD sample plays without sound with the latest version. It's from Dolby Reference Disc. I have a few other files from there that play w/o sound also.
nevcairiel
8th April 2011, 22:06
Hi, this (http://www.mediafire.com/?nb5vjh2ue207lwd) TrueHD sample plays without sound with the latest version. It's from Dolby Reference Disc. I have a few other files from there that play w/o sound also.
Plays just fine for me using LAV Splitter and LAV Audio.
Since this is TrueHD in MPEG-TS, i would like to repeat the fact that TrueHD will NOT play *at all* when using the MPC-HC MPEG Splitter with LAV Audio - and this will not be fixed (well, at least not on my side, maybe some day someone fixes the MPC-HC Splitter)
This is due to the fact that the MPC-HC Splitter really doesn't know about TrueHD, it misdetects it as AC3 and expects the audio decoder to figure out that its TrueHD - and in addition to that, also filter out the AC3 frames from inbetween - this is just total crap.
nautilus7
8th April 2011, 23:19
Yep, that's true. For some reason mpc was using the internal splitter and not LAVSplitter. Sorry for bothering you :)
clsid
8th April 2011, 23:28
I think you're missing the point. There won't BE any "built-in" splitters in MPC-HC. All the filters will be removed from the executable and moved to a separate folder if the current proposed design changes are implemented. This allows people to use whatever filters they want as "preferred internal". Rather than relying just on what's compiled into the executable. The internal filters page will be redesigned to show the filters that are added to the filters directory. So, in essence, yes, LAV Filters could "replace" the current splitters. It'll give you far more choice.It will not be able to use any random filter. It still needs to be programmed to recognize a filter in order to use it properly. At least in case of source filters. The proposed design does allow much more flexibility than the current design and can easily be extended with support for extra filters.
SamuriHL
8th April 2011, 23:34
It will not be able to use any random filter. It still needs to be programmed to recognize a filter in order to use it properly. At least in case of source filters. The proposed design does allow much more flexibility than the current design and can easily be extended with support for extra filters.
This is true, but, by not integrating them with the exe itself, as you said, it should be much simpler to extend MPC-HC to use new filters. Anyone who can program a source filter should be able to extend MPC-HC to look for it and use it. I can't wait. :)
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.