はそれについての議論を読むことができます:
まず、あなたがそれを持っているバージョンを使用した場合でも(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/
これは役に立ちます。
これらのリンクはように使うとするどのようなツールの面で有用であるが、私は実際には、クライアントとサーバ間のプロトコルの面でワイヤ上で何が起こるか知りたいと思いました。 Firebugの出力を見ると、クライアントがサーバーへのHTTPソケットを作成しているようです。サーバは、ソケットが開いたままである限り、ソケットを開いたままにし、ビデオデータをポンピングします。プレーヤーを一時停止することはできますが、ビデオはまだバックグラウンドでダウンロードされます。これはApple HTTPライブストリーミングやMicrosoft SilverLight SmoothStreamingとはまったく異なります。 –