【问题标题】:Capture and play MJPEG - Network Video stream over UDP with OpenCV and ffmpeg使用 OpenCV 和 ffmpeg 捕获和播放 MJPEG - UDP 上的网络视频流
【发布时间】:2016-06-08 11:06:12
【问题描述】:

我正在尝试接收并显示来自网络摄像头的 udp 直播 mjpeg - 网络视频流。 我可以通过使用参数--demux=mjpeg 启动VLC,然后在网络流字段中键入udp://@:1234 来播放视频流。或者通过控制台线使用 gstreamer:gst-launch -v udpsrc port=1234 ! jpegdec ! autovideosink。我的摄像头的 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 显示它?

我有操作系统 Ubuntu linaro oneiric 11.10,内核是 Freescale 的 3.0.35

【问题讨论】:

  • 您是否尝试过“rtp://”或使用 .sdp 文件来描述视频流?
  • 你好,是的,我试过“rtp://”但没有成功。要使用 ffmpeg 接收流,我尝试使用 ffmpeg -i udp://192.168.1.1:1234 -f mpegts -vcodec mjpeg。抱歉,我不知道如何使用 .sdp 文件

标签: c++ opencv ffmpeg networkstream


【解决方案1】:

谢谢。我已经通过安装更新​​版本的 ffmpeg 并使用 ffmpeg 的 C-Api 解决了这个问题

【讨论】:

    猜你喜欢
    • 2013-02-07
    • 2020-11-21
    • 2012-10-18
    • 2016-07-31
    • 2012-07-30
    • 2012-10-05
    • 1970-01-01
    • 2013-03-02
    • 2013-07-12
    相关资源
    最近更新 更多