View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
Mark Regalo
26th May 2017, 21:08
Why would it have to be downmixed for that option to do something? With the option on, stereo is output as stereo, with the option off, its output as 5.1, certainly there can be an audible difference between those two depending on how your audio device handles this.
Ah, it was actually due to MpcAudioRenderer. Unchecking "Use system output channels" in it fixed the audible difference.
Am I correct in understanding that the rest of the channels are silent when stereo is mixed to 5.1+? Is this useful in situations where downstream handling of the audio is unpredictable when the number of channels output is not constant?
Pat357
27th May 2017, 15:02
Blu-Rays anymore using the DLLs libaacs.dll and libbdplus.dll.
Interesting ! Where did you get this .dll's ?
clsid
27th May 2017, 17:09
Here:
http://www.labdv.com/aacs/updater.php
If you try it out, let us know if it works good. I am curious and don't have a bluray drive.
nevcairiel
27th May 2017, 21:53
AACS decryption used to work OK-ish with discs that don't use the most recent encryptions. BD+ removal is more miss then hit though.
Haven't really tested for a long time though.
max79
28th May 2017, 11:10
to nevcairiel:
Problem with LAV Splitter Source. I can't see duration in GraphEdit for remote MP3-file:
https://media.ashevchenko.org/podcasts/media/2017-02-21_porok.mp3
Any feedback would be appreciated.
max79
28th May 2017, 11:12
to nevcairiel:
Problem with LAV Splitter_v0.69.0-80. In LAV Splitter_v0.69 i can see built in chapters on control timeline bar in ZoomPlayer_v13.5 even if playback this MP3-file as stream(or as local file):
http://www.electromixes.com/zik/electromix_v118.mp3
Any feedback would be appreciated.
wanezhiling
30th May 2017, 09:28
Hi, lav video supports 10-bit vp9 hardware decoding now, but it works with lav splitter only? at least not working with mpc-be's splitter
nevcairiel
30th May 2017, 10:03
Hi, lav video supports 10-bit vp9 hardware decoding now, but it works with lav splitter only? at least not working with mpc-be's splitter
I would imagine that DXVA2-CopyBack would work regardless of splitter used, but Native decoding requires certain information to be present during decoder startup, which LAV expects in a certain format (to be precise, the "vpcC" format used in MP4 files, similar to "avcC" used for H264 and whatnot)
leeperry
30th May 2017, 10:56
Am I missing something or can't LAV decode "XVID" fourcc videos?
sneaker_ger
30th May 2017, 11:03
Works fine here. Upload a sample and tell us which LAV version you are using and what error you get.
nevcairiel
30th May 2017, 11:32
Both "XVID" and "xvid" are in the list of supported FourCCs, fwiw.
leeperry
30th May 2017, 12:25
Oh OK thanks, I had to enable it in ffdshow otherwise PotP refused to play it.
Pat357
30th May 2017, 17:01
That would mean that lav-video is not configured properly in PotPlayer to decode xvid format.
max79
30th May 2017, 23:15
Is it possible to add MEDIASUBTYPE_Vorbis with GUID={CDDCA2D5-6D75-4F98-840E-737BEDD5C63B} in LAVAudioDecoder ?
Any feedback would be appreciated.
nevcairiel
30th May 2017, 23:18
Is it possible to add MEDIASUBTYPE_Vorbis with GUID={CDDCA2D5-6D75-4F98-840E-737BEDD5C63B} in LAVAudioDecoder ?
No. The Vorbis Decoder requires decoder initialization data, which is not provided in the MEDIASUBTYPE_Vorbis type. Instead, you should use MEDIASUBTYPE_Vorbis2 and FORMAT_VorbisFormat2/VORBISFORMAT2 format structures, which is already supported by LAV Audio (and output by LAV Splitter)
max79
31st May 2017, 11:09
Please test these streams with ffmpeg, if it outputs 5.1 there, then you should report the problem there.
If you tell me how to do it and to what address I can send bug request I'll do it.
max79
31st May 2017, 11:10
to nevcairiel:
Thanks! If i'm understand you properly it's not ffmpeg(LAVAudioDecoder) limitation but by the VORBIS format structures? We always need to use MEDIASUBTYPE_Vorbis with MEDIASUBTYPE_Vorbis2 and not separately, right ?
clsid
31st May 2017, 15:21
If you tell me how to do it and to what address I can send bug request I'll do it.
http://ffmpeg.zeranoe.com/builds/
Create a new ticket here:
http://trac.ffmpeg.org/
FFmpeg output:
ffmpeg version N-86310-g220b24c Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.1.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
libavutil 55. 63.100 / 55. 63.100
libavcodec 57. 96.101 / 57. 96.101
libavformat 57. 72.101 / 57. 72.101
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 90.100 / 6. 90.100
libswscale 4. 7.101 / 4. 7.101
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100
Input #0, matroska,webm, from 'dolby_digital_plus_channel_check_lossless-DWEU.mkv':
Metadata:
encoder : libebml v1.3.0 + libmatroska v1.4.1
creation_time : 2015-04-06T16:08:55.000000Z
Duration: 00:01:34.50, start: 0.000000, bitrate: 4842 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p(progressive), 1920x1080, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)
Stream #0:1(eng): Audio: eac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
[eac3 @ 00000000032767e0] Dependent substream decoding is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
nevcairiel
31st May 2017, 15:51
eac3 dependent substreams not working is a known limitation either way, so there is already tickets for that.
nevcairiel
2nd June 2017, 11:59
Just as a FYI, the next official release of LAV Filters (and any nightlies as of now) will require a SSE2 capable CPU. SSE2 has been available for 15 years, and performance tests have shown up to 10% differences in some workloads (although more typical are 2-5% for common decoders).
Even though the 64-bit build has always used SSE2 (since every 64-bit CPU supports SSE2), many people still use 32-bit - often because not all other components are available in 64-bit, and at this point I feel its a better choice to offer better performance to users of more recent hardware, then cater to over 15 year old CPUs instead.
There is no strict limitations that require this in the code, so anyone could still do custom builds simply removing the flags that instruct the compilers to use SSE2, if someone desperately needs to.
NikosD
2nd June 2017, 12:11
Have you done any speed comparisons of the current version vs the new "SSE2" ?
Because I can see that SSE2 is faster, but your current version already contains a SSE2 path, right ?
So, why the "fatter" older version supporting both older than SSE2 code and SSE2 or newer code and a new SSE2 code and better version should have any difference ?
Those questions are out of curiosity, no complaints regarding your decision.
nevcairiel
2nd June 2017, 12:15
The manually optimized assembly code is not affected, as those indeed already used SSE2 (and newer things) - the difference is in the parts of the code that are not manually optimized in assembly, ie. the code thats in C/C++, and which the compiler optimizes. Now the compiler is allowed to use SSE2 for this, resulting in a performance improvement. The compiler can't very easily generate "two paths" automatically, like we can do for the manually optimized assembly functions, which often not only support two but even more, so it needs to be told the level of optimizations it can use - which is now SSE2.
The numbers I mentioned above where tested on the current Git version, with SSE2 on and off. It varies a lot based on the files and codecs used, but generally there was always a measurable improvement.
NikosD
2nd June 2017, 12:29
So, the C/C++ compiled code affects that much (~15%) the performance, even though the manually optimised assembly parts are in full use.
Interesting, thanks.
nevcairiel
2nd June 2017, 12:30
So, the C/C++ compiled code affects that much (~15%) the performance, even though the manually optimised assembly parts are in full use.
There is a lot more C code then assembly code. Many things are very hard to fully write in assembly, but the compiler can do small optimizations in those functions using SSE/SSE2, so it helps.
max79
2nd June 2017, 17:15
Problem with LAV Splitter Source. Why it can't play this stream:
mms://online.svitle.org/Emmanuel
As workaround i must change URL like this:
mmst://online.svitle.org/Emmanuel
Any feedback would be appreciated.
p.s. Thank you for quick response clsid!
max79
2nd June 2017, 17:33
Problem with LAV Splitter Source. Why it can't play this remote file:
http://trailers.divx.com/hevc/SHANE_ONEIL 4K24p_HEVC_10Mbits.mkv
As workaround i must change URL like this:
http://trailers.divx.com/hevc/SHANE_ONEIL%204K24p_HEVC_10Mbits.mkv
Any feedback would be appreciated.
max79
2nd June 2017, 17:37
If i use "FileSource(URL)+LAVSpltter" in GraphEdit sometimes i have error message about "....TIMEOUT: ..." for this remote file:
http://trailers.divx.com/hevc/SHANE_ONEIL%204K24p_HEVC_10Mbits.mkv
And in other cases if graph builds I noticed another problem with wrong video duration. Have a look-
https://forum.doom9.org/attachment.php?attachmentid=15913&stc=1&d=1496421383
Any feedback would be appreciated.
nevcairiel
2nd June 2017, 17:52
Why it can't play this stream:
mms://online.svitle.org/Emmanuel
As workaround i must change URL like this:
mmst://online.svitle.org/Emmanuel
Thats just how mms streams work. mms:// is for HTTP transport, mmst:// is for TCP transport, it depends what kind that server is offering and you need to use the correct URL.
Why it can't play this remote file:
http://trailers.divx.com/hevc/SHANE_ONEIL 4K24p_HEVC_10Mbits.mkv
As workaround i must change URL like this:
http://trailers.divx.com/hevc/SHANE_ONEIL%204K24p_HEVC_10Mbits.mkv
Spaces in URLs always have to be encoded, thats just how URLs work. If anyone gives you a URL with a space in it, they are doing it wrong.
max79
2nd June 2017, 19:41
Thats just how mms streams work. mms:// is for HTTP transport, mmst:// is for TCP transport, it depends what kind that server is offering and you need to use the correct URL.
Spaces in URLs always have to be encoded, thats just how URLs work. If anyone gives you a URL with a space in it, they are doing it wrong.
Ok, but why LAVfilter doesn't use this order of connection?:
https://en.wikipedia.org/wiki/Microsoft_Media_Server
Enduser have no idea about correct URL or not. I've got live stream URL from radio station site. All my ten other players which is not use LAV playback stream from my example without any changes in URL name!
DIVX.COM site administrator doing it wrong. JFI- such URLs work without problems through FileSource(URL)...
Thank you!
nevcairiel
2nd June 2017, 20:34
Its just how MMS works in ffmpeg, you are always free to not use LAV for it. In general, I would recommend to use dedicated streaming filters for streaming sources, as LAV is not very optimized for it. Its optimized for local file playback, and thats what it does well.
RealSnoopyDog
6th June 2017, 23:22
Interesting ! Where did you get this .dll's ?
It is only ONE DLL that comes along with MakeMKV and you have to duplicate it ;)
@nevcairiel: With the latest libbluray.dll changes, Blu-Ray playback is working again!
max79
7th June 2017, 15:42
Try with tomrrows nightly version, I enabled reconnect for http connections.
Nev, please, can you clarify what you did with example? I have no positive changes in any of my HTTP problems with LAVSplitter_v0.69.0-87. You may try this new one trouble:
http://cdn.theoplayer.com/video/star_wars_episode_vii-the_force_awakens_official_comic-con_2015_reel_(2015)/index.m3u8
For this HLS-remote file i have got blank black box after autoreplay him by any of my media players.
Any feedback would be appreciated.
max79
7th June 2017, 15:55
Its just how MMS works in ffmpeg, you are always free to not use LAV for it. In general, I would recommend to use dedicated streaming filters for streaming sources, as LAV is not very optimized for it. Its optimized for local file playback, and thats what it does well.
What exactly DirectShow filter would you recommend?
Can you do reconnect for MMS://-streams to be able playback him without any changes in URL?
I have the same trouble and with RTSP://-streams! This stream didn't start at all if i try to play him as:
rtsp://rtsp-v3-spbtv.msk.spbtv.com/spbtv_v3_1/30_110.sdp
But if I change the URL it can start to play! What order of the connections?:
1) RTSPh (didn't start to play)
2) RTSPu (sometimes playback)
3) RTSPt (always playback)
rtspt://rtsp-v3-spbtv.msk.spbtv.com/spbtv_v3_1/30_110.sdp
4) RTSPm (didn't start to play)
Can you do reconnect for RTSP://-streams to be able playback him without any changes in URL?
Any feedback would be appreciated.
nevcairiel
7th June 2017, 17:52
I do not plan to spend much time on streaming problems, if any at all, sorry. Like I said, a dedicated streaming filter would be more appropriate. I do not know if any exist, but that doesn't change what I focus LAV on.
clsid
7th June 2017, 19:07
That RTSP:// url works here in MPC-HC.
If I play it with FFplay, then I get the warning "UDP timeout, retrying with TCP", so reconnection with different transport seems to be done automatically already.
XMonarchY
10th June 2017, 19:08
MPC-HC latest nightly uses 0.69-91 version. Can I replace the -87 files with -91 files?
mzso
10th June 2017, 19:17
So, for some incomprehensible reason using the hw deinterlacer is tied to using HW accelerated decoding, which I don't want to use because it's slower than software decoding.
But can I at least work around it? I only want to use deinterlacing for my DVB program. Can I somehow get lav to use different settings for this (cuvid+deinterlacing) program than any other? Maybe some other trick?
lvqcl
10th June 2017, 19:27
MPC-HC latest nightly uses 0.69-91 version. Can I replace the -87 files with -91 files?
0.69-91 is 0.69.0.87 + several MPCHC-specific patches.
huhn
10th June 2017, 20:42
So, for some incomprehensible reason using the hw deinterlacer is tied to using HW accelerated decoding, which I don't want to use because it's slower than software decoding.
But can I at least work around it? I only want to use deinterlacing for my DVB program. Can I somehow get lav to use different settings for this (cuvid+deinterlacing) program than any other? Maybe some other trick?
using the hardware deinterlnacer with software decoding with use up a lot of performence.
you have to up and download it from the GPU and EVR/madVR use the same deinterlnacer in the end anyway so it is just a waste to do it this way.
mzso
10th June 2017, 21:02
using the hardware deinterlnacer with software decoding with use up a lot of performence.
you have to up and download it from the GPU and EVR/madVR use the same deinterlnacer in the end anyway so it is just a waste to do it this way.
I fail to see why it is so. After decoding the video is passed to the GPU for deinterlacing and rendering it doesn't need to come back to the CPU.
I don't know about EVR, but madVR's deinterlacer performs pretty sadly. But I don't want to use either. I want LAV's HW deinterlacer, which looks far superior to madVR's and to LAV's SW deinterlacer.
huhn
10th June 2017, 22:06
they are the same deinterlancer.
only DXVA native is connecting directly to the GPU after decoding and there are serious limitations too for this.
for hardware deinterlancing you have to do the same process.
issues with deinterlancing could be driver related too.
el Filou
10th June 2017, 22:12
I don't know about EVR, but madVR's deinterlacer performs pretty sadly. But I don't want to use either. I want LAV's HW deinterlacer, which looks far superior to madVR's and to LAV's SW deinterlacer.
madVR option "force video mode" uses the GPU's hardware deinterlacer and should provide the results you want.
mzso
10th June 2017, 22:23
madVR option "force video mode" uses the GPU's hardware deinterlacer and should provide the results you want.
Sadly it doesn't. I get rather pronounced combing, compared to the none with LAV. It seems vastly inferior to LAV's HW deinterlacer.
huhn
10th June 2017, 23:27
a sample a screen from the madVR OSD and your used hardware and i should be able to tell you what is happening.
mzso
11th June 2017, 00:34
a sample a screen from the madVR OSD and your used hardware and i should be able to tell you what is happening.
Just posted in the madVR thread. Though I don't see any interesting information. (My GPU is a GTS450)
Pat357
11th June 2017, 23:23
It is only ONE DLL that comes along with MakeMKV and you have to duplicate it ;)
I guess you mean libmmbd.dll and libmmbd64.dll ?
Almost unbelievable that such small files (28 KB, 35 KB!) should do the trick.
The one I found (libaacs.dll + libbdplus.dll), but didn't test yet, where distributed together with MPV and where each over 1.2 MB.
I can't test it right now, but I assume it works for you ?
What players are supported ? MPV, MPC-HC , MPC-BE, PotPlayer, VLC ,.. ?
RealSnoopyDog
12th June 2017, 18:07
With Google, you will find e.g.
https://forum.kodi.tv/showthread.php?tid=189402
but this should not be discussed in detail here in this thread, because this here is all about LAV. If you find the time, just test it.
sauma144
12th June 2017, 22:43
Hello nevcairiel,
Could you add a way to enable/disable/configure acompressor in LAV Audio?
https://ffmpeg.org/ffmpeg-filters.html#acompressor
nevcairiel
12th June 2017, 23:27
Hello nevcairiel,
Could you add a way to enable/disable/configure acompressor in LAV Audio?
https://ffmpeg.org/ffmpeg-filters.html#acompressor
I'm not really interested in all sorts of random processing features at this time, sorry.
sauma144
13th June 2017, 07:32
I'm not really interested in all sorts of random processing features at this time, sorry.
OK. My neighbors will continue to scream because I make too much noise in the evening. ;)
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.