5.1声道转2.0立体声,使用qaac和LSMASHAudioSource
dwing吧
全部回复
仅看楼主
level 9
方法1:
avs:
LoadPlugin("LSMASHSource.dll")
last=LWLibavAudioSource ("source.dts")
stereo=GetChannel(last,2,3)
stereo=stereo.amplifydb(2,2)
return stereo
qaac命令行:
qaac.exe" --ignorelength --threading -V 65 -q 2 --no-delay "source.dts.avs" -o "out.m4a"
方法2:
使用megui音频压制:
设置:Downmix mutilChannle to stereo# 多声道转立体声
avs:
LoadPlugin("LSMASHSource.dll")
LSMASHAudioSource("source.dts")
# detected channels: 6
# detected channel positions: 3/2/0.1
LoadPlugin("I:\Encode\MeGUI_2624_x86\tools\avisynth_plugin\AudioLimiter.dll")
c6_stereo(ConvertAudioToFloat(last))
return last
# 5.1 Channels L,R,C,LFE,SL,SR -> stereo + LFE
function c6_stereo(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
lf = GetChannel(a, 4)
sl = GetChannel(a, 5)
sr = GetChannel(a, 6)
fl_sl = MixAudio(fl, sl, 0.2929, 0.2929)
fr_sr = MixAudio(fr, sr, 0.2929, 0.2929)
fc_lf = MixAudio(fc, lf, 0.2071, 0.2071)
l = MixAudio(fl_sl, fc_lf, 1.0, 1.0)
r = MixAudio(fr_sr, fc_lf, 1.0, 1.0)
return MergeChannels(l, r)
}
# 5 Channels L,R,C,SL,SR or L,R,LFE,SL,SR-> Stereo
function c5_stereo(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
sl = GetChannel(a, 4)
sr = GetChannel(a, 5)
fl_sl = MixAudio(fl, sl, 0.3694, 0.3694)
fr_sr = MixAudio(fr, sr, 0.3694, 0.3694)
l = MixAudio(fl_sl, fc, 1.0, 0.2612)
r = MixAudio(fr_sr, fc, 1.0, 0.2612)
return MergeChannels(l, r)
}
# 5 Channels L,R,C,LFE,S -> Stereo
function c52_stereo(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
lf = GetChannel(a, 4)
bc = GetChannel(a, 5)
fl_bc = MixAudio(fl, bc, 0.3205, 0.2265)
fr_bc = MixAudio(fr, bc, 0.3205, 0.2265)
fc_lf = MixAudio(fc, lf, 0.2265, 0.2265)
l = MixAudio(fl_bc, fc_lf, 1.0, 1.0)
r = MixAudio(fr_bc, fc_lf, 1.0, 1.0)
return MergeChannels(l, r)
}
# 4 Channels Quadro L,R,SL,SR -> Stereo
function c4_stereo(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
sl = GetChannel(a, 3)
sr = GetChannel(a, 4)
l = MixAudio(fl, sl, 0.5, 0.5)
r = MixAudio(fr, sr, 0.5, 0.5)
return MergeChannels(l, r)
}
# 4 Channels L,R,C,LFE or L,R,S,LFE or L,R,C,S -> Stereo
function c42_stereo(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
lf = GetChannel(a, 4)
fc_lf = MixAudio(fc, lf, 0.2929, 0.2929)
l = MixAudio(fl, fc_lf, 0.4142, 1.0)
r = MixAudio(fr, fc_lf, 0.4142, 1.0)
return MergeChannels(l, r)
}
# 3 Channels L,R,C or L,R,S or L,R,LFE -> Stereo
function c3_stereo(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
l = MixAudio(fl, fc, 0.5858, 0.4142)
r = MixAudio(fr, fc, 0.5858, 0.4142)
return MergeChannels(l, r)
}
# 5.1 Channels L,R,C,LFE,SL,SR -> Dolby ProLogic
function c6_dpl(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
sl = GetChannel(a, 5)
sr = GetChannel(a, 6)
bc = MixAudio(sl, sr, 0.2265, 0.2265)
fl_fc = MixAudio(fl, fc, 0.3205, 0.2265)
fr_fc = MixAudio(fr, fc, 0.3205, 0.2265)
l = MixAudio(fl_fc, bc, 1.0, 1.0)
r = MixAudio(fr_fc, bc, 1.0, -1.0)
return MergeChannels(l, r)
}
# 5 Channels L,R,C,SL,SR -> Dolby ProLogic
function c5_dpl(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
sl = GetChannel(a, 4)
sr = GetChannel(a, 5)
bc = MixAudio(sl, sr, 0.2265, 0.2265)
fl_fc = MixAudio(fl, fc, 0.3205, 0.2265)
fr_fc = MixAudio(fr, fc, 0.3205, 0.2265)
l = MixAudio(fl_fc, bc, 1.0, 1.0)
r = MixAudio(fr_fc, bc, 1.0, -1.0)
return MergeChannels(l, r)
}
# 5 Channels L,R,LFE,SL,SR -> Dolby ProLogic
function c52_dpl(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
sl = GetChannel(a, 4)
sr = GetChannel(a, 5)
bc = MixAudio(sl, sr, 0.2929, 0.2929)
l = MixAudio(fl, bc, 0.4142, 1.0)
r = MixAudio(fr, bc, 0.4142, -1.0)
return MergeChannels(l, r)
}
# 5 Channels L,R,C,LFE,S -> Dolby ProLogic
function c53_dpl(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
bc = GetChannel(a, 5)
fl_fc = MixAudio(fl, fc, 0.4142, 0.2929)
fr_fc = MixAudio(fr, fc, 0.4142, 0.2929)
l = MixAudio(fl_fc, bc, 1.0, 0.2929)
r = MixAudio(fr_fc, bc, 1.0, -0.2929)
return MergeChannels(l, r)
}
# 4 Channels Quadro L,R,SL,SR -> Dolby ProLogic
function c4_dpl(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
sl = GetChannel(a, 3)
sr = GetChannel(a, 4)
bc = MixAudio(sl, sr, 0.2929, 0.2929)
l = MixAudio(fl, bc, 0.4142, 1.0)
r = MixAudio(fr, bc, 0.4142, -1.0)
return MergeChannels(l, r)
}
# 4 Channels L,R,LFE,S -> Dolby ProLogic
function c42_dpl(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
bc = GetChannel(a, 4)
l = MixAudio(fl, bc, 0.5858, 0.4142)
r = MixAudio(fr, bc, 0.5858, -0.4142)
return MergeChannels(l, r)
}
# 4 Channels L,R,C,S -> Dolby ProLogic
function c43_dpl(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
bc = GetChannel(a, 4)
fl_fc = MixAudio(fl, fc, 0.4142, 0.2929)
fr_fc = MixAudio(fr, fc, 0.4142, 0.2929)
l = MixAudio(fl_fc, bc, 1.0, 0.2929)
r = MixAudio(fr_fc, bc, 1.0, -0.2929)
return MergeChannels(l, r)
}
# 3 Channels L,R,S -> Dolby ProLogic
function c3_dpl(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
bc = GetChannel(a, 3)
l = MixAudio(fl, bc, 0.5858, 0.4142)
r = MixAudio(fr, bc, 0.5858, -0.4142)
return MergeChannels(l, r)
}
# 5.1 Channels L,R,C,LFE,SL,SR -> Dolby ProLogic II
function c6_dpl2(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
sl = GetChannel(a, 5)
sr = GetChannel(a, 6)
ssl = MixAudio(sl, sr, 0.2818, 0.1627)
ssr = MixAudio(sl, sr, -0.1627, -0.2818)
fl_fc = MixAudio(fl, fc, 0.3254, 0.2301)
fr_fc = MixAudio(fr, fc, 0.3254, 0.2301)
l = MixAudio(fl_fc, ssl, 1.0, 1.0)
r = MixAudio(fr_fc, ssr, 1.0, 1.0)
return MergeChannels(l, r)
}
# 5 Channels L,R,C,SL,SR -> Dolby ProLogic II
function c5_dpl2(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
fc = GetChannel(a, 3)
sl = GetChannel(a, 4)
sr = GetChannel(a, 5)
ssl = MixAudio(sl, sr, 0.2818, 0.1627)
ssr = MixAudio(sl, sr, -0.1627, -0.2818)
fl_fc = MixAudio(fl, fc, 0.3254, 0.2301)
fr_fc = MixAudio(fr, fc, 0.3254, 0.2301)
l = MixAudio(fl_fc, ssl, 1.0, 1.0)
r = MixAudio(fr_fc, ssr, 1.0, 1.0)
return MergeChannels(l, r)
}
# 5 Channels L,R,LFE,SL,SR -> Dolby ProLogic II
function c52_dpl2(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
sl = GetChannel(a, 4)
sr = GetChannel(a, 5)
ssl = MixAudio(sl, sr, 0.3714, 0.2144)
ssr = MixAudio(sl, sr, -0.2144, -0.3714)
l = MixAudio(fl, ssl, 0.4142, 1.0)
r = MixAudio(fr, ssr, 0.4142, 1.0)
return MergeChannels(l, r)
}
# 4 Channels Quadro L,R,SL,SR -> Dolby ProLogic II
function c4_dpl2(clip a)
{
fl = GetChannel(a, 1)
fr = GetChannel(a, 2)
sl = GetChannel(a, 3)
sr = GetChannel(a, 4)
ssl = MixAudio(sl, sr, 0.3714, 0.2144)
ssr = MixAudio(sl, sr, -0.2144, -0.3714)
l = MixAudio(fl, ssl, 0.4142, 1.0)
r = MixAudio(fr, ssr, 0.4142, 1.0)
return MergeChannels(l, r)
}
命令行:
qaac.exe --ignorelength --threading -V 65 - -o "out.m4a"
2017年05月25日 08点05分 1
level 9
方法2中avs一堆语句谁可以解释一下,方法1有什么缺陷吗?
2017年05月25日 08点05分 2
level 8
貌似写了判断语句,megui根据音频类型,自动生成c6_stereo(),然后执行了function c6_stereo {语句}
这是来自是刚学了c语言没几个月的渣渣留言的
2017年05月25日 12点05分 3
之后avs是怎么导入q.a.a.c的我并不知道[小乖]
2017年05月25日 12点05分
level 8
下一步执行{.....return MergeChannel()} 下一步执行return last 最后执行c6_stereo(嵌套的语句(last))
2017年05月25日 13点05分 4
谢谢指教,我回去查查这些滤镜什么意思
2017年05月25日 14点05分
level 14
第一个直接抽取了5.1里面的两个声道,第二个按一定比例混合5.1中的各个声道,得到一个新的2.0。(并且第二个中用了自定义函数,就和avsi脚本里那种写法一样)
2017年05月25日 14点05分 5
第一个是自己写的,提取dts的前左声道FL和前右声道FR,这两个方法哪一个更好呢?
2017年05月25日 14点05分
当然要混合,否则很多声音你可能就听不到了
2017年05月27日 06点05分
level 14
当然是第二种。
ps:你这id有毒[喷]
2017年05月25日 14点05分 6
有敏感词[乖],谢谢解答[太开心]
2017年05月25日 14点05分
level 6
方法太复杂,看得头昏眼花。用eac3to,一条命令轻松搞定。
2017年05月25日 16点05分 7
level 13
[汗]我看到2.0都强制5.1,TNT菌居然要5.1转2.0。PS:楼主ID有毒。
2017年05月26日 04点05分 8
2.0的128kb/s就满足了[吐舌][吐舌]
2017年05月26日 05点05分
1