问题描述
我需要将来自 Jetson Nano 的流接收到我的 PC(Windows 10)上的 OpenCV 程序。
好的,我使用以下方法从我的设备 (Jetson Nano) 流式传输相机:
public static ExternalIncome create(Map<String,String> fields) {
ExternalIncome externalIncome = new ExternalIncome();
fields.forEach((k,v) -> {
switch (k) {
case "OPER_ID":
externalIncome.setoperationId(nullableLong(v));
break;
case "OPER_DATE":
externalIncome.setoperationDate(Utils.toOffsetDateTime(v));
break;
etc
我使用 Gstreamer(按照 that )安装了 OpenCV 并尝试了该命令
cv::VideoWriter gst_udpsink("appsrc ! video/x-raw,format=BGR ! queue ! videoconvert ! video/x-raw,format=BGRx ! nvvidconv ! nvv4l2h264enc insert-vui=1 ! video/x-h264,stream-format=byte-stream ! h264parse ! rtph264pay pt=96 config-interval=1 ! udpsink host=224.1.1.1 port=5000 auto-multicast=true",cv::CAP_GSTREAMER,fps,cv::Size (width,height));
它正在工作,不幸的是,无论我设置什么延迟,我仍然有相当大的延迟。 当我尝试使用 OpenCV 时
c:\gstreamer\1.0\msvc_x86_64\bin\gst-launch-1.0.exe udpsrc uri=udp://224.1.1.1:5000 auto-multicast=true ! application/x-rtp,media=video,encoding-name=H264 ! rtpjitterbuffer latency=300 ! rtph264depay ! decodebin ! d3dvideosink
我明白
cv::VideoCapture cap("udpsrc uri=udp://224.1.1.1:5000 auto-multicast=true ! application/x-rtp,encoding-name=H264 ! rtpjitterbuffer latency=300 ! rtph264depay ! decodebin ! videoconvert ! video/x-raw,format=BGR ! appsink",cv::CAP_GSTREAMER);
而 .isOpened() 给我错误。 我不知道为什么我安装错了?
我也尝试过使用 FFmpeg:
[ WARN:0] global F:\Code\opencv_4.5.1\opencv-4.5.1\modules\videoio\src\cap_gstreamer.cpp (734) cv::GStreamerCapture::open OpenCV | GStreamer warning: Error opening bin: no element "udpsrc"
[ WARN:0] global F:\Code\opencv_4.5.1\opencv-4.5.1\modules\videoio\src\cap_gstreamer.cpp (501) cv::GStreamerCapture::isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
我明白了:
setenv ("OPENCV_FFMPEG_CAPTURE_OPTIONS","protocol_whitelist;file,rtp,udp",1);
cap = cv::VideoCapture("test.sdp",cv::CAP_FFMPEG);
我没有 setenv(),所以我尝试了 this,但似乎有问题,知道吗?
外壳等效
[rtp @ 0000014dc1f83bc0] Protocol 'rtp' not on whitelist 'file,crypto,data'!
工作成功(有延迟但成功)。
我愿意改变任何东西来让它发挥作用!如果可以使用 FFmpeg/GStreamer/vlclib,我也可以更改 Jetson 端,感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)