私は OpenCV と Gstreamer で大量のスレッドを調べましたが、問題を自分のエラーで解決することはできません。OpenCV で Gstreamer パイプラインを開こうとしています。GStreamer で OpenCV をビルドしましたが、OpenCV が正常にビルドされたことを示す CMake ステップで YES と表示されます。ストリームを取得するコマンドはコマンド ラインから正常に動作しますが、フレームを表示するだけで OpenCV でハングします。
サーバーの私の構文:
gst-launch-1.0 v4l2src device="/dev/video0" ! video/x-raw,format=I420,width=640,height=480,framerate=15/1 ! jpegenc ! rtpjpegpay ! udpsink host=<IP Address> port=5000
クライアント用 OpenCV での私の構文 (C++):
Mat frame;
//create video capture from video camera
VideoCapture cap("udpsrc port=5000 ! application/x-rtp,encoding-
name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink ! appsink");
cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
for(;;)
{
cap >> frame;
char c = (char)waitKey(1);
//![display]
imshow(window_name, frame);
frame.release();
}
エラー:
GStreamer プラグイン: 埋め込みビデオの再生が停止しました。モジュール autovideosink0-actual-sink-xvimage が報告: 出力ウィンドウが閉じられましたsrc/cap_gstreamer.cpp、383 行目は「cv::Exception」のインスタンスをスローした後に呼び出されて終了します。 383: エラー: (-2) GStreamer: 関数 icvStartPipeline でパイプラインを開始できません
私が少なくとも 20 回の Stack 投稿を行ってきましたが、OpenCV で Gstreamer を有効にしたことを除いて、私が開始した時点にはまだ近づいていません。さまざまなバージョンの OpenCV も試しました。
ありがとう