如何将这个gst-launch命令从GStreamer 0.10转换为1.0?

时间:2015-12-13 00:38:14

标签: gstreamer

这将被转换:

gst-launch -v ximagesrc startx=0 starty=0 endx=800 endy=600 ! ffmpegcolorspace ! "video/x-raw-yuv,width=800,height=600,framerate=30/1" ! v4l2sink device=/dev/video0  

我找到了here

  

“ffmpegcolorspace”元素已替换为新元素   “视频转换”元素。

简单地将gst-launch替换为gst-launch-1.0而将ffmpegcolorspace替换为videoconvert是不够的,并产生错误:

  

警告:错误的管道:无法将videoconvert0链接到v4l2sink0

简单的gst-launch-1.0 videotestsrc ! ximagesink工作正常,而gst-launch-1.0 videotestsrc ! v4l2sink device=/dev/video0会产生不同的错误:

  

错误:来自元素   / GstPipeline:pipeline0 / GstVideoTestSrc:videotestsrc0:内部数据   流量错误。

1 个答案:

答案 0 :(得分:3)

首先,GStreamer改变了他们的限制方式,因此video/x-raw-yuv变为video/x-raw,format=YUV9(或许多其他格式之一)。因此,根据GStreamer 1.0,您的上限会出错。

其次,你可能会稍微调整你的管道。我猜你可以这样做:

gst-launch -v ximagesrc startx=0 starty=0 endx=800 endy=600 ! videoconvert ! v4l2sink device=/dev/video0

如果源和接收器之间的帧速率不匹配,则必须添加视频速率:

gst-launch -v ximagesrc startx=0 starty=0 endx=800 endy=600 ! videoconvert ! videorate ! video/x-raw,framerate=30/1 ! v4l2sink device=/dev/video0