audio - ffmpeg 音频复制因管道失败

标签 audio ffmpeg pipe

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

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

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

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

谢谢

最佳答案

那么问题是你要一个文件名为 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 不是流媒体格式:请参阅此处 Fix 3GP file after streaming from Android Media Recorder对于我对解释这一点的不同问题的回答。

关于audio - ffmpeg 音频复制因管道失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12171285/

相关文章:

java - TagLib 端口或类似的 Java 音频标签阅读器

ffmpeg - ffplay -noborder 选项缺少参数

c - 使用 fork() 产生内存映射

linux - bash 脚本不会将标准输出重定向到文件

web-services - 音频流服务器

php - 防止Mp3在浏览器PHP中播放

iphone - 所有 View 中的 Ios 音频播放器

c++ - 如果 extern "C"包含与 Qt 库冲突怎么办?

ffmpeg scale2ref 解释?

python - shell multipipe 被多个 python 脚本破坏