Изменить битрейт USB-камеры
Я использую 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-камеры без декодирования?
Заранее спасибо!
0 ответов
Некоторые 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, напишите мне, буду очень признателен.