4

要了解它的症结所在,为什么第一个命令有效,而第二个命令无效。它们生成大小略有不同但内容不同的文件:

ffmpeg -i test.wav -f ogg -acodec libvorbis test.a.ogg

ffmpeg -i test.wav -f ogg -acodec libvorbis - > test.b.ogg

test.a.ogg 将正常播放并且没有问题。test.b.ogg 从源音频的中间开始,在音频中有停顿和间隙。它也不会报告轨道的长度。

我想将源文件即时转码为我正在编写的程序的 ogg,并且我正在尝试将标准输出从 ffmpeg 通过管道传输到我的程序中。将结果放入中间文件会降低性能,因为转码应该是按需进行的。

4

1 回答 1

6

OGG 可能需要可搜索。来自ffmpeg 文档

使用 ffmpeg 写入标准输出:

ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi

……这和……一样

ffmpeg -i test.wav -f avi pipe: | cat > test.avi

请注意,某些格式(通常是 MOV)要求输出协议是可搜索的,因此它们会因管道输出协议而失败。

于 2012-01-16T17:42:48.547 回答