2

在命令行中,如果我运行:

ffmpeg -i inputVideo.mp4 -vn -f mp4 -acodec copy outputAudio.aac

一切正常。但是,如果我做同样的事情,除了标准输出而不是输出文件(“pipe:1”而不是“outputAudio.aac”),那么我会收到这个错误:“无法为输出文件 #0 写入标头(不正确的编解码器参数?)”

非常感谢任何有 ffmpeg 经验的人的帮助

谢谢

4

1 回答 1

1

那么问题是你要一个文件名为 outputAudio.aac 的 mp4 文件。所以如果你检查 outputAudio.aac 它实际上是一个 mp4 文件。要编写 mp4 文件,ffmpeg 将需要一个可查找的文件描述符,而 stdout 不是。[这是因为 mp4 moov atom 写在文件开头的末尾。
如果您希望将 aac 转储到标准输出,则应要求提供 adts 文件

ffmpeg -i input.mp4 -acodec copy -vn -f adts -strict -2 -

如果你需要它在一个 mp4 .. 之后将它混合到一个文件中

mp4 不是流媒体格式:请参阅此处从 Android 媒体记录器流式传输后修复 3GP 文件,了解我对解释这一点的不同问题的回答。

于 2012-08-29T06:04:36.077 回答