2013-11-25 28 views
13

私は、簡単なオブジェクト検出を提供するためにウェブカメラを持つロボットを作っています。現在のところ、私はロボット上でホストされているWebページにビデオをストリームし、別のデバイスから見ることができるようにしたいと考えています。私はPythonで簡単なテストスクリプトを書いています(私は最終的にC++に移行します)。私のウェブカメラからストリームを取得して、そこから必要なものを実行できます。それで問題は、アプリが実行されている間にファイルにビデオを書き込むことができず、スクリプトを終了した後にのみファイルを書き込むということです。私はすでにウェブサーバを稼働させており、ファイルからビデオをホストするためにHTMLで基本コードを書くことができます。openCVビデオをHTML Webページにストリームするにはどうすればよいですか?

要約: openCVのみを使用してビデオをライブストリーミングできるPythonおよび/またはC++のopenCV2はありますか? そうでなければ、私はCVキャプチャオブジェクトまたはMatオブジェクトを取ってそれをストリームに書き込んでウェブページに入れることをお勧めするライブラリはありますか? HTMLでは、タグは動画をストリームするのに適していますか?

アドバイスをいただきありがとうございます、私はすべてのポインタを使用することができます*私は得ることができます!

私が与えたものより明確になった/コードの投稿/説明が必要な場合は、尋ねてください!

+0

githubで利用可能なJavaScript画像/動画ツールはありますか? CamanJS、Clmtrackr、JS Feat .. opencvからJSに行列を移植することは可能ですか?ロボットのプロセッサーは何ですか - ラズベリー・パイ、ビーグルボーン、インテル・エジソン、または何かが好きですか?おそらくフル機能のグラフィックスカードを搭載したマザーボード(本当に高速な処理用フレームレート...)? – zipzit

+0

こんにちは!どうやってこの問題を解決しましたか、同じ質問があります。ありがとう! –

+0

@BahramdunAdil、技術が変わった...私は今、OpenCV3にいると信じており、HTTPストリーミングと関連するプロトコルは長い道のりを歩んでいる。私は必ずあなたのために働く解決策はありませんが、rtmpストリーマーのようなビデオをストリーミングするための既存のフレームワークを試すことをお勧めします。がんばろう! – PyroAVR

答えて

1

thisおよびthisを読もうとしてください。

基本的に、OpenCVを使用してフレームをキャプチャし、ストリーミングプロトコルに合った特定のフォーマットにパックし、サーバーからHTML5を使用してページに配置する必要があります。 VLCやFFMepgを使ってcv :: Matをパックする必要があるかもしれません。これが役に立つと願っています。

+0

ありがとう、私はそれを試してみます。私は組み込みプラットフォーム(ビーグルボーン)上で走っているので、それがどうなるかを見てみましょう。私はあなたを掲載し続けるよ! – PyroAVR

+2

この問題を解決できましたか? –

2

のOpenCVとPythonのうち、フレームストリーミングの問題は次のスレッドで解決されています: Pipe raw OpenCV images to FFmpeg

これは私のために動作しませんでしたが、彼らはそれが彼らのためにしたと主張します。

私の場合にはうまくいかない理由は、いくつかの出力フレームでは、追加のバイトが追加されたか、または失われているようです。キャプチャのstdoutへの出力とFFMPEGへの入力の間です。したがって、バイト数はフレーム数に対応しません。なぜこれが当てはまるのか分かりません。私はWindows 7を使用しました。

これを試してみると、あなたの経験は何か聞こえるでしょう。私はまた、cv2を使ってcapture.pyの修正版を試してみましたが、同じ理由で失敗しました。実験室条件下では

0

あなたがフルイメージあなたは実験室条件であるように見える

を送信するので、単純な、まだ使用可能な解決策がある、ちょうどWebSocketをを使用してBase64にPNGのをストリーム。クライアント側(Webブラウザ)では、base64イメージを受信し、 <img>srcに直接ロードします。これは、実験室のシナリオでは非常にうまくいくものの、遅いですが動作します。

関連する問題