要了解它的症结所在,为什么第一个命令有效,而第二个命令无效。它们生成大小略有不同但内容不同的文件:
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 通过管道传输到我的程序中。将结果放入中间文件会降低性能,因为转码应该是按需进行的。