GStreamer Playbin скорость видео слишком высокая

Я пытаюсь создать виртуальную веб-камеру, используя 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, но ни одна из них не помогла.

Любая помощь будет высоко оценен!

1 ответ

Решение

Проблема заключалась в том, что виртуальная машина работала поверх VirtualBox. Если быть более точным - у меня было включено ускорение 3d, в результате чего все видео воспроизводились со скоростью 2x.

Отключение 3d ускорения настройкой --accelerate3d=off помог решить вопрос.

Другие вопросы по тегам