3

我已经在 cubieboard2 和网络摄像头罗技 c920 的项目中工作了一个月,经过大量搜索和试验错误后,我决定使用 gstreamer + v4l2loopback 将提供 c920 的硬件编码 h264 流发送到 vlc 并添加 textoverlay这个程序。

当我尝试将 gstreamer 与 v4l2loopback 一起使用时,问题就出现了。如果我使用罗技的原始流可以正常工作:

gst-launch-1.0 -v v4l2src ! "video/x-raw,format=YUY2,width=640,height=480,framerate=30/1" ! queue ! v4l2sink device=/dev/video1 sync=0

也可以这样

gst-launch-1.0 -v -e uvch264src device=/dev/video0 name=src auto-start=true      src.vfsrc ! queue ! video/x-raw,format=\(string\)YUY2,width=320,height=240,framerate=10/1 ! v4l2sink device=/dev/video1 sync=0

但是当我使用 h264 流时:

gst-launch-1.0 -v -e uvch264src device=/dev/video0 name=src auto-start=true src.vidsrc ! queue ! video/x-h264,width=1920,height=1080,framerate=30/1 ! v4l2sink device=/dev/video1 sync=0

它不起作用,输出“流式传输任务已暂停,原因未链接(-1)”,奇怪的是程序输出的上限与我在管道上指定的上限不同:

/GstPipeline:pipeline0/GstUvcH264Src:src.GstGhostPad:vfsrc: caps = video/x-raw, format=(string)YUY2, width=(int)2304, height=(int)1536, pixel-aspect-ratio=(fraction )1/1, interlace-mode=(string)progressive, framerate=(fraction)2/1 /GstPipeline:pipeline0/GstUvcH264Src:src.GstGhostPad:vfsrc.GstProxyPad:proxypad0: caps = video/x-raw, format=( string)YUY2, width=(int)2304, height=(int)1536, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)2/1

我很确定问题与此有关,但我不知道如何继续尝试解决此问题,非常感谢任何帮助。

我在用着:

  • v4l2loopback (0.8.0)
  • Gstreamer 1.2.4
  • cubieboard2(手臂电脑)
  • 网络摄像头罗技 c920
4

0 回答 0