我正在尝试使用 Python 编写的使用 SoX 的音频存档程序中增加 mp3 的比特率。
以下是部分代码:
#fullHour is a boolean
DeltaSeconds = chunk['TimeDelta'].total_seconds()
fullHour = (3540 < DeltaSeconds < 3660 )
targetMp3 = ''.join((tmpFolder, '/', str(x), '.mp3'))
if fullHour: # no trim necesary, just convert to mp3
# print tab,'fullHour [',str(x),']'
# print tab,' ','SourceOgg -> ', str(SourceOgg)
# print tab,' ', 'targetMp3 -> ', str(targetMp3)
cmd = ['sox', SourceOgg, targetMp3]
print cmd
call(cmd)
这是我尝试过的:
cmd = ['sox', SourceOgg, '-C 192.2', targetMp3]
根据文档,这应该可行。以下是完整项目:汽车查理
源文件是 ogg(采样率 44100、每样本位数 32、比特率 499 kpbs)。
我在我的 Ubuntu 机器上的命令行中运行了这个程序,它运行完美:
sox old.ogg -C 192.2 new.mp3
所以我相信这是在 python 中运行命令所特有的。我可能遗漏了语法中的某些内容?
任何想法都将不胜感激,谢谢!
答案1
这真的很简单。你说的命令有效,sox old.ogg -C 192.2 new.mp3
在数组表示法中看起来像这样:
[ 'sox', 'old.ogg', '-C', '192.2', 'new.mp3']
注意每个空间开始一个新参数,因为它没有被引用或转义。