在Qt+Opencv中导入Gstreamer视频
Import Gstreamer video in Qt+Opencv
我使用gstreamer通过无线网络流式传输我的网络摄像头我在电脑中使用Arm板进行流媒体和接收。想要导入qt中接收的视频,以便与opencv一起使用。
使用以下命令流式传输视频:
./capture -c 10000 -o | gst-launch-0.10 -v -e filesrc location=/dev/fd/0 ! h264parse ! rtph264pay ! tcpserversink host=127.0.0.1 port=8080
用于接收:
gst-launch udpsrc port=1234 ! "application/x-rtp, payload=127" ! rtph264depay ! ffdec_h264 ! xvimagesink sync=false
在qt中使用接收到的视频应该怎么办。我想用于图像处理。
您需要编写自己的接收应用程序,而不是使用gst启动。请参阅gstreamer.freedesktop.org上的文档,特别是应用程序开发手册http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html
对于在Qt窗口中使用视频,您可以使用GstXOverlay/GstVideoOverlay接口来告诉xImagesink在哪里绘制视频(窗口id)。
gstreamer中有一个opencv插件,它封装了opencv中的一些函数/过滤器。如果您感兴趣的函数没有实现,您可以将其封装在一个新的gstreamer元素中以使用它。或者,您可以编写一个缓冲区探针来修改应用程序中的缓冲区,并自己调用opencv进行处理。
从您的gst发布行中,我可以看到您使用的是0.10版本。如果可能的话,您应该考虑迁移到1.x版本,因为0.10已经过时并且没有关联。如果你必须坚持0.10,在寻找文档时要注意,确保你阅读的文档与你的版本相符。
最好的解决方案是使用QtGstreamer,以便在Qt环境中使用gstreamer捕获和流式传输视频。主要优点是,您可以将管道描述插入字符串中,库将为您进行硬编码。您将避免自己对所有管道组件进行编码。但是,您必须对自己的接收器进行编码,才能使用OpenCV捕获的帧。http://gstreamer.freedesktop.org/data/doc/gstreamer/head/qt-gstreamer/html/index.html
- 如何在c++中录制具有精确帧时间戳的视频
- 如何在QT中的自定义视频小工具t上绘制矩形
- Gstreamer 管道从命令 lne 到 c 代码
- 如何使用OpenCV-C++编写*.mp4视频?
- 开放 CV 中的动态内存分配,用于视频处理
- Gstreamer:每 5 秒使用多文件墨水保存图像/jpeg
- GStreamer在开始任何播放之前进行搜索
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- OpenCV QT,显示视频的帧(不使用while循环)
- FFmpeg——使用硬件加速进行视频解码
- 在 openCV 中手动停止视频
- 强制Qt相机视频格式
- OPENCV中的GSTREAMER不会通过UDP发送视频数据
- 使用 gstreamer 的应用程序和应用程序修改视频
- 将实时图像从ROS转换为GSTREAMER视频
- 在Qt+Opencv中导入Gstreamer视频
- 在qt中的gstreamer视频上覆盖小部件
- 如何将gstreamer 1.0视频元素添加到qt5应用程序中
- 列出gstreamer 1.0中可用于从ksvideosrc捕获视频的设备名称
- 流式视频从PtGrey相机使用GStreamer