我在使用cubieboard2和网络摄像头logitech c920的项目中工作了一个月,经过大量搜索和试用错误后,我决定使用gstreamer + v4l2loopback发送硬件编码的h264流,提供c920到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, 帧率=(分数)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
我很确定这个问题与此有关,但我不知道如何继续尝试解决这个问题,我们将非常感谢任何帮助。
我正在使用: