View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
ramenchef
26th October 2012, 08:03
I'm having a weird issue. I currently use Haali for mkvs just for ordered chapters. For everything else, LAV splitter is being used. When playing back an ogm file, LAV splitter refuses to automatically load the subtitles. The subtitles show up under the splitter source, but it defaults to no subtitles every time. Subtitle selection mode is set to default with eng,jpn as the options. I am using MPC-HC + xy-vsfilter. I have tried moving directvobsub above and below LAV Splitter in the external filters setting in MPC-HC, but it doesn't help. This is on LAV Filter 5.1.3(?) and 5.2.
http://i.imgur.com/27d1b.png
nevcairiel
26th October 2012, 08:05
Your file has wrong language tags.
You can either put "English" in the language tag, or "eng", but a combination of "English[eng]" will not be recognized properly.
Dogway
26th October 2012, 10:08
there's absolutely no reason to mess with the merit settings or external filters in MPC-HC.
So if I have LAV Video, FFDshow and XviD, who chooses what to decode?
or another scenario, LAV Audio, FFDShow Audio, and MPEG Layer 3 Decoder? (That assuming I don't have more codecs installed, which is highly unlikely as they get installed with programs like PowerDVD, iZotope, TechSmith, etc)
My AVS is simple, because I'm testing:
setmtmode(3,2)
MPEG2Source("source.d2v", cpu=0)
Trim(34165, 42102)
EDIT: To demonstrate that your workflow doesn't work, I deleted all the external filters, and this is what I get:
http://i212.photobucket.com/albums/cc35/Dogway/Misc/th_Filters.png (http://i212.photobucket.com/albums/cc35/Dogway/Misc/Filters.png)
If you're curious, mp4 (avc+aac), mov (asp+pcm)
Reino
26th October 2012, 12:23
Now if you use madVR or even VMR-9 on a Fraps YUV420 file, it would switch to NV12/YV12 output.That's true, but since the decoder's output is RGB, that would mean 2 colorspace conversions; YV12-->RGB-->YV12.
Your splitter correctly detects these files as either FPS1(yuvj420p), or FPS1(bgr24), so wouldn't it be possible to determine the colorspace before connecting to the video decoder? If the splitter detects FPS1(yuvj420p), tell the video decoder not to do any colorspace conversion.
And I don't know what FFDShow's PC.709-->Rec601 conversion is based on, but since ffmpeg can do PC.709-->Rec601 conversions now (-pix_fmt yuv420p -vf colormatrix=bt709:bt601), is it possible to integrate it into LAV Filters? LAV Filters is based on ffmpeg, right?
And btw, I'm not so sure if most people use Fraps's RGB recording mode. It's quite a bit more demanding compared to the YV12 mode and when you do a proper PC.709-->Rec601 conversion, I doubt you would see any (major) differences. A survey (on the Fraps forum) would be interesting.
So if I have LAV Video, FFDshow and XviD, who chooses what to decode?I thought you were trying to play an Avisynth script in MPC-HC. Don't change the subject please.
Your script appears to be YV12, so installing a YV12 video decoder is all you need.
Such a script would play fine here with the AVI/WAV File Source and FFDShow's Raw Video Decoder.
Again: except for FFDShow's Raw Video Decoder, there's absolutely no reason to mess with the merit settings or external filters in MPC-HC, if you want to play Avisynth scripts, or any other media file for that matter. At least I have never had to mess with them for any scenario whatsoever.
nevcairiel
26th October 2012, 12:32
That's true, but since the decoder's output is RGB, that would mean 2 colorspace conversions; YV12-->RGB-->YV12.
Wah?
The decoder outputs YV12 for such files, LAV tries to switch the renderer to NV12 or YV12 mode, and if the renderer accepts that, no conversion is performed at all. If the renderer refuses, it sticks with its current format, which for Fraps defaults to RGB. So either you have YV12 -> RGB for EVR, or you have just plain YV12 -> YV12 for any sane renderer.
LAV doesn't even have the ability to do any double-conversions.
Your splitter correctly detects these files as either FPS1(yuvj420p), or FPS1(bgr24), so wouldn't it be possible to determine the colorspace before connecting to the video decoder? If the splitter detects FPS1(yuvj420p), tell the video decoder not to do any colorspace conversion.
Most video renderers completely fail at fullrange YV12 input, which is why it was prefered to simply use RGB, because when LAV converts to RGB, it properly takes the range and the matrix into account (the "j" in yuvj420p indicates its jpeg-range, aka full-range)
If the Fraps decoder in ffmpeg also manages to tell LAV that the YV12 it outputs is in some specific matrix (709 or 601), it will properly take this into account and create perfect RGB.
If Fraps encoded YV12 is always in the same matrix, i can also hardcode that value somewhere.
I have no plans to add code to change the YUV color matrix. Its not something a decoder should be doing.
Reino
26th October 2012, 13:08
The decoder outputs YV12 for such files, LAV tries to switch the renderer to NV12 or YV12 mode, and if the renderer accepts that, no conversion is performed at all.LAV in Avisynth through DirectShowSource() shows the output to be RGB24, and although I can confirm that VMR-9 puts out NV12, I thought 2 colorspace conversions would take place. But that's good to hear.
Most video renderers completely fail at fullrange YV12 input...I guess that doesn't include VMR-9 then, because with VMR-9 it's still PC.709. With EVR it becomes Rec709 indeed.
If Fraps encoded YV12 is always in the same matrix, i can also hardcode that value somewhere....so I sent an email to FRAPS' author about 6 months ago. He just now finally got back to me with this:Dear Cory,
Thanks for your message and I apologize for the very long delay in getting back to you.
In YUV mode Fraps will use 709 coefficients and generate the full range 0-255 (i.e. it's not clamped between 16-235).
Regards,
Rod MaherIt seems one of FRAPS or libav or me is doing something wrong.FPS1(yuvj420p) is always PC.709. ffmpeg by default also treats it that way. I don't think there's metadata, or any file property that indicates it's using the Rec.709 luma coefficients.
nevcairiel
26th October 2012, 13:18
I guess that doesn't include VMR-9 then, because with VMR-9 it's still PC.709. With EVR it becomes Rec709 indeed.
Both renderers have no clue how to identify PC range YUV content. Microsoft specifys a way to put that information into the mediatype, however besides madVR i know of nothing that reads that information.
Because its the more common format, basically all renderers assume YV12 is limited-range.
Dogway
26th October 2012, 13:20
Don't change the subject please.
(...)there's absolutely no reason to mess with the merit settings or external filters in MPC-HC
Then please, don't create confusion by telling me to don't deal with external filter settings when the OP recommends (http://forum.doom9.org/showthread.php?p=1425963#post1425963) a tutorial where the usage of external filter settings is promoted.
I managed to reproduce the filter chain on graphedit. It works:
"AVI/WAV File Source"->"FFDShow Video Decoder"->"Video Renderer"
It creates the filter chain automatically when I drop the avs in the program, but I still can't play it in mpc-hc for some reason (whatever my external filters configuration is).
vad74
26th October 2012, 15:43
nevcairiel
Can new LAV Filters 0.52 work with QuickSync in fullscreen mode?
Reino
26th October 2012, 16:05
Haha, I never knew about these guides. Notice nevcairiel also states: Those guides are in no way "official", and I do not guarantee the accuracy of these guides, but they should get you started.
I'll say it again; there's absolutely no reason to mess with the merit settings or external filters in MPC-HC to play any audio or video file.
If I'm using it, it's only to block specific filters for testing purposes.
If it successfully creates a DirectShow graph in GraphEdit (it's better to use GraphStudioNext (https://code.google.com/p/graph-studio-next/) btw), but fails in MPC-HC, have you tried to use a regular MPC-HC version (http://xhmikosr.1f0.de/)(*) instead of the "modded austere light version" you're using, or selecting another renderer than madVR?
Note that if you change "Raw Video" to "YV12" in the Codecs-section of FFDShow's Video Decoder config and you're using another video decoder than FFDShow (MPC-HC's internal decoders, or LAV Video Decoder for instance), it will then always connect to that video decoder's output. For a MKV[H.264+AC3] file for instance, that would mean:
LAV Splitter Source --> LAV Video Decoder --> FFDShow Video Decoder --> Video Renderer
\-> LAV Audio Decoder --> Audio Renderer...which is of course completely unnecessary.
If you use FFDShow's Raw Video Decoder (by changing its merit to 00400000) instead, you won't have this problem.
Well, call me crazy, but all I see is a white screen with h5ai 0.22-dev-9 (http://larsjung.de/h5ai) at the bottom.Sounds like he updated to some broken version of that directory index script. I let him know.(*) Looks like he did it again and although I'm using the Firefox plugin NoScript, all Javascript is allowed for that site.
Kinda weird he doesn't check if his own website is functioning properly.
madshi
26th October 2012, 16:29
I'm sure this question was answered before, but I didn't found anything useful in a quick search, so:
With an NVidia card, is there any advantage to using DXVA over CUDA or the other way round? I understand that with EVR/VMR, DXVA gets along with less copying around, but other than that?
Thanks!
nevcairiel
26th October 2012, 16:41
With an NVidia card, is there any advantage to using DXVA over CUDA or the other way round? I understand that with EVR/VMR, DXVA gets along with less copying around, but other than that?
"Native" DXVA has the advantage of never leaving the GPU, which leaves you with like 0% cpu usage, but you know the limitations that includes, so there is that.
Its really only an advantage if you are very focused on battery life, or you have a very slow CPU, like the ION platforms.
Copy-Back DXVA is pretty similar to the CUDA mode, both operate on the same concept really.
CUDA Pro:
- NVIDIA driver does the bitstream parsing and sends the data to the GPU exactly in the way it expects it (may avoid problems here and there, i know of no cases where this matters)
- Support for MPEG4-ASP
- Built-in DI possibility before software post-processing
- Works without a D3D device (can be used in exclusive mode)
- Partial acceleration of VC-1 on older GPUs
CUDA Con:
- No support for WMV3
- Puts the GPU into maximum performance mode (something in the CUDA API causes this)
Think thats about all. None of these points are very strong imho, unless you want the DI.
Dogway
26th October 2012, 17:05
-Yes I'm already using GraphStudioNext, for instance yesterday I updated to v.5.0.0.1 because I had the comctl32.dll error (http://code.google.com/p/graph-studio-next/issues/detail?id=77).
-Yes, I'm already using the regular "modded austere light version (http://xhmikosr.1f0.de/mpc-hc/lite/)" of MPC-HC. :P
I appreciate your help, but please, make yourself clear.
"there's absolutely no reason to mess with the merit settings"
"by changing its merit to 00400000"
Do you want me to change merit or not?
Besides there is no "FFDShow's Raw Video Decoder", maybe you mean "FFDShow's Raw Video Filter"?
OK, now look. I changed "FFDShow's Raw Video Filter" merit to 00400000, and set RAW video to YV12 (Thanks to your shortcut trick (http://forum.doom9.org/showthread.php?p=1597577#post1597577)). I disabled "FFDShow Video Decoder" RAW Video. I enabled VMR9 renderer.
AVS doesn't play, and playing an mp4(avc+aac), ffdshow audio gets preference over LAV Audio.
Now loading avs into GraphStudioNext even doesn't work: "Can't Open File". XD
BUT if I manually build the graph, it works:
"AVI/WAV File Source"->"FFDShow RAW Video Filter"->"Video Renderer"
cyberbeing
26th October 2012, 17:21
When opening AVS files via VFW, your graph should be "AVI/WAV File Source"->"Video Renderer" only with no additional filters.
Dogway
26th October 2012, 17:31
When opening AVS files via VFW, your graph should be "AVI/WAV File Source"->"Video Renderer" only with no additional filters.
When I connect the avs to the video renderer, the RAW filter node gets automatically created and connected between the nodes.
Pat357
26th October 2012, 17:33
Nev,
I'm testing with the latest build from git (41ce391).
I use a 16 bit colordepth .PNG file (48 bits/pixel) with MPC-HC & Madvr.
Lavspliiter reports : PNG , RGB48be, 512x512
If I enable all formats in Lavvideo, I get indeed a 25fps "movie", but Madvr reports RGB32 (8bit) instead of RGB48 ??
Only if I disable RGB32/RGB24, I get a nice 25fps Y416 video.
With a 16-bit gray png :
Lavsplitter : png, gray16be
Madvr : NV12 8bit 4:2:0 (!)
Is this a Madvr issue or what do you think ?
Maybe I'm just testing something that hasn't been finished yet, if, sorry for my impatience ....
nevcairiel
26th October 2012, 17:45
Right now all high-bitdepth RGB gets internally converted to 8-bit RGB, because there is no native support for 16-bit RGB yet.
So yes, patience, find it. :p
cyberbeing
26th October 2012, 18:36
When I connect the avs to the video renderer, the RAW filter node gets automatically created and connected between the nodes.
If you add ConvertToRGB32() or ConvertToRGB24() to the end of your script, it should connect directly to "Video Renderer".
For other colorspaces, an intermediary filter like Microsoft's AVI Decompressor, Microsoft's Color Space Converter, or FFDShow RAW is needed. To enable YV12 support in AVI Decompressor, you can install DivX.
madVR on the other hand is special, and will accept direct YV12, YUY2, YV16, YV24, RGB24, and RGB32 Avisynth connections via "AVI/WAV File Source" without any intermediary conversion filters.
clsid
26th October 2012, 18:53
So if I have LAV Video, FFDshow and XviD, who chooses what to decode?
Things are very simple:
* ffdshow has a very high merit. This means that if a format is enabled in ffdshow settings, ffdshow will get used.
* LAV decoders have a merit that is a little bit higher than most other decoders. So if a format is enabled in LAV (and not in ffdshow), then LAV will be used.
* If a format is disabled in both ffdshow and LAV, then another decoder will get used if you have any others installed.
* With regard to splitters, it is possible to configure a specific splitter for each file extension using similar Registry tweaks as I have posted before for .avs. An easy way to configure this as a novice user is to use Codec Tweak Tool (http://codecguide.com/download_other.htm#codectweaktool)
A good way to test if .avs input works is to first test the most simple script:version()
"AVI/WAV File Source" may give problems with audio. This is one of the reasons why Haali added Avisynth input support to his splitter.
For YV12 conversion, the Xvid VFW codec can be used. That is better than using ffdshow RAW, because it won't have any unwanted side-effects on normal video playback.
Dogway
26th October 2012, 19:07
If you add ConvertToRGB32() or ConvertToRGB24() to the end of your script, it should connect directly to "Video Renderer".
Yes it does, interestingly enough when I add the converttorgb line dropping the avs automatically loads the Convert Color Space node, it isn't necessary, so I can manually delete it and connect directly to video renderer.
MPC never worked, I will try with the latest lite portable version, but I fear it's more a codec and merits thing than anything else.
EDIT:
if LAV decoders merit are a bit higher than other, then why FFDshow Audio still gets preference to decode AAC than LAV Audio?
On relation to avs playback, if I load the avs on MPC-HC it gets stuck on opening, then I have to close the program, and go to processes and finish the process.
I right know thought that the Haali reg I created before (by now I have Haali already uninstalled) was giving me problems on splitter requirements, so I deleted it as well. But MPC still gets stuck.
filler56789
26th October 2012, 19:13
@Dogway, your problem with .AVS files in MPC-HC sounds very weird,
unless I have misunderstood or missed something. :confused: On my setup, MPC-HC uses the following graph for Avisynth scripts:
AVI/WAV File Source -> AVI Decompressor -> Video Renderer
nevcairiel
26th October 2012, 19:20
Would you guys mind moving your AviSynth troubles to an appropriate place? :d
Dogway
26th October 2012, 19:23
If I use RGB output I can connect directly
AVI/WAV File Source -> Video Renderer
If I output yv12 I need ffdshow Raw Filter
AVI/WAV File Source -> ffdshow raw filter -> Video Renderer
AVI/WAV File Source -> AVI Decompressor -> can't connect to Video Renderer (VFW_E_CANNOT_CONNECT(0x80040217))
Reino
26th October 2012, 19:51
"AVI/WAV File Source" may give problems with audio.What kind of problems?
nevcairiel
26th October 2012, 20:09
I know you are not worried about Windows 8 yet but the public release is this week and I will confirm again and with 0.52 that there is a problem with VC-1 playback with LAV with MPC-HC and MPC-BE.
LAV crashes with both MPC-HC and MPC-BE when playing VC-1 content with LAV and AMD Radeon processors. the only way to play correctly for me has been to disable VC-1 video decoding with LAV and use internal filters with MPC-HC and MPC-BE.
Now that i actually have access to a official Win8 copy, i installed it on my Ultrabook and managed to find and fix the issue.
I'll most likely push out a small release soon to address it (and some other things)
filler56789
26th October 2012, 20:19
Would you guys mind moving your AviSynth troubles to an appropriate place? :d
I agree with you, and I'm sorry for having contributed to the off-topic stuff :o , but IMHO you really should have said that 2 pages ago. :)
@Dogway: thanks for the clarification.
Dogway
26th October 2012, 20:39
I agree with you, and I'm sorry for having contributed to the off-topic stuff :o , but IMHO you really should have said that 2 pages ago. :)
@Dogway: thanks for the clarification.
No problem, my questions were on topic and off topic on and off, so it wasn't his fault, but now that it seems clear is not a LAV Video or LAV Splitter issue I won't bother more around here.
But for example, there are still questions open without answers:
-Why isn't LAV Audio the default audio decoder?
-Has LAVSplitter ever been able to connect to ffdshow?
LoopinFool
26th October 2012, 20:40
Would you guys mind moving your AviSynth troubles to an appropriate place? :d
My apologies for starting it. It wasn't even a really big need for me -- just useful for testing.
The crash problem is important to me, though. Please let me know if you got my PM with the stack trace. I'm willing to test with any debug version of your stuff to help track it down. Since it's crashing deep in avcodec-lav-54.dll, and not every time even with my test case, I know it might be difficult to find.
Thanks,
- LoopinFool
nevcairiel
26th October 2012, 21:14
Some feedback on DVD playback, after a while subtitles are not cleared from the screen they just keep displaying over the top of each other.
I'm having this problem too. Using latest mpc-hc and madvr.
Should be fixed. Thanks for the sample, FreeFall.
madshi
26th October 2012, 21:52
"Native" DXVA has the advantage of never leaving the GPU, which leaves you with like 0% cpu usage, but you know the limitations that includes, so there is that.
Its really only an advantage if you are very focused on battery life, or you have a very slow CPU, like the ION platforms.
Copy-Back DXVA is pretty similar to the CUDA mode, both operate on the same concept really.
CUDA Pro:
- NVIDIA driver does the bitstream parsing and sends the data to the GPU exactly in the way it expects it (may avoid problems here and there, i know of no cases where this matters)
- Support for MPEG4-ASP
- Built-in DI possibility before software post-processing
- Works without a D3D device (can be used in exclusive mode)
- Partial acceleration of VC-1 on older GPUs
CUDA Con:
- No support for WMV3
- Puts the GPU into maximum performance mode (something in the CUDA API causes this)
Think thats about all. None of these points are very strong imho, unless you want the DI.
Thanks, that's quite informative.
FreeFall
27th October 2012, 02:43
Thanks, I'll try out the next release.
FreeFall
6233638
27th October 2012, 08:36
Reading back through the topic a few pages, I was wondering if you could please clarify the mixing options, especially as you say they were changed in 0.52.
This post (http://forum.doom9.org/showpost.php?p=1594342&postcount=12291) says that for correct mixing, levels need to be set as 0.7071 center, 1.0000 surround and 1.0000 LFE. When set to this I get a lot of clipping with LFE when downmixing to stereo. (matrix is normalized)
According to this post (http://forum.doom9.org/showpost.php?p=1594722&postcount=12309), it should now be 0.7071 center, 1.0000 surround and 0.7071 LFE. Again, I experience a lot of clipping on LFE.
When testing this out, I was watching Blade Runner (Blu-ray, TrueHD track) and the LFE at roughly 0:23:00 and 0:30:20 exhibit a lot of clipping if LFE is set above 0.04. My guess is there are probably tracks which clip if it is above 0.00 at all.
I also noticed that if the values are changed away from 0.71 in the GUI, and then set back to 0.71, they are not set to 7071 in the registry, just some value close to it.
I found it difficult to set a specific value in the GUI at all, as the arrow keys on my keyboard won't move the slider when it is selected, and it doesn't seem to allow for 0.01 precision with the mouse, which is why I ended up changing values in the registry instead.
nevcairiel
27th October 2012, 09:09
With matrix normalization, you will never get clipping, unless the original track already clips. All coefficients are scaled so that when every channel is at 100%, the final result is 100%.
You must be hearing something else. On 0.04, the LFE will be so silent that you don't hear it anyway.
Regarding the levels, right now they directly reflect the final mixing value, so for Center it should be 0.71 (1.0 with a 3dB volume reduction because its split into 2 channels), Surround 1.0, and do what the hell you want to LFE. There is no defined standard how LFE should be downmixed really. Because its also split into two channels, 0.71 is the "transparent" value.
I default surround to 0.71 instead of 1.0 because people seem to prefer a focus on the front channels.
I wanted to redefine the values so that 1.0 is the "transparent" value for all three scales, and the 3dB reduction is applied automatically if required. Got mixed feedback on that idea =p
In the end, just set it to what ever sounds good to you.
PS:
If you're so OCD over 0.7071 vs 0.71, the GUI is not for you =p
Its a freely draggable slider, why would you expect it to be set to exactly 0.7071 when you just drag it roughly to 0.71? :P
Even if it would accept keyboard, it would only move in 0.01 increments.
6233638
27th October 2012, 09:35
With matrix normalization, you will never get clipping, unless the original track already clips. You must be hearing something else. On 0.04, the LFE will be so silent that you don't hear it anyway.It's a "crackling" sound as soon as I go above 0.04 LFE when downmixing to stereo. I did expect that value to be negligible, but once it hits 0.05 I get this crackling again, which I assumed to be clipping. The levels displayed in the LAV Audio status tab are very low though, so it did seem strange.
I've tested other headphones/speakers so it does seem to be the downmix, and not the playback device distorting. I don't know how to record the output from LAV or extract a sample from the film to upload though.
Regarding the levels, right now they directly reflect the final mixing value, so for Center it should be 0.71 (1.0 with a 3dB volume reduction because its split into 2 channels), Surround 1.0, and do what the hell you want to LFE. There is no defined standard how LFE should be downmixed really.I seem to recall reading a paper that said LFE should either be discarded, or set to 0.80 if you wanted to include it in the downmix but I can't find the source of that now, and this is certainly out of my area of expertise, so there is a good chance I am mistaken.
If you're so OCD over 0.7071 vs 0.71, the GUI is not for you =p
Its a freely draggable slider, why would you expect it to be set to exactly 0.7071 when you just drag it roughly to 0.71? :P
Even if it would accept keyboard, it would only move in 0.01 increments.I just assumed it would "snap" to 0.7071 as that seems to be the "correct" value, just as I would have thought 1.00 would snap to 1.0000
Changing the value in the registry is not a problem for me though, and I'd rather do that to be sure it is correct. Just seemed like a nice usability tweak.
nevcairiel
27th October 2012, 10:23
Can you add mediatypes and format config options for the following audio formats? Then they can also work with other splitters.
Done. I folded some of the MS specific PCM derivates into one option though to limit the format option bloat.
e-t172
27th October 2012, 10:34
I seem to recall reading a paper that said LFE should either be discarded, or set to 0.80 if you wanted to include it in the downmix but I can't find the source of that now, and this is certainly out of my area of expertise, so there is a good chance I am mistaken.
Well, I had a heated discussion (http://forum.doom9.org/showthread.php?p=1584854#post1584854) with nevcairiel about that 3 months ago. Technically, the specifications from ITU and Dolby indicate that LFE should be played back 10 dB louder than any other channel. So if you downmix LFE into both L and R channels, that would be +10dB - 3dB = +7dB = 2.24 (assuming L and R are 1.00).
To be fair, nevcairiel rightfully pointed out that the specifications also say that the LFE channel can be removed or played back at a lower level when downmixing if it is deemed appropriate (for example to avoid clipping or overloading speakers). My point is, if you want an official number, then that would be it. The exact words from the Dolby spec (http://www.atsc.org/cms/standards/a_52-2010.pdf) are (emphasis mine):
Downmixing of the lfe channel is optional. An ideal downmix would have the lfe channel reproduce at an acoustic level of +10 dB with respect to the left and right channels. Since the inclusion of this channel is optional, any downmix coefficient may be used in practice.
6233638
27th October 2012, 11:33
Well, I had a heated discussion (http://forum.doom9.org/showthread.php?p=1584854#post1584854) with nevcairiel about that 3 months ago. Technically, the specifications from ITU and Dolby indicate that LFE should be played back 10 dB louder than any other channel. So if you downmix LFE into both L and R channels, that would be +10dB - 3dB = +7dB = 2.24 (assuming L and R are 1.00).I assumed the 10dB boost was part of the decoding step - all competent receivers boost LFE by 10dB automatically when sent anything other than PCM these days for example.
Is LAV not doing that when decoding audio?
So if I am using:0.7071 for center
1.0000 for surround
2.2400 is correct for LFE with the 10dB boost?
I am starting to think that the crackling I am hearing with Blade Runner must be encoded on the disc itself, can anyone else confirm this? It's the US Final Cut disc that I have, though they're probably all the same.
I've just tried a number of bass-heavy Blu-rays at volumes louder than I would normally listen to, and I'm not hearing it with anything else, even when using 2.24 for LFE.
nevcairiel
27th October 2012, 11:36
Note that such a high LFE mixing value will severly reduce the volume of all other audio, and if you use anything but Float, also reduce the dynamic range significantly.
6233638
27th October 2012, 11:42
Note that such a high LFE mixing value will severly reduce the volume of all other audio, and if you use anything but Float, also reduce the dynamic range significantly.The volume is not an issue, but I thought LAV Audio automatically switched to Float when mixing anyway?
nevcairiel
27th October 2012, 11:43
It does, but you may be forcing something else. Also, unless you use a soundcard in your PC as DAC, it'll most likely be converted to integer at some point.
6233638
27th October 2012, 12:01
It does, but you may be forcing something else. Also, unless you use a soundcard in your PC as DAC, it'll most likely be converted to integer at some point.That's true. I don't suppose you have any idea what kind of dynamic range you would be constraining yourself to when doing this? (assume it's being output as 24-bit int, as that seems common)
noee
27th October 2012, 12:10
I am hearing with Blade Runner must be encoded on the disc itself, can anyone else confirm this?
I have that disc, just tried if from the disc and my rip, I don't hear LFE "crackle" at those times.
Dogway
27th October 2012, 13:08
I agree with you, and I'm sorry for having contributed to the off-topic stuff :o , but IMHO you really should have said that 2 pages ago. :)
@Dogway: thanks for the clarification.
No problem, my questions were on topic and off topic on and off, so it wasn't his fault, but now that it seems clear is not a LAV Video or LAV Splitter issue I won't bother more around here.
But for example, there are still questions open without answers:
-Why isn't LAV Audio the default audio decoder?
-Has LAVSplitter ever been able to connect to ffdshow?
My questions still stand true because:
First of all, you should stop messing with external filter settings. (...) My list is totally empty and everything works exactly the way I want.
there's absolutely no reason to mess with the merit settings or external filters in MPC-HC.
there's absolutely no reason to mess with the merit settings or external filters in MPC-HC,
I'll say it again; there's absolutely no reason to mess with the merit settings or external filters in MPC-HC to play any audio or video file.
If I'm using it, it's only to block specific filters for testing purposes.
But LAV Filters don't work as wished without doing one thing or the other because you are totally ignoring ffdshow in the equation, just like clsid:
Things are very simple:
* ffdshow has a very high merit. This means that if a format is enabled in ffdshow settings, ffdshow will get used.
* LAV decoders have a merit that is a little bit higher than most other decoders. So if a format is enabled in LAV (and not in ffdshow), then LAV will be used.
And probably you missed the most likely configuration, ffdshow and lavfilters both installed (because well, you know that I had to use RAW Video in order to decode AVS anyways).
By your logic and reading between lines, LAV Decoders have a merit higher than MOST decoders, but not all because "This means that if a format is enabled in ffdshow settings, ffdshow will get used". So LAV Filters actually is incompatible with ffdshow, you gotta either, disable all the decoders in ffdshow, lower ffdshow merit, raise LAVFilters merit, or block in MPC-HC which is the way I chose. So if nevcairiel recommends a tutorial where the third option is promoted, what way do you think I am going to take? Unless you give a founded reason there is no incovenient to use any of the 4 options.
e-t172
27th October 2012, 15:40
I assumed the 10dB boost was part of the decoding step - all competent receivers boost LFE by 10dB automatically when sent anything other than PCM these days for example.
Is LAV not doing that when decoding audio?
No it doesn't, and for good reason. The 10dB boost is done at the amplification stage (if not downmixing). If it was done earlier in the chain it would be implemented as a -10dB attenuation in all other channels, which reduces dynamic range, thus defeating the purpose of the +10dB boost in the first place.
That means LFE level matching is done at the last possible stage. When using a surround sound system this is normally done by the power amplifier. When downmixing this is done when the LFE channel is removed (mixed).
What nevcairiel is afraid of is that the 7dB LFE boost translates to a -7dB attenuation for other channels when downmixing with a normalized matrix. This means you're losing 7dB of dynamic range, you're raising your signal source noise floor by 7dB, and you might run into maximum gain issues. Whether or not this is an issue depends heavily on the hardware you're using.
You can also try without normalizing, in which case you get the correct LFE level and no dynamic range reduction, but you risk clipping. That said, I think that standard stereo downmix of 5.1 content is not allowed to clip per Dolby specifications.
Deim0s
27th October 2012, 16:07
6233638
Still, check to the filter chain, after LAV Audio, were no other audio filters, which can not handle 32 float.
Examples:
Mixing AC3 5.1 in stereo (not normalized matrix):
LAVSplitter -> LAVAudio - Dump
no clipping (http://i.imgur.com/g7ITi.png)
LAVSplitter -> LAVAudio -> ffdshow Audio Processor (enabled: Volume -> Master volume: 99%) - Dump
clipping (http://i.imgur.com/qRTar.png)
clsid
27th October 2012, 16:21
Microsoft's AC-3 has a special laptop mode that applies a 11dB gain. I don't know if that applies to just Center or all channels.
http://support.microsoft.com/kb/944436
I would be interesting to see a comparison of stereo output of MS/LAV/ffdshow.
Currently the Center level allows a maximum gain of 3dB compared to normal value. Would it make sense to allow higher values like was done for LFE?
clsid
27th October 2012, 16:30
So LAV Filters actually is incompatible with ffdshow, you gotta either, disable all the decoders in ffdshow, lower ffdshow merit, raise LAVFilters merit, or block in MPC-HC which is the way I chose. So if nevcairiel recommends a tutorial where the third option is promoted, what way do you think I am going to take? Unless you give a founded reason there is no incovenient to use any of the 4 options.You can quickly disable formats in ffdshow if you do it in its installer. It has a tree structure, so 4 clicks is enough to disable everything if you click on the roots of the tree ("Decode the following formats with..." entries).
But if your prefer LAV decoders, then you don't actually need ffdshow at all. There is no point in installing it if you block it later on.
Dogway
27th October 2012, 16:49
You can quickly disable formats in ffdshow if you do it in its installer. It has a tree structure, so 4 clicks is enough to disable everything if you click on the roots of the tree ("Decode the following formats with..." entries).
But if your prefer LAV decoders, then you don't actually need ffdshow at all. There is no point in installing it if you block it later on.
I intalled from the time I needed to mix down audio, play strange video/audio codecs, post-process video with avs, or as you know preview avs files, etc. I thought it was a good fallback to have there because it's very powerful with its filter system (although a bit old and messy).
But still I don't understand why you are so against raising LAVFilters merit (or lowering other decoders'). It's much easier, unless there's any drawback you haven't told me until now.
Reino
27th October 2012, 20:54
-Why isn't LAV Audio the default audio decoder?Simply because FFDShow's Audio Decoder by default has a higher merit than the LAV Audio Decoder. Either uninstall FFDShow (do you really still need it?), disable specific formats in the "Codecs"-section, or lower FFDShow's merit settings, for LAV Filters to take over.
-Has LAVSplitter ever been able to connect to ffdshow?
...
By your logic and reading between lines, LAV Decoders have a merit higher than MOST decoders, but not all because "This means that if a format is enabled in ffdshow settings, ffdshow will get used". So LAV Filters actually is incompatible with ffdshow...You do realize FFDShow lags the splitter LAV Filters does have? For FFDShow you'd always need a splitter filter to play anything. Unless FFDShow functions as a post-processor, the LAV- and FFDShow's Video Decoder will of course never connect with eachother.
I don't know about you, but I can perfectly play videos where LAV Filters does the splitting and FFDShow the decoding of the video and audio stream.
Although there's still a few exotic formats for which LAV Splitter prefers to connect to LAV Video/Audio Decoder, LAV Splitter and FFDShow can get along just fine.
Dogway
27th October 2012, 23:19
Simply because FFDShow's Audio Decoder by default has a higher merit than the LAV Audio Decoder
That's what had to be expected, but in order to know that you need to "have messed" with (the forbidden) merit settings.
Either uninstall FFDShow (do you really still need it?), disable specific formats in the "Codecs"-section, or lower FFDShow's merit settings, for LAV Filters to take over.
What's so bad in FFDShow that you encourage me to uninstall it? I mean it's the same question I'm trying to get an answer for since 2 pages back. What's so bad in rasing or lowering merit settings? Can't I raise LAV Filter merits? (you didn't name it as an option)
but I can perfectly play videos where LAV Filters does the splitting and FFDShow the decoding
Yes sorry I had some confussion for when I couldn't split AVS with LAV but had to decode with ffdshow.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.