Я пытаюсь записать видео с разрешением 1080 @ 30FPS с веб-камеры Logitech C920. Просто, правда? Ну, видимо, нет.
Сначала я попробовал на своем рабочем столе 16.04 с помощью встроенного в Ubuntu приложения Cheese. Предварительный просмотр прекрасно воспроизводится при 30 кадрах в секунду, но как только я начинаю запись, частота кадров резко падает, вероятно, до ~ 15 кадров в секунду (я точно не знаю, поскольку Cheese не обеспечивает счетчик кадров в секунду).
Затем я снова попробовал на своем компьютере под управлением 16.04 использовать guvcview
. К сожалению, версия в репозиториях по умолчанию для 16.04, 2.02
, имеет ошибку , которая заставляет его записывать видео как один неподвижный кадр. Аааа ... тогда я установил 2.05
из неофициального PPA. Это решило вышеупомянутую ошибку, однако, когда я иду на запись видео (используя H.264 от аппаратного кодера камеры), первая или около того первая запись видео идеально, но затем частота кадров падает до 3–5 FPS.
Наконец, чтобы убедиться, что это не просто проблема с моим рабочим столом, я установил guvcview
версию 2.05
на свой ноутбук с 18.04, но еще раз, когда я иду на запись видео (используя H.264 от аппаратный кодер камеры) в первую секунду или около того видео отлично записывается, но затем частота кадров падает до 3–5 кадров в секунду.
libuvc
с Logitech C920? Я знаю, что проблема не в недостаточной мощности оборудования, поскольку у меня на рабочем столе 6-ядерный процессор AMD, а на ноутбуке - четырехъядерный процессор третьего поколения i7.
Я понял, как заставить это работать с guvcview
.
Я нашел этот пост , в котором упоминалось, что проблема заключалась в том, что guvcview
перекодировал поток с камеры. Почему это вызвало ужасное падение частоты кадров, для меня загадка, учитывая, что загрузка моего процессора была крайне низкой ...
В любом случае, исправление состоит в том, чтобы указать guvcview
использовать необработанный поток с камеры:
Обратите внимание, что Формат, который вы указываете программе перекодировать (или нет), полностью отделен от формата, который вы указываете для потоковой передачи с камеры:
Кроме того, с другой стороны, мне кажется, что я не знаю, как настроить огромное количество параметров H.264 в guvcview
, или что аппаратный кодер H.264 в Logitech C920 просто не тот хорошо. Я записал клип 1080p30 в формате MJPEG (что привело к примерно 60 Мбит / с данных) и транскодировал его в 10 Мбит / с H.264, используя Veags Pro на моем Windows-боксе, и результат значительно превзошел потоковую передачу с веб-камеры непосредственно в H .264, также со скоростью 10 Мбит / с.