MacOS下使用SoX修剪音频文件时比特率为何会改变?
解决SoX修剪MP3时强制改变比特率的问题
问题原因
SoX默认输出MP3文件时,会使用128 kbps的固定比特率编码,因此不管原文件比特率高低,都会被强制调整到这个值。
实现保持原比特率的方法
1. 手动指定原比特率
先用SoX自带的soxi工具查看原文件的比特率:
soxi -b "Love For Sale.mp3"
输出的数字就是原文件的比特率(比如192、320等),然后在修剪命令中添加-C参数指定该比特率:
sox "Love For Sale.mp3" -C 原比特率数值 "Love For Sale2.mp3" trim 0 -5
举个例子,如果原比特率是320kbps,命令就是:
sox "Love For Sale.mp3" -C 320 "Love For Sale2.mp3" trim 0 -5
2. 自动获取并应用原比特率
如果不想手动查询,可通过命令组合自动获取原比特率并传入修剪命令:
# 获取原文件比特率 BITRATE=$(soxi -b "Love For Sale.mp3") # 执行修剪并保持原比特率 sox "Love For Sale.mp3" -C $BITRATE "Love For Sale2.mp3" trim 0 -5
针对可变比特率(VBR)文件的处理
如果原文件是VBR编码,可通过soxi -V "文件名.mp3"查看详细编码信息,然后用-C vbr参数匹配原VBR等级,比如:
sox "Love For Sale.mp3" -C vbr=4 "Love For Sale2.mp3" trim 0 -5
(vbr等级通常从0到9,数字越小质量越高、比特率越高)
内容的提问来源于stack exchange,提问作者Zyxius
相关产品推荐
相关产品推荐

