在命令行中,如果我运行:
ffmpeg -i inputVideo.mp4 -vn -f mp4 -acodec copy outputAudio.aac
一切都很好。 但是,如果我做同样的事情,除了标准输出而不是输出文件(“管道:1”而不是“outputAudio.aac”),然后我得到这个错误: “无法为输出文件#0写入标头(编解码器参数不正确?)”
非常感谢任何有ffmpeg经验的人的帮助
由于
答案 0 :(得分:1)
问题是你要的是一个文件名为outputAudio.aac的mp4文件。因此,如果你检查outputAudio.aac它实际上是一个mp4文件。要编写mp4文件,ffmpeg将需要一个可搜索的文件描述符,stdout不是。 [这是因为mp4 moov atom写在文件开头的末尾。
如果你想将aac转储到stdout,你应该要求一个adts文件
ffmpeg -i input.mp4 -acodec copy -vn -f adts -strict -2 -
如果你需要它在mp4 .. mux它之后进入文件
mp4不是一种流媒体格式:请参阅此处Fix 3GP file after streaming from Android Media Recorder,了解我对其他问题的回答。