0

libx264 のストリーミング出力について質問があります。私のシナリオは、ウェブカメラからビデオをキャプチャし、x264 でエンコードしてから、データをフラッシュにストリーミングし、FLV として多重化するというものです。多重化には、libx264 budle に含まれている output/flv_bitstream.h を使用しています。私が行ったマルチプレクサの唯一の変更は、fwrite() im usig send() の代わりにソケット経由でデータを転送することです... エンコーディングライブラリは正常に動作しています。出力を保存すると(多重化されていても)、vlcプレーヤーで再生できます。しかし、ソケット経由のデータ転送になると、vlc と flash が連携しません。奇妙なことは、ソケットを介してvlcプレーヤーにデータを送信すると、送信が終了するまで待機してから、バッファからビデオを再生することです。しかし、私が必要としているのは、ライブ ストリームを再生することです。

また、flvファイルを読み込んで、タグごとにフラッシュタグのvlcに送信しようとしましたが、正常に動作しています。

助言がありますか?

4

1 に答える 1

0

単純な http サーバーを実装し、着信要求に次のように応答します:
"HTTP/1.0 200 OK\r\n"
"Pragma: no-cache\r\n"
"Content-Type: video/x-flv\r\n"
" \r\n"
これらのそれぞれの後に、生の FLV ビットストリームが続く必要があります。
これにより、たとえばを使用してコンテンツをライブで消費できるようになります。VLC、flowplayer、...

また、「fwrite」ではなく「url_open_dyn_buf」/「url_close_dyn_buf」の使用を検討してください。参考までに ffserver を参照してください。

ソフィンのナダブ

于 2012-03-24T20:24:17.900 に答える