我们希望将320kbps的mp3文件转换为128kbps的mp3,所以目前我们使用的是ffmpeg命令,但它无效。
ffmpeg -i input.mp3 -codec:a libmp3lame -qscale:a 5 output.mp3
结果: - 输出比特率与输入mp3相同。
我们遵循FFmpeg编码指南,这是链接: - https://trac.ffmpeg.org/wiki/Encode/MP3
所以请建议任何解决方案。
答案 0 :(得分:8)
我尝试了你显示的命令(在Windows /命令行上测试):
ffmpeg -i input.mp3 -codec:a libmp3lame -qscale:a 5 output.mp3
结果:这对我有用。但是-qscale:a 5
使FFmpeg为您确定平均比特率。使用一个(320k)MP3文件,我得到了 134kbps 的近距离转换。这是expected,因为:
lame option Average kbit/s Bitrate range kbit/s ffmpeg option -V 5 130 120-150 -q:a 5
解决方案:
而不是使内部mp3帧保持不同的比特率(改变以适应“当前”感知音频,例如:使用比“忙”音频部分更小的比特/字节比率来认为“静音”部分),所以只需根据需要设置常数比特率 128kbps 。
我只需手动并明确地将其设置为 128kbps :
ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k output.mp3
答案 1 :(得分:5)
我使用这个shellcript来反复访问这个stackoverflow页面:)
#!/bin/bash
[[ ! -n $1 ]] && {
echo "Usage: mp3convert <input.mp3> <output.mp3> <bitrate:56/96/128/256> <channels> <samplerate>"
exit 0
}
set -x # print next command
ffmpeg -i "$1" -codec:a libmp3lame -b:a "$3"k -ac "$4" -ar $5 "$2"