opencv (C++) 내에서 gstreamer 파이프 라인에 쓰려고합니다. 모든 설정이 끝났지 만 프로그램을 실행해도 출력이없고 오류도없고 코드에도 표시되지 않습니다. 단지 아무 것도하지 않습니다. "-vvv"를 사용하여 시도 했으므로 최대 결과는 표시되지 않습니다. 내 코드는 다음과 같습니다.Gstreamer Opencv에서 파이프 라인에 자동으로 쓰십시오.
#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
그런 다음 쉘 명령은 데이터를 내가 쉘 명령을 사용할 수 있습니다. 문제를 진단하기위한 다음 단계는 무엇입니까? 감사!
시스템 : 문제는 대문자처럼 보이는 있도록 엔비디아 젝슨 TX1은
그냥 인수를 찾았습니다 :! 가짜 덤프 = TRUE! 이제 파이프가 있습니다. -vvv appsrc! videoconvert! jpegenc! fakesink 덤프 = TRUE 데이터를 가져 오는 중입니다. Stil은 udp로는 아무 것도 얻지 못합니다. – Zock77
나는 당신이하는 일과 관련이 있을지도 모릅니다. 어떤 필터가 프레임에 적용되고 어떤 이미지 처리가 수행되는지 알고 싶습니다. 나는 더 많은 정보를 원한다면 질문을 올렸다. https://stackoverflow.com/questions/47848575/gstreamer-and-frame-image-processing-filtering –