2012-03-14 36 views
1

VLC Pythonバインディングをffmpeg(Exchange data between ffmpeg and video player参照)に接続しようとしているので、ffmpegをSTDOUTに出力し、a Python scriptで「捕捉」してHTTP経由で送信すると、良いアイデア。だから私はSimpleHTTPServerを使って小さなHTTPサーバーを作ったので、FFMpegからSTDINを取得し、それをWebに出力します。HTTP経由でffmpeg出力をストリーミング

これは私が使用しています構文は次のとおりです。

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

これが動作しているようです、私は、ストリームが、やビデオにアクセスすることができ、また音声が再生されています。私はVLCとWindows、VLC、MPlayerをLinux上で試してみましたが、成功しませんでした。単に実行する

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

が完全に動作します。だから問題は、私がstdinからWebサーバーにデータを書き込んでいるときのようです。私が間違っていることは何ですか?

+0

私はあなたのstdin2http.pyスクリプトで何かが間違っていると思っています。 –

+0

私はそれも考えていますが、何が間違っているのでしょうか?スクリプトは次のとおりです。http://pastebin.com/NDRtFhVp – ov1d1u

+0

vlcは単独でストリームできます。なぜffmpeg、pythonが必要ですか? – jfs

答えて

2

私はあなたのstdin2http.pyスクリプトで遊んだ。まず、シンプルなWebサーバー(webfsd)からHTTP経由でVLCにメディアファイル(私の場合はH.264の.mp4ファイル)をストリーミングすることができました。それから私は 'stdin2http.py < h264-file.mp4'を使って同じことを試みました。それはかかりませんでした。

私は2つのサーバー間のネットワーク会話の違いを調べるために 'ngrep'ユーティリティを使用しました。このアプローチを有効にしたい場合は、stdin2http.pyをよりスマートにしてHTTPコンテンツ範囲(ストリーム内のジャンプを可能にするために一定量のバッファリングデータがスクリプトに含まれる可能性があります)で作業する必要があります。 。

関連する問題