我试图从网络摄像头接收并显示udp live mjpeg - 网络视频流。
我可以通过使用Argument --demux=mjpeg
启动VLC,然后在网络流字段中键入udp://@:1234
来播放视频流。或者通过控制台行使用gstreamer:gst-launch -v udpsrc port=1234 ! jpegdec ! autovideosink
。我的Cam拥有IP地址192.168.1.2
,并将流发送到地址192.168.1.1:1234
。
我尝试使用OpenCV捕获流:
cv::VideoCapture cap;
cap.open("udp://@192.168.1.1:1234");
我也试过了:
cap.open("udp://@:1234")
cap.open("udp://@localhost:1234")
cap.open("udp://192.168.1.1:1234")
cap.open("udp://192.168.1.1:1234/")
但是直到我按下ctrl+C
,函数才会挂起。当我使用ffmpeg时遇到同样的问题:ffmpeg -i udp://@192.168.1.1:1234 -vcodec mjpeg
我做错了什么?当我安装ffmpeg时,我无法安装依赖项libsdl1.2-dev
。这是问题吗?
如果是这样,有什么方法可以从套接字读取udp帧,然后解码JPEG图片并用OpenCV显示它?
我有来自飞思卡尔的内核3.0.35的操作系统Ubuntu linaro oneiric 11.10
答案 0 :(得分:0)
谢谢你。我通过安装更新版本的ffmpeg并使用ffmpeg的C-Api修复了这个问题