Avconv dvswitch、v4l2loopback和gst启动到v4l2sink的帧速率过高

Avconv dvswitch、v4l2loopback和gst启动到v4l2sink的帧速率过高,avconv,gst-launch,Avconv,Gst Launch,我正在使用dvswitch测试两个网络摄像头: dvswitch -h localhost -p 2000 使用avconv生成dv流,并将其传送到dvsource文件: 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 20

我正在使用dvswitch测试两个网络摄像头:

dvswitch -h localhost -p 2000
使用avconv生成dv流,并将其传送到dvsource文件:

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命令捕获dvswitch生成的流,并通过v4l2sink输出将其传送到gst启动管道:

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发布的xvimagesink)可以显示这个虚拟设备上的视频,但ekiga等人不能这样做,因为帧速率非常大,而且是一个奇怪的数字

有没有办法将帧速率降低到15或30 fps?我试着用videorate的一些gst发布管道,但没有成功

非常感谢,


francesco

我运行的是Ubuntu12.04,内核3.2和v4l2loopback、dvswitch 0.8.3、avconv 0.8.10、gstreamer 0.10和vlc 2.0.8。通常,你可以使用类似于
的caps过滤器来控制框架视频/x-raw,宽度=1280,高度=720,帧速率=30/1'