2012-04-12 3 views
3

私は混乱していて、少しこの質問につきました。私がGoogle上で見つけることができるのは、問題に関連しないトランスコードソフトウェアの基本的な使い方です。x264ストリームとogg vorbisストリームがある場合、mplayer/VLCが読み取ることができる多重化ストリームを作成するにはどうすればよいですか?

私はゲームを作っています。ビデオをストリーミングするネイティブキャプチャ機能を含めたいと思います。私はVLCのような標準のクライアントにこれをストリーミングしたいと思っています。これは、認識するフォーマットの両方である必要があり、これが機能するためには多重化する必要があります。

私の質問は、生のビデオフレームからx264へのものをエンコードする方法を知っています(How does one encode a series of images into H264 using the x264 C API?も参照してください)。私は生のオーディオサンプルをogg/vorbisにエンコードする方法を知っています。今、VLCのために1つと1つを一緒に配置するにはどうしたらいいですか?

答えて

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

+1

Muxをどのようなコンテナに入れるのですか? IFAIK OggコンテナはH.264をサポートしていません。 MP4コンテナはVorbisオーディオをサポートします。 ffmpeg/libavはMP4をうまくマルチプレックスする必要があります。インターネットとGoogle(webm)で著作権のある素材をリリースする人々はMatroskaコンテナを好む。私はhttp://www.bunkus.org/videotools/mkvtoolnix/を見ていますが、おそらくffmpeg/libavもそうです。 –

+0

さて、oggはH.264をサポートしていません。基本的に、私はVLCがそれをサポートしている限り、それがどんなコンテナであるかは本当に気にしません。それ以外のサポートは素晴らしいボーナスです。 AVIはひどく古いですが、かなりOKですが、MKVより広くサポートされています。あなたが挙げたそれらの例は非常に有用であるようですが、私はそれを調べます。ありがとう! – dascandy

関連する問題