我正在尝试使用命令行将 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
开关是一种解决方法。