使用avconv转换mp3到aac的正确参数



我正在编写一个小python脚本,将mp3文件转换为aac。我是通过使用avconv这样做的,我想知道我是否做得对。目前我的命令是这样的:

avconv -i input.mp3 -ab 80k output.aac

这给我带来了我的第一个问题:我使用-ab 80k,因为它与我的测试文件一起工作。在一些文件上,我可以设置高一些,使用100k。但我更喜欢把音量调到最高。有办法这么说吗?

另一个问题:我在python脚本中使用它。目前我将其称为子进程。我宁愿不这样做,因为这迫使我将文件写入磁盘,然后在完成所有操作后再次加载它。有没有一种方法可以只在内存中做?我使用web.py后返回文件,不需要或想要它在我的光盘上?这样就不用使用临时文件了。

我没有-ab选项,但如果它相当于-ar(指定采样率),我应该指出,你的耳朵将无法分辨80k和更高的值之间的区别。
关于临时文件,您是否考虑过使用/tmp或为此目的创建的特定tmpfs文件系统?

编辑:对于关于tempfile的评论,是的,您仍然使用它们,但是将它们创建在/tmp或为作业创建的tmpfs文件系统中。它应该在重新启动时被清除,但我希望你在传递文件后删除它。
关于无损编码的另一点,我以后再讲。

编辑2:我怀疑aac格式被描述为mp3的逻辑继承者,我强烈怀疑,你或其他人可能知道不同,因为mp3被称为有损,压缩即位(没有双关语)丢失,你想要无损转换的愿望是注定要失败的,因为源已经是有损的。
当然,我不是这方面的专家,我愿意接受纠正。

编辑3:你对too many frames的评论让我相信你混淆了两个avconv选项-ar和-b
-b用于视频,并指定视频和音频的输出比特率。你使用它的方式,我怀疑它正试图将相同的比特率应用于音频和视频,但音频流有限制。
你必须使用-b:v来告诉avconv设置视频比特率,而保持音频速率不变。
我建议你放弃-ab选项,使用-ar代替,因为那只是音频。

最新更新