我将 mp4 视频文件转换为 mp3 音频,然后将其上传到我的服务器播放,命令如下:
ffmpeg -i video.mp4 -vn -acodec libmp3lame -ac 1 -b:a 96k audio.mp3
生成的文件在本地计算机上播放无误。但是,在线播放却不行。我尝试在 Firefox (82)、Chrome (86) 以及 Player.FM (播客播放器) 中打开 Mp3 URL。Firefox 播放出非常奇怪的噪音,其他两个播放器无法播放。
ffmpeg 在解码时输出几个错误:
ffmpeg -i http://example.com/input.mp3 -f null -
[mp3float @ 0x7efe50006880] Header missing
[mp3float @ 0x7efe50006880] invalid block type
[mp3float @ 0x7efe50006880] Error while decoding MPEG audio frame.
[mp3float @ 0x7efe50006880] big_values too big
我还尝试使用 Audacity 和 Lame(命令行)再次转换生成的 mp3。生成的 Mp3 在浏览器中播放效果也很好。
如果可能的话,我想避免第二个转换步骤,并使用 ffmpeg 创建也可以在线播放的输出文件。
答案1
问题不在于 ffmpeg,而在于 FTP 上传。传输采用的是 ASCII 模式,而不是二进制模式。