給定命令行ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ar 8000 -c:a FOO pipe:1
,ffmpeg可能會抱怨它「無法找到合適的輸出格式」。對於某些編解碼器,ffmpeg具有默認的容器格式,例如-c:a libmp3lame
會產生MP3的。對於其他編解碼器,你只需重複自己(排序):-c:a pcm_alaw -f alaw
ffmpeg用於「原始」輸出的格式/協議?
但是,如果我想流原始編解碼器輸出,並且沒有匹配-f
?我可以拿-f alaw
並假設它沒有做任何事情嗎? (G711 alaw是一個簡單的編解碼器,它可以產生一個字節流,所以-f alaw
大概就是複製那個字節流)
很明顯,管道的另一端需要知道數據流如何解釋,如果沒有容器信息。但假定我已經知道管道的另一端正在等待以8 kHz採樣的音頻流,編碼爲-c:a FOO
。
'-map 0'完成了這個技巧。 – MSalters