Доступ К Потокам Веб-Камеры Через Shell

Я пишу приложение (работает на ARM Ubuntu), которое должно быть в состоянии сделать обработку изображений на видеопотоке с веб-камеры. Самый простой способ получить данные - через поток вывода в процессе, поэтому я планирую разместить дочерний процесс, выполнить команду и использовать выходные данные. Мой текущий план-использовать FFMPEG, но я могу использовать любой инструмент командной строки, который работает на ARM.
Мой вопрос состоит из двух частей:

  1. какая FFMPEG (или другая утилита, если есть лучше один) команда мне нужно использовать из командной строки, чтобы получить поток пиксельных данных с веб-камеры?
  2. в каком формате будут выводиться данные (предпочтительно только данные RGB, без кодировок или заголовков)? Мне нужно будет проанализировать его в своем приложении и узнать формат кодировки.

любая информация была бы оценена!

17
задан Wasabi Fan
12.03.2023 3:46 Количество просмотров материала 2527
Распечатать страницу

2 ответа

С FFmpeg и video4linux2 вы можете получить почти любой вход веб-камеры. Обязательно используйте последнюю версию ffmpeg С страница скачать или компиляция себе. Ваши размеры кадров камеры и частоты кадров можно проверить с помощью:

v4l2-ctl --list-formats-ext

например, если вы узнали, какую частоту кадров и размер изображения обеспечивает ваша веб-камера:

ffmpeg -f video4linux2 -r 25 -s 640x480 -i /dev/video0 \
-c:v rawvideo -f rawvideo -pix_fmt yuv420p -

это будет захватить 25 кадров в секунду видео на 640×480 пикселей с камеры на /dev/video0 и выводить необработанные кадры YUV, закодированные в формате плоских пикселей YUV 4:2:0, в стандартный вывод. The rawvideo кодировщик и формат позаботятся об этом. Не будет никаких заголовков.

что вы можете изменить здесь:

  • установить другую частоту или размер.

  • здесь - в конце посылает данные в stdout, но вы можете выбрать файл, а если вы хотите.

  • , чтобы увидеть, какие другие форматы пикселей доступно, run ffmpeg -pix_fmts. Их порядок байтов объясняется наfourcc.org. Если вам действительно нужны данные RGB (хотя я сомневаюсь, что это по умолчанию ваши выходы камеры), вы можете использовать -pix_fmt rgb24, например.

1
отвечен slhck 2023-03-13 11:34

определенно проверить параметры командной строки VLC В. Я не очень знаком с его потоками вывода, но я, кажется, читал, что он может делать почти то, что вы пытаетесь сделать.

Домашняя страница VLC

-1
отвечен tbenz9 2023-03-13 13:51

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

ffmpeg
linux
video
video-streaming
webcam
Вверх