#performance #video-streaming #gstreamer #frame-rate
#Производительность #потоковое видео #gstreamer #частота кадров
Вопрос:
Я использую следующую команду для конвейера gstreamer для видеопотока с веб-камеры:
gst-launch-1.0 v4l2src device=/dev/video0 ! videorate ! video/x-raw,format=I420,width=1920,height=1080,framerate=25/1 ! xvimagesink
К сожалению, отображаемый поток имеет очень низкую частоту кадров, по ощущениям, может быть, 3 кадра в секунду.
Я действительно не знаю, в чем здесь может быть проблема. Как я могу увеличить производительность для этого видеопотока?
Я уже пытался уменьшить значения ширины и высоты, чтобы снизить разрешение, но это не дало мне никаких заметных улучшений. Может ли проблема с форматом замедлять меня? Возможно, полезно знать, что я выбрал I420, поскольку они были необходимы для реализации nodewebRTC, где функция вызывалась только с кадрами этого формата.
Ответ №1:
Сначала проверьте возможности камеры, например, с v4l2-ctl --list-formats-ext -d /dev/video0
помощью . Может быть, это I420
требует преобразования. Если ваш компьютер не в состоянии выполнить преобразование, вы увидите сообщение типа:
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A lot of buffers are being dropped.
Если это так, рассмотрите возможность использования MJPG
для потоковой передачи с более высокой частотой кадров.