2

OPenCV (Emgu ) 2.4.x アプリをキャプチャして処理する必要があるマルチキャスト UDP ビデオ ストリームがあります (「クライアント」)。

クライアントでは、VLC (udp://xx.yy.zz.aaa:1234) を使用してストリームをキャプチャできますが、私のアプリはこの udp ストリームをキャプチャできません。私のコードは非常に単純です (

Capture cap = new Capture ("udp://@212.1.1.1:1234");

ps私は@で試してみましたが、そのアドレスでrtpも試しました。運が悪い:-/

OpenCV は UDP ストリームの「キャプチャ」を直接許可しますか? または、クライアントでVLCを実行して、ビデオをrtpまたはhttpまたはその他として再ストリーミングする必要がありますか....?

ありがとう。

4

2 に答える 2

5

私はついにこれを理解し、他の人を助けるかもしれないという希望を共有しました.

Capture cap = new Capture ("udp://@212.1.1.1:1234");

@記号を忘れないでください!

キャプチャは UDP ストリームで正常に作成されますが、キャプチャ プロパティにアクセスすると例外が発生し、エラーが発生します。

簡単に言えば、UDP ストリームはデバイス プロパティをストリーミングしていないように見えるため、別の場所で取得するか、コーディングする必要があるかもしれません。

他の注意点として、FPS (フレーム/秒) は信頼できないため、完全に正しくない場合でも、特にループでストリームをポーリングしている場合は、FPS を調整可能にする必要があるかもしれません。

HTH

于 2013-02-22T21:06:01.167 に答える
0
IplImage* frame;
CvCapture* pCapture;
pCapture = cvCaptureFromFile("udp://ip:port/path");
frame = cvQueryFrame(pCapture);

これは、videoInput ライブラリがない場合にも機能します。

于 2013-03-01T16:56:17.123 に答える