1

VLC Python Bindings を ffmpeg に接続しようとしているので (「Exchange data between ffmpeg and video player 」を参照)、ffmpeg を作成して RTSP ストリームを STDOUT に出力し、Python スクリプトでそれを「キャッチ」して HTTP 経由で送信することは、良いアイデア。そこで、SimpleHTTPServer を使用して小さな HTTP サーバーを作成し、そこから FFMpeg から STDIN を取得して Web に「出力」しました。

これは私が使用している構文です:

ffmpeg.exe -y -i rtsp://fms30.mediadirect.ro/live/utv/utv?tcp -acodec copy -vcodec copy -f flv - | \Python27\python.exe -u stdin2http.py

これは機能しているようです。ストリームにはアクセスできますが、ビデオにもオーディオも再生されません。Windows で VLC、Linux で VLC と MPlayer を試しましたが、成功しませんでした。単純に実行中

ffmpeg.exe -y -i rtsp://fms30.mediadirect.ro/live/utv/utv?tcp -acodec copy -vcodec copy -f flv - | vlc.exe -

完璧に動作します。したがって、問題は、標準入力から Web サーバーにデータを書き込んでいるときにあるようです。私が間違っていることは何ですか?

4

1 に答える 1

2

stdin2http.py スクリプトをいじってみました。まず、メディア ファイル (私の場合は H.264 .mp4 ファイル) を単純な Web サーバー (webfsd) から HTTP 経由で VLC にストリーミングできました。次に、「stdin2http.py < h264-file.mp4」を使用して同じことを試しました。かかりませんでした。

「ngrep」ユーティリティを使用して、2 つのサーバー間のネットワーク通信の違いを調査しました。このアプローチを機能させたい場合は、stdin2http.py をよりスマートにし、HTTP コンテンツの範囲を操作する必要があると思います (ストリーム内で発生する可能性のあるジャンプに対処するために、スクリプト内で一定量の stdin データをバッファリングする必要がある場合があります)。 .

于 2012-03-15T03:19:33.853 に答える