Изменить битрейт 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, напишите мне, буду очень признателен.

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