我正在尝试使用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上一个示例中的过滤器进行了大量组合,但没有一个帮助。
任何帮助都将受到高度赞赏!
答案 0 :(得分:0)
问题在于虚拟机运行在VirtualBox之上。更确切地说 - 我开启了3D加速,导致所有视频以2倍的速度播放。
通过设置--accelerate3d=off
来关闭3d加速有助于解决问题。