Изменить битрейт USB-камеры - PullRequest
0 голосов
/ 30 ноября 2018

Я использую ELP USB-камеру с выходом h264-кодека.

Ffmpeg-команда для приема видеопотока:

ffmpeg -i /dev/video1 -c:v copy output.ts

В результате у меня есть видео с битрейтом 4Mb - это значениеслишком высокая для моей задачи.

При использовании GSTreamer возникает та же самая ситуация:

gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-h264,width=1280,height=720,framerate=30/1 ! mpegtsmux ! filesink location=output.ts

Я знаю, что возможно изменить битрейт, если мы сначала декодируем поток h264, а затемзакодируйте его снова в h264.Эта операция требует слишком много ресурсов процессора моего устройства NanoPI.

Основной вопрос: Можно ли изменить битрейт USB-камеры без декодирования?

Спасибозаранее!

1 Ответ

0 голосов
/ 12 декабря 2018

Некоторые USB-камеры поддерживают протокол UVC, который позволяет настраивать более широкий диапазон функций, чем v4l2-ctl.

Например, чтобы изменить битрейт без декодирования:

gst-launch-1.0 uvch264src initial-bitrate=1500000 average-bitrate=1500000 iframe-period=1000 device=/dev/video0 name=src auto-start=true src.vidsrc ! video/x-h264,width=1280,height=720,framerate=30/1,profile=constrained-baseline ! h264parse ! mpegtsmux ! filesink location=output.ts

ВАЖНЫЙ!ELP USB-камера не поддерживает этот протокол.А вот всем известный Logitech C920-да и команда тестировалась этой камерой.

Если кто-нибудь знает HD USB камеры, поддерживающие кодек h.264 и протокол UVC, напишите мне, буду очень признателен.

...