opencv(C++)からgstreamerパイプラインに書き込もうとしています。私はそれをすべてセットアップしましたが、プログラムを実行すると出力もエラーもなく、コード内にも表示されません。それは何もしません。私は "-vvv"を使ってみましたので、結果は表示されません。ここに私のコード:Gstreamer OpencvのSilently Diesでパイプラインに書き込む
#include "opencv2/opencv.hpp"
#include <string>
#include <iostream>
#include <sstream>
#include <stdio.h>
using namespace cv;
using namespace std;
using namespace cv;
int main(int, char**)
{
const char* right_cam_gst = "nvcamerasrc sensor-id=0 ! video/x-raw(memory:NVMM),\
width=(int)640,\
height=(int)360,\
format=(string)I420,\
framerate=(fraction)10/1 ! nvvidconv flip-method=2 ! video/x-raw,\
format=(string)I420 ! videoconvert ! video/x-raw,\
format=(string)BGR ! appsink";
VideoCapture capture(right_cam_gst); // open the default camera
if(!capture.isOpened()) // check if we succeeded
return -1;
VideoWriter writer;
writer.open("-vvv appsrc ! video/x-raw,format=YUY2,width=640,height=480 ! jpegenc ! rtpjpegpay ! udpsink -vvv host=127.0.0.1 port=5000", 0, (double)10, Size(640, 360), true);
Mat distCoeffs;
Mat intrinsic;
cv::FileStorage storage("CamData.yml", cv::FileStorage::READ);
storage["distCoeffs"] >> distCoeffs;
storage["intrinsic"] >> intrinsic;
storage.release();
Mat image;
Mat imageUndistorted;
while(1)
{
capture >> image;
undistort(image, imageUndistorted, intrinsic, distCoeffs);
writer << imageUndistorted;
// imshow("win1", image);
imshow("win2", imageUndistorted);
waitKey(1);
}
capture.release();
return 0;
}
かなり簡単です。それは、ビデオをつかみ、それを歪ませず、imwriteとgstreamerパイプラインの両方にプリントします(ビデオはimwriteで表示されます)。私が実行した場合、ポート5000上のデータは絶対に存在しないことを見つけるためにnc -l 5000 -u
しかし:ポート上の
gst-launch-1.0 -v videotestsrc ! video/x-raw,format=YUY2,width=640,height=480 ! jpegenc ! rtpjpegpay ! udpsink host=127.0.0.1 port=5000
そして、シェルコマンドで表示データを、私はシェルコマンドを使用することができます。問題を診断するための次のステップは何ですか?ありがとう!
システム:NvidiaのJETSON TX1
引数が見つかりました:! fakesink dump = TRUE! さて、パイプで:-vvv appsrc!ビデオコンバート! jpegenc! fakesink dump = TRUE データが取得されています。しかし、スティルはudpで何も得ません... – Zock77
私は多分それがあなたがやっていることに関連している質問をしました。どのフィルタがフレームに適用され、どのような画像処理が行われているかを知りたい。私はあなたがより多くの情報を望むなら質問を掲示した。 https://stackoverflow.com/questions/47848575/gstreamer-and-frame-image-processing-filtering –