Log in

View Full Version : Why Avisynth output audio 6 channels?


bababm
24th June 2011, 12:55
Hello experts,
here is my avisynth script, say sample.avs

DirectShowSource("D:\sample.mp4",fps=15,convertfps=true,pixel_type="YV12")


By using the avisynth and FFmpeg batch script,
I convert the audio to amr format like this

ffmpeg.exe -i "sample.avs" -ar 8000 -ac 1 -ab 12.2k -vol 512 output.amr


The conversion flow works fine on my Windows XP.
Unfortunately, the same process cannot work on Windows 7, because avisynth source filter outputs 6 channels audio, and FFmpeg cannot convert 6 channels to mono.

I also try to change my avisynth script by default to output mono

DirectShowSource("D:\sample.mp4",fps=15,convertfps=true,pixel_type="YV12").convertTomono()


However, it works on Windows XP and fails on Windows 7.
The speed of audio is too fast on Windows 7.

By using GraphEdit, I found quartz.dll is the root cause.

Therefore, I copy my quartz.dll from Windows XP to overwrite that in Windows 7. It seems feasible now. However, I think it is workaround. That might introduce another problem.



Does anyone know the real reason?

Midzuki
24th June 2011, 14:38
Under Windows 7, DirectShow tweaker + ffdshow audio decoder should make unnecessary to downgrade quartz.dll ---

--- or not ??? :confused:

bababm
27th June 2011, 05:59
Thanks Midzuki.

Windows 7 uses its own Directshow filters. http://www.codecguide.com/windows7_preferred_filter_tweaker.htm
Windows 7 uses its own codecs for decoding several audio and video formats. Using third party DirectShow filters instead of the native filters is not possible without making difficult changes to the Windows Registry.

It somehow outputs 6 channels if audio codec is AAC.
So, I change audio codec to ffdshow by using Win7DSFilterTweaker.
Then, problem solved.