2010-09-14 51 views
3

爲了弄清楚它的癥結所在,爲什麼第一條命令可以正常工作,但是第二條命令卻沒有。他們生產略有不同大小的文件與不同的內容:無法通過標準輸出從ffmpeg流入Ogg

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的stdout插入到我的程序中。將結果放入中間文件會導致性能下降,因爲轉碼本應按需進行。

回答

4

OGG可能需要尋求。從ffmpeg docs

對於寫作的有關ffmpeg到stdout:

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

...這是一樣的...

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

注意,有些格式(通常爲MOV),要求輸出協議是可搜索的,所以它們將失敗並且使用管道輸出協議。