我正在尝试使用 FFMPEG 将 avi 文件转码为 mp4,并使用以下命令将数据传输到 stdout(技术上是通过 NodeJS,但我在命令行上直接执行以下命令时收到相同的错误):
ffmpeg -i myavi.avi -vcodec libx264 -acodec libvo_aacenc -f mp4 pipe:1
会出现这个错误:
Could not write header for output file #0 (incorrect codec parameters ?): Error number -22 occurred.
当我执行下一个命令时,一切都按预期进行:
ffmpeg -i myavi.avi -vcodec libx264 -acodec libvo_aacenc -f mp4 newmp4.mp4
请注意,我在 Windows 上使用(或尝试)FFMPEG——对于这里发生的事情有什么想法吗?
编辑:最后一点说明,我使用的 FFMPEG 版本是 N-63439-g96470ca,构建于 2014 年 5 月 25 日(适用于 Windows 静态文件的最新版本的 FFMPEGhttp://ffmpeg.zeranoe.com/builds/)。
答案1
mp4 容器需要能够在文件内进行查找。管道是一种流,无法在内部进行查找。尝试使用 ts 或 flv 等流媒体容器。