К содержимому
  1. Главная
  2. Документация
  3. Камеры для Raspberry Pi
  4. libcamera и rpicam-apps

libcamera и rpicam-apps

Документация Arducam · перевод arducam-russia.ru

Введение

libcamera — новая программная библиотека для поддержки сложных систем камер непосредственно из операционной системы Linux. На Raspberry Pi она позволяет управлять камерой напрямую из открытого кода, работающего на процессорах ARM.

libcamera предоставляет приложениям API на C++: библиотека настраивает камеру, после чего приложение может запрашивать у неё кадры. Буферы изображений находятся в системной памяти, и их можно передавать напрямую кодерам фото (например, JPEG) или видео (например, H.264). Вспомогательные функции — кодирование или вывод изображения на экран — в задачи самой libcamera не входят.

В Arducam расширили поддержку камер для Raspberry Pi и доработали libcamera: с решением Pivariety и модифицированной версией libcamera доступны автофокус, внешний запуск, управление вспышкой (strobe) и автоматическая загрузка калибровочных параметров камеры.

СоветВ Raspberry Pi OS Bookworm программы захвата с камеры переименованы: префикс libcamera- заменён на rpicam-. Пока старые названия работают через символические ссылки, но переходите на новые как можно скорее. В версиях Raspberry Pi OS до Bookworm по-прежнему используются названия libcamera-*.

Picamera2 не поддерживается:

  • в образах на основе Buster и более ранних версий;
  • в образах Raspberry Pi OS Legacy;
  • в образах Bullseye и новее, где снова включён устаревший стек камеры.

Подробнее о libcamera

Подробнее о libcamera для Raspberry Pi — в официальном руководстве Raspberry Pi по ПО камер (Camera Software Guide — libcamera/rpicam).

libcamera — открытый проект сообщества Linux. Подробнее о нём — на официальном сайте libcamera.

Начало работы

ПримечаниеЕсли после sudo apt update && sudo apt upgrade вы хотите и дальше работать с камерами Arducam Pivariety, переустановите пакеты libcamera от Arducam: обновление системы заменяет доработанные Arducam пакеты libcamera стандартными пакетами Raspberry Pi. Для переустановки снова запустите скрипт установки по шагам ниже.

Шаг 1. Скачайте скрипт установки

wget -O install_pivariety_pkgs.sh https://github.com/ArduCAM/Arducam-Pivariety-V4L2-Driver/releases/download/install_script/install_pivariety_pkgs.sh 
chmod +x install_pivariety_pkgs.sh

Шаг 2. Установите libcamera

./install_pivariety_pkgs.sh -p libcamera_dev

Шаг 3. Установите libcamera-apps

./install_pivariety_pkgs.sh -p libcamera_apps
Устранение неполадокЕсли при установке libcamera возникает ошибка, обновите пакет командой ./install_pivariety_pkgs.sh -l:
./install_pivariety_pkgs.sh -l

rpicam-hello

rpicam-hello — аналог программы «hello world» для камеры. Она запускает камеру, показывает окно предпросмотра и больше ничего не делает (в Raspberry Pi OS до Bookworm по-прежнему работает команда libcamera-hello). Например:

rpicam-hello
Другие параметры и опции для Raspberry Pi — в официальной документации Raspberry Pi, раздел Camera Software: rpicam-hello.

rpicam-jpeg

rpicam-jpeg — простая программа для съёмки фото. В ней намеренно нет части дополнительных функций rpicam-still, которая старается полнее повторять raspistill. Поэтому код rpicam-jpeg заметно проще, а на практике она даёт многие из тех же возможностей (в Raspberry Pi OS до Bookworm по-прежнему работает команда libcamera-jpeg).

Снимок JPEG в полном разрешении:

rpicam-jpeg -o test.jpg
Другие параметры и опции для Raspberry Pi — в официальной документации Raspberry Pi, раздел Camera Software: rpicam-jpeg.

rpicam-still

rpicam-still очень похожа на rpicam-jpeg, но поддерживает больше параметров устаревшей программы raspistill (в Raspberry Pi OS до Bookworm по-прежнему работает команда libcamera-still). Как и раньше, один снимок делается командой:

rpicam-still -o test.jpg
Другие параметры и опции для Raspberry Pi — в официальной документации Raspberry Pi, раздел Camera Software: rpicam-still.

rpicam-vid

rpicam-vid — программа для записи видео. По умолчанию она использует аппаратный кодер H.264 Raspberry Pi, показывает окно предпросмотра и записывает закодированный поток в указанный файл (в Raspberry Pi OS до Bookworm по-прежнему работает команда libcamera-vid). Например, запись 10-секундного видео в файл:

rpicam-vid -t 10000 -o test.h264
Другие параметры и опции для Raspberry Pi — в официальной документации Raspberry Pi, раздел Camera Software: rpicam-vid.

rpicam-raw

rpicam-raw похожа на программу записи видео, но записывает необработанные кадры Байера прямо с сенсора. Окно предпросмотра она не показывает (в Raspberry Pi OS до Bookworm по-прежнему работает команда libcamera-raw). Запись raw-ролика длительностью 2 секунды:

rpicam-raw -t 2000 -o test.raw
Другие параметры и опции для Raspberry Pi — в официальной документации Raspberry Pi, раздел Camera Software: rpicam-raw.

Общие параметры командной строки

Следующие параметры действуют во всех программах rpicam-apps с одинаковым или схожим смыслом, если не указано иное.

--autofocus [=arg(=1)] (=0)           Trigger Autofocus once.

Для камер с моторизованной фокусировкой Arducam добавила параметры автофокуса: однократный и непрерывный автофокус.

Пример: непрерывная съёмка — 1 кадр в секунду в течение 5 секунд:

rpicam-still -t 5000 --datetime -n --timelapse 1000
--help,     -h      Print help information for the application

Параметр --help в любой программе выводит полный список параметров командной строки с кратким описанием каждого, после чего программа завершает работу.

--version           Print out a software version number

Все программы rpicam-apps при параметре --version выводят строку версии rpicam и rpicam-apps и завершают работу.

--list-cameras          List the cameras available for use

Параметр --list-cameras выводит список подключённых к плате камер, доступных программе, и режимы сенсора, которые поддерживает каждая камера.

Запросить цену

Укажите количество — пришлём коммерческое предложение.