Как захватить поток H.264 камеры Logitech C920

2

Я использую веб-камеру Logitech C920 HD Pro с Macbook Pro 17 "(начало 2011 г.) и Mac OS Mavericks 10.9.5.

Я могу записывать видео с Quicktime 10.3, где у меня есть две опции для «качества» с этой камерой: высокая или максимальная.

Размер файла становится очень большим, особенно в режиме «максимум», где 80 секунд в черно-белом режиме (настройка цвета 0) уже занимают 2,6 ГБ.

Я думаю, что эта камера обеспечивает поток H.264, который уже должен быть сжат гораздо больше, но Quicktime, похоже, не может загружаться из этого потока.

Кроме того, качество видео выглядит довольно размытым и не совсем Full HD.

Я попытался установить Final Cut Pro, потому что там, где некоторые ссылки в сети, которые предоставили этот совет. С Final Cut Pro в его тестовой версии поставляется несколько кодеков, которые могут предоставить решение. Но Final Cut Pro больше не совместим с Mavericks.

Любые намеки, как захватить предварительно сжатый поток с камеры вместо сырья?

Ben
источник
1
Смотрите этот ответ (используйте VLC): stackoverflow.com/questions/30765700/...
Allan
1
Этот ответ интересен, но не относится к OS X. Поток импортируется в Linux, и, вероятно, он отличается от OS X. Кроме того, мне было бы интересно найти решение для Quicktime или другого «родного» приложения OS X.
Ben

Ответы:

1

Это частичный ответ, но, насколько я помню, C920 не транслируется в H264 по умолчанию. Я думаю, что по умолчанию используется MJPEG (что объясняет размытость), третий вариант - YUV.

Если вы следуете эта тема вы увидите, что мне пришлось изменить режим потоковой передачи, используя v4l2ctl (в Linux), чтобы получить поток H264. Предполагая, что у вас есть компьютер с Linux, где-то:

#this sets the C920 cam to H264 encoding, framerate 30/1:
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=1 

Надеемся, что конфигурация сохраняется после отключения веб-камеры, что позволяет использовать ее на OSX ...

Если вы заинтересованы в менее «нативном» решении, чем QuickTime, остальная часть потока описывает, как использовать gstreamer, с помощью потоковой передачи rtp или локального захвата. Я не пробовал это на OSX, но вы можете попробовать заменить v4l2src от osxvideosrc:

gst-launch-1.0 -vvv osxvideosrc \
! video/x-h264, width=1920, height=1080, framerate=30/1 \
! queue max-size-buffers=1 \
! matroskamux \
! filesink location=/tmp/video.mkv

... который должен дать вам файл Matroska.

sigkill
источник