ffmpeg 将mp4从中提取音频文件,
Stream #0:1 -> #0:0 (copy)
[mp3 @ 0x7f96b7713680] Invalid audio stream. Exactly one MP3 audio stream is required.
[out#0/mp3 @ 0x7f96b77135c0] Could not write header (incorrect codec parameters ?): Invalid argument
你遇到的错误是因为尝试将非MP3音频流直接复制到MP3容器中,而MP3容器仅支持MP3编码的音频流。以下是解决方案:
1. 查看输入文件的音频编码格式
首先检查MP4文件的音频流信息:
ffmpeg -i input.mp4
在输出中查找音频流信息,例如:
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
这里显示音频编码是AAC,无法直接复制到MP3容器。
2. 正确提取音频的两种方法
方法一:保留原始编码(不重新编码)
如果音频是AAC编码,输出应为.aac
或.m4a
:
ffmpeg -i input.mp4 -vn -acodec copy output.aac