v4l2-ctl против Gucview: какой инструмент показывает более точные возможности USB-камеры?

Вопрос или проблема

Я использовал камеру Logitech 1280×720/30 на своем Ubuntu 22.04.

Я настроил немного кода на Python, чтобы использовать GStreamer для чтения видео с камеры. Однако я могу получить только 7.5 кадров в секунду, хотя она должна давать 30 fps. Это побудило меня провести некоторые исследования.

Когда я запускаю v4l2-ctl --list-formats-ext, я получаю:

[0]: 'YUYV' (YUYV 4:2:2)
    Размер: Дискретный 1280x720
            Интервал: Дискретный 0.133s (7.500 fps)
            Интервал: Дискретный 0.200s (5.000 fps)
[1]: 'MJPG' (Motion-JPEG, сжатый)
    Размер: Дискретный 1280x720
            Интервал: Дискретный 0.033s (30.000 fps)
            Интервал: Дискретный 0.040s (25.000 fps)
            Интервал: Дискретный 0.050s (20.000 fps)
            Интервал: Дискретный 0.067s (15.000 fps)
            Интервал: Дискретный 0.100s (10.000 fps)
            Интервал: Дискретный 0.200s (5.000 fps)

Однако, когда я использую GUI Guvcview, он предлагает мне гораздо больше вариантов для захвата видео 1280×720:

- YUYV - макс. частота кадров 15/2
- MJPG - макс. частота кадров 30
- RGB3 - макс. частота кадров 30
- BGR3 - макс. частота кадров 30 
- YU12 - макс. частота кадров 30
- YV12 - макс. частота кадров 30

Кажется, что только YUYV не способен на 30 fps?

Почему v4l2-ctl не предоставляет столько же вариантов, как Gucview? Другими словами, какие из этих видеовыходов действительно поддерживаются моей USB-камерой?

Ответ или решение

V4l2-ctl и Guvcview: как выбрать инструмент для точного отображения возможностей USB-камеры?

При работе с USB-камерами на Ubuntu 22.04 важно выбрать правильный инструмент для диагностики и конфигурации видео. В данном контексте. v4l2-ctl и Guvcview представляют собой два популярных инструмента для работы с камерами, однако у них есть свои особенности, которые могут влиять на точность отображения возможностей подключенной камеры, как в вашем случае с Logitech 1280×720/30.

Технические различия между v4l2-ctl и Guvcview

1. Степень детализации информации:

  • v4l2-ctl является консольным инструментом, который предоставляет сведения о поддерживаемых форматах и частоте кадров вашей камеры на уровне VIDIOC_ENUM_FMT, а также может быть ограничен параметрами, выставленными на уровне драйвера. Вывод, который вы получили от команды v4l2-ctl --list-formats-ext, показывает, что формат YUYV ограничен до 7.5 fps, в то время как формат MJPG поддерживает 30 fps.
  • Guvcview, с другой стороны, предлагает более интуитивно понятный интерфейс и может отображать больше возможных форматов и частот кадров, которые ваш веб-камера может поддерживать в теории. Это связано с тем, что Guvcview управляет параметрами захвата в реальном времени и может отслеживать возможности драйвера более эффективно.

2. Поддержка разных форматов:

  • Как показали ваши результаты, v4l2-ctl выделяет два формата: YUYV и MJPG, причем первый ограничен по частоте кадров. Guvcview предоставляет более широкий спектр форматов захвата (RGB3, BGR3, YU12, YV12), что позволяет лучше подбирать идеальные условия для захвата.
  • Это может привести к некоторым неясностям; например, если Guvcview предлагает формат, который напрямую не поддерживается вашим драйвером, это может быть связано с его возможностью более гибко интерпретировать возможности устройства.

Что выбрать для точной диагностики?

1. Надежность v4l2-ctl:

  • v4l2-ctl более низкоуровневый инструмент, который взаимодействует непосредственно с ядром Linux и драйверами, и поэтому может быть более точным в отображении реальных ограничений вашей камеры, особенно когда дело касается форматов, которые фактически поддерживаются.

2. Удобство Guvcview:

  • Guvcview предлагает более приятный интерфейс и большую вариативность форматов. Это делает его хорошим выбором для пользователей, которые ценят удобство работы и нуждаются в быстрой настройке параметров видео.

Заключение

Для целей точного определения возможностей вашей камеры рекомендуется использовать оба инструмента в совокупности. v4l2-ctl даст вам информацию о реальных ограничениях форматов и частоты кадров, поддерживаемых драйвером в данный момент, в то время как Guvcview позволит вам исследовать теоретически возможные форматы и параметры.

Если вы столкнулись с проблемой низкой частоты кадров (7.5 fps), проверьте, какую именно конфигурацию вы используете в GStreamer, и попробуйте переключиться на более подходящий формат, такой как MJPG, который, согласно результатам, поддерживает необходимую частоту кадров 30 fps.

Оцените материал
Добавить комментарий

Капча загружается...