2012-04-12 53 views
3

我很困惑,並且有點卡住了這個問題。我在Google上可以找到的僅僅是代碼轉換軟件的基本用法,它與問題無關。給定一個x264流和一個ogg vorbis流,我該如何製作mplayer/VLC可以讀取的muxed流?

我在做一個遊戲,我想包括本地捕捉能力,以流視頻。我非常希望將它傳輸到標準客戶端,如VLC。它需要既能夠識別它的格式,又需要被多路複用才能工作。

因此,我的問題是,我知道如何將原始視頻幀中的內容編碼爲x264(另請參閱How does one encode a series of images into H264 using the x264 C API?)。我知道如何將原始音頻樣本編碼爲ogg/vorbis。現在,我如何將VLC放在一起?

回答

3

x264不是流格式。它是一款軟件。該軟件將視頻編碼爲H.264視頻格式。 AFAIK,它不會將視頻+音頻複合到MP4或AVI容器文件中。查看完整套件的ffmpeg/libav。還有其他的程序來複用視頻和音頻流。

這是我所實施的實驗:

youtube-dl "http://www.youtube.com/watch?v=0Bmhjf0rKe8" 
avconv -i 0Bmhjf0rKe8.flv -vn -c:a libvorbis -b:a 64k 0Bmhjf0rKe8.ogg 
avconv -i 0Bmhjf0rKe8.flv -c:v copy -bsf:v h264_mp4toannexb -an 0Bmhjf0rKe8.h264 
avconv -i 0Bmhjf0rKe8.h264 -i 0Bmhjf0rKe8.ogg -c copy 0Bmhjf0rKe8.mkv 
mplayer 0Bmhjf0rKe8.mkv 
avconv -i 0Bmhjf0rKe8.flv -i 0Bmhjf0rKe8.ogg -c copy -map 0:0 -map 1:0 0Bmhjf0rKe8.mp4 
mplayer 0Bmhjf0rKe8.mp4 

你應該能夠做到這一點編程方式使用libav。

+0

不,確切地說。它返回一個H.264幀(iirc)流。 Ogg/vorbis組件返回一個完整的Ogg流。我如何複合這些? – dascandy 2012-04-14 20:23:47

+1

Mux成什麼樣的容器? IFAIK Ogg容器不支持H.264。 MP4容器支持Vorbis音頻。 ffmpeg/libav應該複用MP4精細。在互聯網和Google(webm)上發佈版權材料的人更喜歡Matroska容器。我會看看http://www.bunkus.org/videotools/mkvtoolnix/,雖然也許ffmpeg/libav也是這樣做的。 – 2012-04-14 20:53:56

+0

那麼,ogg不支持H.264。基本上,只要VLC支持它,我並不在乎它是什麼容器。任何其他支持它是一個很好的獎金。 AVI是非常古老的,但相當不錯,但比MKV更廣泛的支持。你列出的那些例子似乎非常有用,但我會研究它。謝謝! – dascandy 2012-04-15 10:05:51

相關問題