我正在使用dvswitch测试两个网络摄像头:
dvswitch -h localhost -p 2000
使用avconv生成dv流,将它们传递给dvsource-file:
avconv -y -f video4linux2 -s 640x480 -r 15 -i /dev/video0 -f s16le -ar 48000 -ac 2 -i /dev/zero -target pal-dv - | buffer -u 100 | dvsource-file -h localhost -p 2000 /dev/stdin
(仅针对一个网络摄像头的命令,使用缓冲区命令,因为命名管道会产生错误结果)
我可以看到并用dvswitch gui中的两个来源做图画,完全没有问题。我还可以使用dvsink-command来捕获dvswitch生成的流,并使用v4l2sink输出将其传输到gst-launch管道:
dvsink-command -h localhost -p 2000 -- gst-launch -v fdsrc fd=0 ! dvdemux ! dvdec ! tee name=t_vid ! queue ! v4l2sink sync=false device=/dev/video2
(尝试使用“v4l2sink sync = true device = / dev / video2”......)
用vlc打开/ dev / video2显示dvswitch生成的视频:
vlc v4l2:///dev/video2
但是ekiga,skype和xawtv在尝试打开video2环回设备时崩溃了!
使用vlc“工具 - >编解码器信息”菜单,我看到“打包yuv 4:2:2(yuy2)”,分辨率正确但帧率超过4.200(超过4倍1.000 ......),即使视频以正常速度显示。
我认为vlc和(gst-launch的xvimagesink)可以显示来自这个虚拟设备的视频,但是ekiga等人不能这样做,因为帧速率非常庞大而奇怪......
将帧速率降低到15或30 fps的想法?我尝试了一些带视频的gst-launch管道,但没有运气。
非常感谢,弗朗西斯