View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
Sebastiii
24th September 2012, 06:36
Thanks :)
It's working now.
blackjack12
25th September 2012, 00:49
Should be fixed, was a stupid typo.
Still seeing some issues for me and crashes of MPC-HC with Windows 8 when using LAV video filters.
Also is it just me or did something change in VC-1 interlaced performance and other interlaced HD/BD files with latest LAV builds. (Life, National Parks: Americas Best Idea)
Since latest builds, can no longer get good performance with a ton of dropped and delayed frames. They worked great for months and now see the same thing on different systems when using LAV Video decoder.
Windows 7(64)
Radeon 6570 driver ver 12.8
MPC-HC 1.6.4.6007
Older Radeon 4890 system with "legacy" driver 12.8 works fine ... ?
UPDATE NOTE:
Most of the performance issues seem to be related to the latest builds (0.83.3) of madVR and not LAV filters. Have reverted back to madVR 0.82.5 with antiringing 6 updates and things are much better.
Still seeing issues with a new Windows 8 install. A lot of problems with LAV and VC-1 material both non and interlaced material with Radeon 6570/ver 12.8 drivers. LAV does not seem to be mapping correctly to the WMVideo Decoder in Windows 8? If force LAV not to decode VC-1 material and use WMVideo Decoder DMO then all appears to be okay.
oddball
25th September 2012, 01:00
I'm currently using this line in the splitter when playing MKV's eng:eng|f;eng:off;*:eng;*:*
However if I play a bluray rip and play the index.bdmv with MPC-HC it defaults to playing the French DTS-MA track instead of the default English track. Any idea why? Oh and it seems to playback a foreign PGS subtitle too.
CiNcH
25th September 2012, 12:48
@ nev,
as you know, LAV Video works well with the DVBViewer DVBSource for H.264 as LAV Video parses the bitstream for NALU's all by itself. As you might know, DVBSource also supports VC-1 inside m2ts. Unfortunately, DVBSource + LAV Video for VC-1 only results in some green parasitic image, just like it is the case with 'WMVideo Decoder DMO', 'ffdshow Video Decoder' and 'ffdshow DXVA Decoder'. The DVBSource plays well with CyberLink and ArcSoft though. Does LAV Video (and all the others) expect a certain buffer format (like an Access Unit or something) inside the media sample? Or just a different FourCC maybe?
oddball
25th September 2012, 15:06
Nev I have been told by Madshi to report a bug to you.
Playing the test clip birds - 18514072.mp4 from http://hdcam.web-pda.info/ results in MadVR saying the source filter is reporting the frame rate as 1.000 FPS when it should be 59.940. Can you verify and fix in a future build? Thanks.
sneaker_ger
25th September 2012, 19:32
I'm currently using this line in the splitter when playing MKV's eng:eng|f;eng:off;*:eng;*:*
However if I play a bluray rip and play the index.bdmv with MPC-HC it defaults to playing the French DTS-MA track instead of the default English track. Any idea why? Oh and it seems to playback a foreign PGS subtitle too.
Did you put "eng" into the audio line? The advanced selection is for the subtitle track only and doesn't occur until after the audio track has been selected.
terence_13
26th September 2012, 04:46
Playing backwards: Nev, I found a comment from you on a request of using iMediaSeeking for setting a negative playback rate. essentially, you dismissed this request as beeing impossible on any modern temporal compressed video format. while this might be true, I searched a bit and got the impresseion reverse playback is possible, but a bit harder to implement:
1) Buffering the decoded frames for later use in reverse playback
2) Decoding a GOP, rendering it in reverse order while decoding the next previous GOP
Another cheap way might be decoding just I frames
I also found a paper that deals with fast forward and backward: http://bit.kuas.edu.tw/~jihmsp/2010/vol1/JIH-MSP-2010-02-006.pdf
I do not have mutch background on all this, but wanted to bringing up this topic again, as smooth fast forward AND fast rev are such a desirable usability/ convinience thingy to have. Also, somehow it must be possible, as consumer players usually implement this.
Is there anything you can do (plan to do) in the filter end, or is this something the player or renderer have to implement?
starla
26th September 2012, 11:38
1) Buffering the decoded frames for later use in reverse playback
2) Decoding a GOP, rendering it in reverse order while decoding the next previous GOP
As far as i remember this is how MS DVD navigator + MPEg2 decoder combo is handling the reverse playback.
Another cheap way might be decoding just I frames
This wont be as easy as it sounds, nev had already a look on this area when I asked if it would be possible to decode only I frames when playback rate is >= 4.0x as the 1080i material is too heavy on modern HW to be decoded on 32x speed. As far as I remember ffmpeg was not processing the content nicely.
CiNcH
28th September 2012, 14:23
as you know, LAV Video works well with the DVBViewer DVBSource for H.264 as LAV Video parses the bitstream for NALU's all by itself. As you might know, DVBSource also supports VC-1 inside m2ts. Unfortunately, DVBSource + LAV Video for VC-1 only results in some green parasitic image, just like it is the case with 'WMVideo Decoder DMO', 'ffdshow Video Decoder' and 'ffdshow DXVA Decoder'. The DVBSource plays well with CyberLink and ArcSoft though. Does LAV Video (and all the others) expect a certain buffer format (like an Access Unit or something) inside the media sample? Or just a different FourCC maybe?
Hmm, too bad there is no answer :( . Can you at least point me to the code where LAV Splitter prepares the media sample for VC-1 and sends it downstream, and where LAV Video receives the sample and hands it over to DXVA for decoding?
nevcairiel
28th September 2012, 14:56
Impatient people, always fun to be around.
In case you didn't notice, i didn't answer much at all recently, because i'm busy. If you can't wait until you get a response, your loss. :)
Mercury_22
29th September 2012, 08:19
Lav can't play "mkv Live stream recording" files !?
It seems that LAV can't play test4 file (http://sourceforge.net/projects/matroska/files/test_files/matroska_test_w1_1.zip/download) from the official Matroska Test Suite - Wave 1 (http://www.matroska.org/downloads/test_w1.html)
4. Live stream recording
This file is using the EBML feature that allows Master elements to have no known size. It is used for live streams because they don't know ahead of time the size of the Segment (virtually infinite) and even sometimes the size of the Clusters (no caching on the server side). The first timecode of the file also doesn't start at 0 since it's supposed to be a capture from something continuous. The SegmentInfo also doesn't contain any Duration as it is not know.
The sample comes from the Big Buck Bunny open project. It contains Theora video (1280x720), Vorbis audio, uses only SimpleBlock (matroska DocType v2)
A similar file can be created with mkclean using the "--live" option
Xaurus
29th September 2012, 15:13
Lav can't play "mkv Live stream recording" files !?
It seems that LAV can't play test4 file (http://sourceforge.net/projects/matroska/files/test_files/matroska_test_w1_1.zip/download) from the official Matroska Test Suite - Wave 1 (http://www.matroska.org/downloads/test_w1.html)
Mediainfo is totally empty when checking out the test4 clip. Seems weird to me...
Xaurus
30th September 2012, 00:07
If someone is interested...
LAV CUVID performance comparison in Graphstudio Next 0.5.0.1 of my main rig GTX 570 and my new GTX 660 in my HTPC rig, with LAV 0.51.3, using files from this (http://www.auby.no/files/video_tests/) website:
"Birds" (h.264) 5 passes
GTX 570: 47,1717 fps avg.
GTX 660: 129,0831 fps avg.
"hddvd" (vc-1) 5 passes
GTX 570: 76,8576 fps avg.
GTX 660: 140,4523 fps avg.
mindbomb
30th September 2012, 20:30
when using the mixer with 4.0 channels, it appears "convert audio to standard output channels" option doesn't work.
Is it possible to have it work?
nevcairiel
30th September 2012, 20:38
when using the mixer with 4.0 channels, it appears "convert audio to standard output channels" option doesn't work.
Obviously not, because you told it explicitly to mix (and therefor output) 4.0 instead. I don't think changing this would make much sense, it would just confuse people.
If you explicitly tell it to mix to 4.0, why would it in the end output anything else?
Mercury_22
30th September 2012, 21:27
After latest updates LAV it's crashing MPC-(HC&BE) on exit in native mode and in SW and CB can't even start playing
Tested with H264 so far (splitter and audio seems OK)
nevcairiel
30th September 2012, 21:30
If you expect to have something that always works, don't use random git builds =P
I'm still in the process of some big changes, so don't expect git to always be 100% stable :)
mindbomb
30th September 2012, 21:51
Obviously not, because you told it explicitly to mix (and therefor output) 4.0 instead. I don't think changing this would make much sense, it would just confuse people.
If you explicitly tell it to mix to 4.0, why would it in the end output anything else?
I see.
well, I think specifically for 4.0, I think you can have it default to 5.1 with silent channels, since I suspect compatibility is an issue with 4 channels. At least for nvidia cards it seems.
andyvt
1st October 2012, 14:41
I see.
well, I think specifically for 4.0, I think you can have it default to 5.1 with silent channels, since I suspect compatibility is an issue with 4 channels. At least for nvidia cards it seems.
Working around compatibility issues with specific hardware is the responsibility (used loosely here) of the filter that interacts with the hardware (the audio renderer in this case). If you tell the decoder to output 4 channels, it should do that and not make up data. While the primary use case is generic audio output there are others (like transcoding or bit perfect playback) where a behavior like what you suggest would be unacceptable.
zn
1st October 2012, 15:37
thanks, i will try it
For MPC-HC, see #post1588980. Although my post is about SHOUTcast, the registry-fix should work for video streaming too.
You could also give ZoomPlayer a try. At least with SHOUTcast streams it works just fine.
P.s. I got a notification-email about your post in the LAV-thread about "File Source (URL)" or "LAV Source" handling streams in MPC-HC...where has it gone??
I have the same problem with openning URL to file and URL to STREAM with MPC-HC/MPC-BE
Nevcairiel, whenever I open a pls-file (linking to a nsv[vp6+mp3]-stream for instance) in MPC-HC, it always loads File Source (URL) (in combination with LAV Splitter), even when I block File Source (URL) and prefer LAV Source.
Since LAV Source is capable of handling the stream on its own, without File Source (URL) (works just fine in GraphStudioNext), can we say this is a MPC-HC issue?
blackjack12
1st October 2012, 16:23
If you expect to have something that always works, don't use random git builds =P
I'm still in the process of some big changes, so don't expect git to always be 100% stable :)
Nev,
Recognize the unstable builds, but want to note that I have seen the same thing.
Crashes in both MPC-HC and MPC-BE:
Windows 8 RTM
AMD Radeon 6570
Driver ver. 12.8
LAV 51.3-53
Crashes always seen when using LAV Video Decoder for VC1 content. If uncheck the VC1 decoding in LAV and use internal filters or "native" WMVideo Decoder DMO the media players do not crash.
See no issue with another system with Radeon 4890 and Windows 7.
With NVidia you can use the native NVidia capability and there does not seem to be a problem.
Hope this may be helpful in your future updates.
Keep up the great work ...
nevcairiel
1st October 2012, 16:24
Hey, its time for a new test version. Its been so long since the last release, and i finally had some time to finish this feature (mostly)
http://files.1f0.de/lavf/LAVFilters-0.51.3-89-g8c3b2ec.zip
DVD Video
This version introduces support in LAV Video for decoding the video when playing DVDs with the DVD Navigator.
Why did that take so long, you may wonder?
Well, the problem is that the DVD decoder is expected to also handle the DVD subtitles and the DVD menu - so this had to be implemented first. As a consequence, LAV Video now has the basic infrastructure setup for drawing subtitles/menus onto the video frames, which may be used more in the future.
Known issues with DVD decoding:
- Does not work with QuickSync (at all). Should fallback to software. Erics QS decoder has no support for this, or the appropriate interface for me to shoe-horn support into there.
- DVD playback works with DXVA2 Native, however menus and subtitles will not be shown. Since the video frame is completely contained in the GPU, its not possible yet to draw onto it, but may be in the future.
- Some Still-Frame DVD Menus may not work properly (yet) - menu overlays not updating properly, or similar.
Anyhow, have fun testing, if you dare. :p
nevcairiel
1st October 2012, 16:30
What about the SHOUTcast streaming meta-data?
I'm not sure how ffmpeg parses the meta-data, but it stands to logic it may just mean hooking the IAMMediaContent interface and grabbing it's data from an existing structure.
I have no idea if it manages to read that metadata, i may check into that at a later point, its not a high priority for me.
Does LAV Video (and all the others) expect a certain buffer format (like an Access Unit or something) inside the media sample? Or just a different FourCC maybe?
VC1 should be delivered exactly one whole frame per buffer (including start codes and everything), and not split over multiple buffers.
Additionally, the media type needs to contain the entry point and sequence headers of the VC1 stream.
Windows 8 RTM
Until i actually had a chance to check Windows 8, its completely unsupported. This won't change until after the general availability, which isn't for 3 more weeks, plus quite a bit of time to actually set a system up and find out whats wrong.
Until then, you're on your own with Windows 8.
hoborg
1st October 2012, 16:46
Edit - my mistake, i forgot to overwrite LAVAudio decoder...
madshi
1st October 2012, 16:56
@nevcairiel - Could this mean full DVD playback support with madVR on all OSs, without any hacks? Or does the MS Navigator still make problems, eventually?
nevcairiel
1st October 2012, 17:01
@nevcairiel - Could this mean full DVD playback support with madVR on all OSs, without any hacks? Or does the MS Navigator still make problems, eventually?
I have no idea what causes the macrovision problem, and why it would go away with a certain combination of decoders/post processing filters - so i'm sure it'll still be a problem.
I haven't encountered the problem for a while myself, so i dunno. (not that i actually watch much DVDs)
madshi
1st October 2012, 17:26
K, thx.
mindbomb
1st October 2012, 17:27
love this update.
Subtitles work great with libdvdnav.
One issue is that on the main menu, right before an option is highlighted, there is a freeze and a flash of green and black.
And it actually just lead to an mpc crash after I minimized it and opened it again.
This is the dmp file, idk if it will help:
http://www.mediafire.com/?wwmgrl0yug81w26
hoborg
1st October 2012, 17:34
nevcairiel:
Great work!
Just small note - DVD decoding will crash if YADIF deinterlacing is on - mostly on entering DVD menu.
CiNcH
1st October 2012, 17:51
Thanks for your information!
VC1 should be delivered exactly one whole frame per buffer
As far as I can see, you are doing this in LAVFDemuxer.cpp, using ffmpeg's av_read_frame, right?
So in case of H.264 it is possible to send any size of data chunks and in case of VC1 one has to send exactly one frame per media sample. Is the decoder side H.264 parser to ensure compatibility with certain DVB-TS demuxers?
wanezhiling
1st October 2012, 18:06
http://pan.baidu.com/share/link?shareid=66325&uk=3558042035
LAV Splitter (http://i.imgur.com/cDgwx.png)
MPC Splitter (http://i.imgur.com/E96qU.png) is ok.
PS: Thanks for LAV DVD.:)
fairchild
1st October 2012, 18:12
Nev, thanks for the DVD support, but I'm here to report that I can't get it working. I've tried both MPC-HC Lite and MPC-BE and both spit out the following error:
MPC-HC could not render some of the pins in the graph, you may not have the needed codecs or filters installed on the system.
The following pins failed to find a connectable filter:
DVD Navigator::Video
DVD Navigator::Video
Media Type 0:
--------------------------
Unknown
AM_MEDIA_TYPE:
majortype: MEDIATYPE_DVD_ENCRYPTED_PACK {ED0B916A-044D-11D1-AA78-00C04FC31D60}
subtype: MEDIASUBTYPE_MPEG2_VIDEO {E06D8026-DB46-11CF-B4D1-00805F6CBBEA}
formattype: FORMAT_MPEG2_VIDEO {E06D80E3-DB46-11CF-B4D1-00805F6CBBEA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 136
VIDEOINFOHEADER:
rcSource: (0,0)-(0,0)
rcTarget: (0,0)-(0,0)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 333667
VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 4
dwPictAspectRatioY: 3
dwControlFlags: 0x00000000
dwReserved2: 0x00000000
MPEG2VIDEOINFO:
dwStartTimeCode: 0
cbSequenceHeader: 0
dwProfile: 0x00000002
dwLevel: 0x00000002
dwFlags: 0x00000000
BITMAPINFOHEADER:
biSize: 40
biWidth: 720
biHeight: 480
biPlanes: 1
biBitCount: 0
biCompression: 0
biSizeImage: 0
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0
I also tried dslibdvdnav filter with the same results. I also have the Microsoft DTV-DVD video decoder blocked or else it always loads. I simply copied your latest test build over the x86 folder as usual with your test builds. Also the DVD being used is the Avengers which loads up and plays just fine using EVR + the microsoft DTV-DVD video decoder + DVD Navigator
VipZ
1st October 2012, 18:15
Thanks nev, DVD playback working fine (Ignore previous statement about it not working, something must have gone bit odd with system with reg/unreg lav and restart fixed)
Now that LAV Video can handle DVD Video, is there any chance for LAV Splitter to support sub's within VOB files and via MPC's IFO parsing now?
Also on an unrelated subtitle bug, it seems that SRT based sub's within OGM files don't work as expected, instead of using the styling from MPC-HC/BE like MKV or external it renders to a very small font, switching to MPC Ogm source results in the expected behaviour. If you need an OGM with SRT sample let me know. (This happens with both current test and last stable)
CiNcH
1st October 2012, 18:19
- DVD playback works with DXVA2 Native, however menus and subtitles will not be shown. Since the video frame is completely contained in the GPU, its not possible yet to draw onto it, but may be in the future.
Any clue, how 'CyberLink Videp/SP Decoder' handles DVD menus in DXVA mode (BSP = Bitstream Profile)? See attached image...
http://forum.doom9.org/attachment.php?attachmentid=12997&stc=1&d=1349112007
nevcairiel
1st October 2012, 18:40
Just small note - DVD decoding will crash if YADIF deinterlacing is on - mostly on entering DVD menu.
Thanks, found the issue and fixed it.
Now that LAV Video can handle DVD Video, is there any chance for LAV Splitter to support sub's within VOB files and via MPC's IFO parsing now?
Subtitles from VOB files should in theory already work, but i do not plan on doing any IFO parsing.
Also on an unrelated subtitle bug, it seems that SRT based sub's within OGM files don't work as expected, instead of using the styling from MPC-HC/BE like MKV or external it renders to a very small font, switching to MPC Ogm source results in the expected behaviour. If you need an OGM with SRT sample let me know. (This happens with both current test and last stable)
A sample would be good.
Any clue, how 'CyberLink Videp/SP Decoder' handles DVD menus in DXVA mode (BSP = Bitstream Profile)?
Probably the same way the MS decoder does it, with a secondary output pin.
Nev, thanks for the DVD support, but I'm here to report that I can't get it working.
You need to re-register the filter (and in MPC-HC also "refresh" it in the external fitler list), otherwise it won't know that it can accept the dvd types.
VipZ
1st October 2012, 18:44
Subtitles from VOB files should in theory already work, but i do not plan on doing any IFO parsing.
A sample would be good.
LAV Source/splitter doesn't expose any subtitles on VOB files at present. I think as long as LAV supports VOB files fully, MPC's IFO parser should do the rest.
Here's a OGM with SRT sub's sample, http://www.mediafire.com/download.php?324ev47iwvqfd38
I have also noticed that LAV Video doesn't respect enable/disable for sub's it will always show subtitles, maybe this is a MPC-BE issue?
thomaz909
1st October 2012, 18:57
any chance to get "deband" from ffdshow integrated into lavfilters video decoder ?
deband is nice for correcting bad color gradients and also nice for "smoothing" compression artefacts.
look at the right side of the example images:
without deband:
http://www.abload.de/img/debanddisabledllkao.png
deband enabled (threshold: 2, radius: 16):
http://www.abload.de/img/debandenabledg2s67.png
nevcairiel
1st October 2012, 19:15
any chance to get "deband" from ffdshow integrated into lavfilters video decoder ?
Nope, LAVs main function is decoding, not post-processing.
mark0077
1st October 2012, 19:18
Thanks for the new build nev. I have downloaded and reregistered the new filter. In mpc-be it seems to play DVDs very well, nice work, but mpc-be seems to be auto switching my video renderer from madVR to EVR for dvds. For normal mpc-hc, which seems to respect my video renderer choice, I still get the macrovision failed errors, so I guess that old problem isn't fixed without a seperate navigator or some of the other "hacks".
nevcairiel
1st October 2012, 19:45
mpc-be seems to be auto switching my video renderer from madVR to EVR for dvds.
Its a "feature" in mpc-be, apparently. LAV does not control this.
e1iminator
1st October 2012, 21:27
to all people that use progdvb; lets convince the developer to include lav splitter as an option
dansrfe
1st October 2012, 22:26
Not to question LAV video but I'm not sure if the primaries being signaled to madVR are the correct ones. it says EBU/PAL for a 720 x 480 4:3 NTSC DVD and on another 720 x 480 16:9 NTSC DVD madVR stated primaries as BT.470 System M.
Are these correct? I'm don't know know about BT.470 System M but EBU/PAL is only used with PAL discs right?
nevcairiel
1st October 2012, 22:36
Whatever it says was set in the bitstream like this. The values are directly taken from the various specs, there isn't much room to go wrong.
madshi
2nd October 2012, 07:19
@dansrfe, if you think there's a bug with those DVDs, a sample of each would help. Personally, I like weird samples, so if you really have a DVD with BT.470 System M primaries, I wouldn't mind getting a sample in any case.
nevcairiel
2nd October 2012, 11:10
Here's a OGM with SRT sub's sample, http://www.mediafire.com/download.php?324ev47iwvqfd38
This is more a MPC-HC issue then a LAV issue. All it does is expose the subtitles using MEDIATYPE_Subtitle and MEDIASUBTYPE_UTF8, which is perfectly fine for all text-based subtitles.
The Ogg splitter in MPC-HC uses MEDIATYPE_Text instead of MEDIATYPE_Subtitle, and for some reason the subtitle renderer behaves differently.
I don't feel like working towards its brokenness here.
I have also noticed that LAV Video doesn't respect enable/disable for sub's it will always show subtitles, maybe this is a MPC-BE issue?
I believe BE overrides the splitters decisions.
kasper93
2nd October 2012, 11:14
@e1iminator I am using LAV filters in progdvb... Where you have problem? :)
Its a "feature" in mpc-be, apparently. LAV does not control this.
I believe BE overrides the splitters decisions.
BE thinks to much. ;p
VipZ
2nd October 2012, 14:17
This is more a MPC-HC issue then a LAV issue. All it does is expose the subtitles using MEDIATYPE_Subtitle and MEDIASUBTYPE_UTF8, which is perfectly fine for all text-based subtitles.
The Ogg splitter in MPC-HC uses MEDIATYPE_Text instead of MEDIATYPE_Subtitle, and for some reason the subtitle renderer behaves differently.
I don't feel like working towards its brokenness here.
Thanks for looking into this for me. cbFormat: 520 works as expected, cbFormat: 524 doesn't work correctly. Does this mean anything towards this issue?
I believe BE overrides the splitters decisions.
I am using the build with with this being an option and have set to not override, also MPC-BE doesn't have a tick to enable the sub's. I also tested with MPC-HC with same issue.
Aleksoid1978
2nd October 2012, 14:19
BE thinks to much. ;p
No :) All it's now is optionals - wait next release;
nevcairiel
2nd October 2012, 14:22
Thanks for looking into this for me. cbFormat: 520 works as expected, cbFormat: 524 doesn't work correctly. Does this mean anything towards this issue?
This causes it?
The format contains 4 null bytes for some reason, i guess i can trim those off if they cause issues for SRT.
oddball
2nd October 2012, 14:27
I have a problem with LAV Audio Decoder (Decoding AC3 at least). I am using it to send audo to ReClock (Not bitstreaming) and let ReClock reencode to AC3 output so I can match the display to the the audio stream. However I am getting distortion and the volume is louder than if I use ffdshow's audio decoder. If I use ffdshow to send the audio unmolested it's perfect. LAV seems to do something strange to the audio when sent as PCM. No. The mixer option is not ticked. I also tried outputting in various output formats in LAV like 16 and 32 floating point. 16bit integer etc gave better results but were still too loud and caused a slight pop. But 32bit floating point gives distortion.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.