0

我正在尝试使用 GStreamer 和 v4l2loopback 创建虚拟网络摄像头。问题是我想用Playbin,但是用的时候视频速度太快了。例如,当我执行以下命令时会发生这种情况:

gst-launch-1.0 -v playbin uri=file:/vagrant/test.avi 
video-sink="videoconvert 
            ! videoscale 
            ! video/x-raw,format=YUY2,width=320,height=320 
            ! v4l2sink device=/dev/video0"

将“framerate=20/1”添加到上限会引发“未协商错误”,而将其设置为“30/1”可以工作,但无助于解决速度问题。

另一方面,执行以下命令时我的速度正常:

 gst-launch-1.0 -v filesrc location=/vagrant/test.avi 
       ! avidemux 
       ! decodebin 
       ! videoconvert 
       ! videoscale 
       ! "video/x-raw,format=YUY2,width=320,height=320" 
       ! v4l2sink device=/dev/video0

我用 Playbin 的最后一个例子中的过滤器尝试了很多组合,但没有一个有帮助。

任何帮助将不胜感激!

4

1 回答 1

0

问题在于在 VirtualBox 之上运行的虚拟机。更准确地说 - 我打开了 3d 加速,这导致所有视频都以 2 倍的速度播放。

通过设置关闭 3d 加速--accelerate3d=off有助于解决问题。

于 2018-06-12T07:09:24.307 回答