2011-07-11 11 views
3

私はHTML5で提供される動画再生機能についていくつかの調査を行っています。私はちょうど最近のバージョンのGoogle ChromeとFirefoxが、WebMでエンコードされたライブビデオストリームをタグ付きHTTP経由で再生できることを発見しました。WebMライブhttpストリーミングに関する情報はどこにありますか?

私はこれが実際に実装されている方法上の任意の場所に情報を見つけることができませんでした。 Apple HTTPライブストリーミングプロトコルにはたくさんのリンクがありますが、WebMストリーミングにはそれほど多くはありません。

有用なリンクがあれば幸いです。

答えて

2

基本的にWebMを流すことができるサーバーが必要です。

WowzaFlumotionは、いくつかの例です。

あなたは、私はUbuntuの中でそれをやった方法hereここ

+3

これらのリンクはように使うとするどのようなツールの面で有用であるが、私は実際には、クライアントとサーバ間のプロトコルの面でワイヤ上で何が起こるか知りたいと思いました。 Firebugの出力を見ると、クライアントがサーバーへのHTTPソケットを作成しているようです。サーバは、ソケットが開いたままである限り、ソケットを開いたままにし、ビデオデータをポンピングします。プレーヤーを一時停止することはできますが、ビデオはまだバックグラウンドでダウンロードされます。これはApple HTTPライブストリーミングやMicrosoft SilverLight SmoothStreamingとはまったく異なります。 –

1

はそれについての議論を読むことができます:

まず、あなたがそれを持っているバージョンを使用した場合でも(libvpxドライバが含まれるように、ソースからffmpegのを構築グローバルヘッダーを含める機能を追加しただけなので、webmをストリームするには最新のものが必要です(今月)。私はUbuntuのサーバーとデスクトップでこれを行いました。this guideは、他のOSの使い方を教えてくれましたcan be found here

あなたは次のようにこれが行われた私の場合には、ストリーミングのためにそれらを設定することができffserverのffmpeg /の適切なバージョンを得たら。

ビデオキャプチャデバイスの場合:

ffmpeg -f video4linux2 -standard ntsc -i /dev/video0 http://<server_ip>:8090/0.ffm 
  • その "-f video4linux2 - 標準NTSC -iは/ dev/video0" 部分は、入力ソースに応じて変更することができる(私はビデオのためのものですキャプチャカード)。

関連ffserver.conf抜粋:

Port 8090 
#BindAddress <server_ip> 
MaxHTTPConnections 2000 
MAXClients 100 
MaxBandwidth 1000000 
CustomLog /var/log/ffserver 
NoDaemon 

<Feed 0.ffm> 
File /tmp/0.ffm 
FileMaxSize 5M 
ACL allow <feeder_ip> 
</Feed> 
<Feed 0_webm.ffm> 
File /tmp/0_webm.ffm 
FileMaxSize 5M 
ACL allow localhost 
</Feed> 

<Stream 0.mpg> 
Feed 0.ffm 
Format mpeg1video 
NoAudio 
VideoFrameRate 25 
VideoBitRate 256 
VideoSize cif 
VideoBufferSize 40 
VideoGopSize 12 
</Stream> 
<Stream 0.webm> 
Feed 0_webm.ffm 
Format webm 
NoAudio 
VideoCodec libvpx 
VideoSize 320x240 
VideoFrameRate 24 
AVOptionVideo flags +global_header 
AVOptionVideo cpu-used 0 
AVOptionVideo qmin 1 
AVOptionVideo qmax 31 
AVOptionVideo quality good 
PreRoll 0 
StartSendOnKey 
VideoBitRate 500K 
</Stream> 

<Stream index.html> 
Format status 
ACL allow <client_low_ip> <client_high_ip> 
</Stream> 
  • 注これは、前述のffmpegのコマンドを実行するfeeder_ipのサーバ用に構成され、そしてSERVER_IPでサーバのサーバはclient_high_ipの一方を介してclient_low_ipするようserver_ipでmpegからwebmへの会話を処理します(下記参照)。

このffmpegのコマンドは、マシン上で実行される以前にSERVER_IPと呼ばれる(それは実際のMPEG処理 - > WEBM変換と異なるフィードにffserverに戻ってそれをフィード):

ffmpeg -i http://<server_ip>:8090/0.mpg -vcodec libvpx http://localhost:8090/0_webm.ffm 

これらがすべて起動されたら(最初にffserver、次にfeeder_ip ffmpegプロセス、次にserver_ip ffmpegプロセス)、http://:8090/0.webmでライブストリームにアクセスし、httpでステータスを確認する必要があります://:8090/

これは役に立ちます。

関連する問題