openCV VideoCapture不能与gstreamer x264一起使用

时间:2014-06-18 10:22:46

标签: opencv gstreamer h.264 x264 mpeg-4

我希望在openCV中显示来自gstreamer的rtp / vp8视频流。

我已经有了一个有效的解决方案:

gst-launch-0.10 udpsrc port=6666 ! "application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)VP8-DRAFT-IETF-01,payload=(int)120" ! rtpvp8depay ! vp8dec ! ffmpegcolorspace ! ffenc_mpeg4 ! filesink location=videoStream

基本上它从UDP套接字中获取传入数据,解包rtp,解码vp8,传递给ffmpegcolorspace(我仍然不明白这是为了什么,我在gstreamer中到处都看到它。)

videoStream是我使用mkfifo创建的管道。另一方面,我有openCV代码:

VideoCapture cap("videoStream");

并使用cap.read()推送到Mat

我主要担心的是我在这里使用ffenc_mpeg4,我相信这会改变我的视频质量。我尝试使用x264enc代替ffenc_mpeg4,但我没有输出:openCV没有反应,gstreamer也没有反应,几秒后,gst-launch就停止了。

知道我可以使用什么而不是ffenc_mpeg4?我寻找"无损编解码器"在网上,但似乎我混淆了编解码器,包含,格式,压缩和编码等事情;所以任何帮助都会(非常)受到赞赏!

提前致谢!

0 个答案:

没有答案