OpenCV VideoCaptureでビデオフレームをキャプチャしています。キャプチャは、私はこのようなフレームを使用することができる午前として正常に動作します:OpenCVからVideoWriterでGStreamerパイプラインを開く方法
cv::VideoCapture cap("v4l2src device=/dev/video1 ! videoscale ! videorate ! video/x-raw, width=640, height=360, framerate=30/1 ! videoconvert ! appsink");
cv::imshow("feed", frame);
は、私はまた、ネットワーク経由でストリームを送信したいとここで私はこだわっています場所です。何とか私はappsrcパイプラインの部分で失敗しています。ストリームをjpegにエンコードして、それをudpと送信したいと思います。これは私が持っているものです:
cv::VideoWriter writer
writer.open("appsrc ! videoconvert ! jpegenc ! jpegparse ! rtpjpegpay pt=96 ! udpsink host=192.168.1.25 port=5000", 0, (double)30, cv::Size(640, 360), true);
上記の行は何もしないように見えます。 は何もしません。私はwriter.open
一部に障害が発生していますどこ私は知らない
gst-launch-1.0 udpsrc port=5000 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96" ! rtpjpegdepay ! jpegdec ! decodebin ! videoconvert ! autovideosink
:また、このgstreamerのコマンドは何も表示されません。私はこの怒鳴るようなgstreamerのコマンドを実行すると、彼らは働く:
gst-launch-1.0 v4l2src device=/dev/video1 ! videoscale ! videorate ! video/x-raw, width=640, height=360, framerate=30/1 ! jpegenc ! jpegparse ! rtpjpegpay pt=96 ! udpsink host=192.168.1.25 port=5000
gst-launch-1.0 udpsrc port=5000 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96" ! rtpjpegdepay ! jpegdec ! decodebin ! videoconvert ! autovideosink
こんにちはサー!上記のコードを試してみましたが、VideoWriterを開いたときに何が問題なのですか?WindowsでGStreamerをインストールして環境パスに追加しました。 –
@BahramdunAdil 'cout << cv :: getBuildInformation()<< endl;'の出力は何ですか? – zindarod
@BahramdunAdilコメントを削除してください。出力をテキストファイルにコピーし、ファイルをどこかにアップロードし、リンクをここに投稿してください。これは2Kポイントのユーザーから受け入れられません! – zindarod