使用 FFmpeg 进行 FIFO 编码

使用 FFmpeg 进行 FIFO 编码

我正在尝试使用命令行将 Flac 音频文件转换为 AAC 文件。

所以我写了这个

    ffmpeg -i input.flac temp.wav
    faac -q 120 -o output.m4a temp.wav

它工作正常。现在我想使用 fifo 做同样的事情,所以我写了这个

   mkfifo temp.wav
   ffmpeg -i input.flac temp.wav  &   faac -q 120 -o output.m4a temp.wav

天气很冷。

那么你能告诉我我做错了什么吗?

非常感谢,抱歉我的英语不好。

答案1

FFmpeg 不支持 FIFO,您必须按照@adamax 的建议使用管道,然后跟进FFmpeg bug #1663如果您想要/需要 FFmpeg 中的 FIFO 支持。

答案2

我知道这是一个老问题,但我只想插话说,与公认的结论不同“FFmpeg 不支持 FIFO”,已有十多年的历史了,我刚刚测试过,发现它可以正常工作。

按照https://trac.ffmpeg.org/ticket/1663

它应该可以工作。至少对于原始流输入来说...

我正在使用这个。(我用来生成 .wav 文件的工具不支持管道到 stdout,而只支持写入文件,因此在我的情况下我必须使用命名管道)

答案3

使用-y开关。某些版本的 ffmpeg 在测试命名管道是否存在时会挂起。y开关是一种解决方法。

相关内容