Raspberry Pi:Операционная система/Raspbian OS/Программы/Камера

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


// статья ещё не оформлена должным образом

// понять и простить :P

Камера-модуль Raspberry Pi[1]

В этом документе описывается использование трех камера-приложений для Raspberry Pi (на 8 января 2015 года).

Эти приложения – raspistill, raspivid и raspistillyuv. Первое и третье очень похожи друг на друга (они отвечают за захват изображения), тогда как задача raspivid – захват видео.

Все три приложения управляются при помощи командной строки и написаны с использованием библиотеки MMAL, которая запускается через OpenMAX (при помощи MMAL систему использовать проще, чем при помощи OpenMAX). Тут стоит отметить, что MMAL – это именно Broadcom’овский API, использующийся на системах Videocore 4.

Эти приложения используют четыре компонента OpenMAX (MMAL) – камеру, предпросмотр, кодировщик и null_sink. Если конкретнее, то все приложения используют камера-компонент, raspistill – Image Encode (кодировщик для фото), raspivid – Video Encode (кодировщик для видео). А вот raspistillyuv кодировщика не использует – оно отправляет результат в формате YUV или RGB напрямую от камеры в файл.

Предпросмотр опционален, и его можно использовать для либо на весь экран, либо направить на отдельную прямоугольную область экрана. Если предпросмотр отключен, в дело вступает компонент null_sink, который как бы «впитывает» кадры, предназначенные для предпросмотра. Это необходимо, т.к. камера генерирует кадры для предпросмотра вне зависимости от того, будут ли они потом показаны на экране или нет – это необходимо для расчета настроек экспозиции и баланса белого.

Вдобавок можно пренебречь опцией имени файла – в этом случае система сделает предпросмотр, однако файла создано не будет, а результат будет перенаправлен на стандартный вывод. Если вам требуется помощь касаемо какого-либо из этих приложений, просто впишите его название в командной строке.

Настройка

Смотрите на [Raspberry Pi:Настройка/Camera Config|этой странице].

Неисправности

Смотрите здесь.

Наиболее распространенные опции командной строки

Окно предпросмотра

--preview,  -p

Позволяет задать размер и расположение окна предпросмотра на экране. Учтите, что оно будет наложено поверх всех остальных окон/графики.

--fullscreen,   -f

Окно предпросмотра растягивается на весь экран. При этом соотношение сторон останется неизменным, поэтому по краям могут быть черные прямоугольники.

--nopreview,    -n

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

--opacity,  -op

Задает прозрачность окна предпросмотра. «0» – полностью невидимо, «255» – полностью видимо.

Управление камерой

--sharpness,    -sh

Задает резкость изображения. Варьируется от «-100» до «100». По умолчанию выставлено на «0».

--contrast, -co

Задает контрастность изображения. Варьируется от «-100» до «100». умолчанию выставлено «0».

--brightness,   -br

Задает яркость изображения. По умолчанию выставлено «50». Варьируется от «0» до «100». «0» – это черный, «100» – это белый.

--saturation,   -sa

Задает цветовую насыщенность. Варьируется от «-100» до «100». По умолчанию выставлено «0».

--ISO,  -ISO

Задает значение ISO, которое будет использоваться для захвата изображения. Варьируется от «100» до «800».

-vstab,    -vs

Включает стабилизацию видео. Очевидно, что используется только для видео.

--ev,   -ev

Задает величину коррекции экспозиции (выдержки). По умолчанию выставлено «0». Варьируется от «-10» до «+10».

--exposure, -ex

Задает режим экспозиции. Тут доступны следующие опции:

  • auto (автоматический)
  • night (ночной) – настройки для ночной съемки
  • night preview (ночной предпросмотр)
  • backlight (фоновая подсветка) – настройки для съемки объекта с фоновой подсветкой
  • spotlight (точечное освещение)
  • sports (спортивный) – настройки для съемки разного рода спортивной активности (быстрая выдержка и т.д.)
  • snow (снежный) – настройки, оптимизированные для съемки в заснеженных локациях
  • beach (пляж) – настройки, оптимизированные для съемки на пляже
  • verylong (очень длинная выдержка)
  • fixedfps (фиксированное количество кадров в секунду)
  • antishake (антитряска)
  • fireworks (фейерверки)

Учтите, что не все эти режимы могут быть реализованы на практике – все зависит от настроек камеры.

--awb,  -awb

Настройки для автоматического баланса белого. Доступны следующие опции:

  • off (выключен) – выключает вычисление баланса белого
  • auto (автоматический) – по умолчанию
  • sun (солнце)
  • cloud (облака)
  • shade (тень)
  • tungsten и incandescent (лампа накаливания) – режимы для съемки в условиях освещения лампой накаливания
  • fluorescent (люминесцентные лампы) – режимы для съемки в условиях освещения люминесцентными лампами
  • flash (вспышка) – для съемки со вспышкой
  • horizon (горизонт)

Учтите, что не все эти режимы могут быть реализованы на практике – все зависит от типа камеры.

--imxfx,    -ifx

Задает эффект, накладываемый на изображение. Доступны следующие опции:

  • none (без эффектов) – опция по умолчанию
  • negative (негатив)
  • solarize (соляризация)
  • posterise (постеризация)
  • whiteboard (эффект «белой доски»)
  • blackboard (эффект «черной доски»)
  • sketch (эскизный стиль)
  • denoise (снижение шума)
  • emboss (рельефное тиснение)
  • oilpaint (эффект масляной краски)
  • hatch (штриховка)
  • ручка (gpen)
  • pastel (пастель)
  • watercolour (акварель)
  • film (пленка)
  • blur (размытие изображения)
  • saturation (цветовая насыщенность)
  • colourswap (замена цвета) – реализован не полностью
  • washedout (обесцвечивание) – реализован не полностью
  • posterise (постеризация) – реализован не полностью
  • colourpoint (цветовые точки) – реализован не полностью
  • colourbalance (цветовой баланс) – реализован не полностью
  • cartoon (эффект «омультяшивания») – реализован не полностью

Учтите, что не все из этих настроек могут быть доступны – зависит от ситуации.

--colfx,    -cfx

Задает U и V параметры (значения варьируются от «0» до «255»), которые отвечают за U и V каналы изображения. Например, результатом команды «--colfx 128:128» станет монохромное изображение.

--metering, -mm

Указывает режим замера экспозиции, используемый при предпросмотре и захвате изображения. Доступны следующие опции:

  • average (усредненный) – яркость всех частей кадра учитывается в равной степени
  • spot (точечный) – измеряется яркость небольшого участка кадра
  • backlit (фоновая подсветка)
  • matrix (матричный)
--rotation, -rot

Задает угол поворота картинки в видоискателе и на итоговом изображении. Варьируется от «0» до «359» градусов, но из-за аппаратных ограничений поддерживаются только три опции – «0», «90», «180» и «270» градусов.

--hflip,    -hf

Горизонтально переворачивает картинку на предпросмотре, а затем сохраняет ее.

--vflip,    -vf

Вертикально переворачивает картинку на предпросмотре, а затем сохраняет ее.

--roi,  -roi

Позволяет задать «область интереса», т.е. область сенсора, которая будет использоваться в качестве источника для предпросмотра и захвата изображения. Вам надо задать X и Y для левого верхнего угла, а также ширину и высоту – в нормализованных координатах (0.0-1.0). Таким образом, чтобы задать «область интереса», левый верхний угол которой будет в центре датчика, а ширина и высота будут составлять четверть датчика, нужно вписать следующее – «-roi 0.5,0.5,0.25,0.25».

--shutter,  -ss

Задает длительность выдержки (в микросекундах). В данный момент существует верхний предел в размере около 6000 микросекунд (6 секунд), и сверх этого предела поведение выдержки может быть непредсказуемым.

--drc,   -drc

Меняет настройки сжатия динамического диапазона (dynamic range compression или DRC), добавляя больше темных областей и уменьшая количество светлых. Позволяет улучшить качество снимка в условиях слабого освещения. Доступны следующие опции:

  • off (выключен)
  • low (низкий)
  • medium (средний)
  • high (высокий)

По умолчанию DRC находится в состоянии «off».

--stats,    -st

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

--awbgains, -awbg

Задает усиление синего и усиление красного (числами с плавающей точкой). Применяется, когда -awb находится в выключенном состоянии («off»). Делается это, например, так – «-awbg 1.5,1.2».

--mode, -md

Задает определенный режим работы сенсора, отключая автовыбор. Доступные опции:

Режим Размер Соотношение сторон Количество кадров в секунду Поле обзора Биннинг
0 автовыбор
1 1920 х 1080 16:9 1 - 30 Частичное Нет
2 2592 х 1944 4:3 1 - 15 Полное Нет
3 2592 х 1944 4:3 0,1666 - 1 Полное Нет
4 1296 х 972 4:3 1 - 42 Полное 2х2
5 1296 х 730 16:9 1 - 49 Полное 2х2
6 640 х 480 4:3 42,1 - 60 Полное 2х2 плюс скиппинг
7 640 х 480 4:3 60,1 - 90 Полное 2х2 плюс скиппинг
--camselect,   -cs

Выбирает, какую камеру использовать (в системе с несколькими камерами). Используйте «0» или «1».

Спецнастройки для приложений

raspistill

--width,   -w

Задает ширину изображения.

--height,   -h

Задает высоту изображения.

--quality,  -q

Задает качество изображения, варьируется от 0 до 100. Если поставить «100», на выходе будет практически несжатое видео, но достаточно хорошее качество дает и значение «75».

--raw,   -r

Эта опция добавляет сырые байеровские данные (raw Bayer data) от камеры в метаданные JPEG.

--output,   -o

Указывает имя итогового файла. Если имя указано не будет, файл не сохранится. Если имя файла будет «-», все итоговые данные будут отправлены на стандартный вывод.

--latest,   -l

Создает связь в файловой системе между последним кадром и указанным именем файла.

--verbose,   -v

Выводит сообщения с отладочной информацией во время работы программы.

--timeout,   -t

Программа будет длиться указанное время, а затем сделает снимок и выключится. Если время не указано, оно выставляется на 5 секунд.

--timelapse,   -tl

Задает время между снимками в миллисекундах. Имейте в виду, что там, где указывается имя файла, нужно вписать «%04d» – оно станет основой для счетчика кадров. Например, если вписать...

-t 30000 -tl 2000 -o image%04d.jpg

...то камера будет делать снимки каждые 2 секунды на протяжении 30 секунд, а итоговые изображения будут называться «image0001.jpg», «image0002.jpg», «image0015.jpg» и т.д. То есть «%04d» означает, что к имени файла будет добавлено 4-значное число с начальным нулем. Аналогично, если использовать конструкцию «%08d», то к имени файла будет добавлено 8-значное число с начальным нулем. Если в опции -tl будет введено «0», приложение будет делать снимки с максимально быстрой скоростью. Также имейте в виду, что минимальная пауза между снимками должна составлять 30 миллисекунд, чтобы система успевала заниматься выдержкой.

--thumb,   -th

Задает размеры картинки-миниатюры, вставленной в JPEG-файл. Если этот параметр указан не будет, то система сделает миниатюру размерами 64х48 и с качеством 35.

Если будет указано «--thumb none», в файле не будет вставлено никакой «миниатюрной» информации. Это слегка уменьшит размер файла.

--demo,   -d

Эта команда включает режим демонстрации – поочередно запускает ряд некоторых опций камеры, но никакого изображения не захватывает. Демо закончится по истечении указанного времени и независимо от того, все ли опции камеры были запущены. Время между циклами указывается в миллисекундах.

--encoding,   -e

Задает кодировку для итогового файла. Доступные варианты – jpg, bmp, gif и png. Имейте в виду, что ускоренные форматы (GIF, PNG, BMP) будут сохраняться гораздо дольше JPG, который ускоряется аппаратно. Также учтите, что если вы решили кодировать файл, то индекс с именем файла полностью игнорируется.

--exif,   -x

Позволяет добавлять к JPEG-изображениям специфические EXIF-теги (в формате «параметр=значение»). Всего можно добавить до 32 тегов. Это может пригодиться в случае, если вам, например, нужно добавить GPS-метаданные. Например, чтобы указать долготу, можно вписать следующее:

--exif GPS.GPSLongitude=5/1,10/1,15/1

Это значит, что долгота составляет 5 градусов, 10 минут, 15 секунд. Более подробно о доступных тегах читайте в документации об EXIF. Поддерживаемые теги перечислены ниже:

IFD0.< or IFD1.< ImageWidth, ImageLength, BitsPerSample, Compression, PhotometricInterpretation, ImageDescription, Make, Model, StripOffsets, Orientation, SamplesPerPixel, RowsPerString, StripByteCounts, Xresolution, Yresolution, PlanarConfiguration, ResolutionUnit, TransferFunction, Software, DateTime, Artist, WhitePoint, PrimaryChromaticities, JPEGInterchangeFormat, JPEGInterchangeFormatLength, YcbCrCoefficients, YcbCrSubSampling, YcbCrPositioning, ReferenceBlackWhite, Copyright>
EXIF.< ExposureTime, FNumber, ExposureProgram, SpectralSensitivity, ISOSpeedRatings, OECF, ExifVersion, DateTimeOriginal, DateTimeDigitized, ComponentsConfiguration, CompressedBitsPerPixel, ShutterSpeedValue, ApertureValue, BrightnessValue, ExposureBiasValue, MaxApertureValue, SubjectDistance, MeteringMode, LightSource, Flash, FocalLength, SubjectArea, MakerNote, UserComment, SubSecTime, SubSecTimeOriginal, SubSecTimeDigitized, FlashpixVersion, ColorSpace, PixelXDimension, PixelYDimension, RelatedSoundFile, FlashEnergy, SpacialFrequencyResponse, FocalPlaneXResolution, FocalPlaneYResolution, FocalPlaneResolutionUnit, SubjectLocation, ExposureIndex, SensingMethod, FileSource, SceneType, CFAPattern, CustomRendered, ExposureMode, WhiteBalance, DigitalZoomRatio, FocalLengthIn35mmFilm, SceneCaptureType, GainControl, Contrast, Saturation, Sharpness, DeviceSettingDescription, SubjectDistanceRange, ImageUniqueID>
GPS.< GPSVersionID, GPSLatitudeRef, GPSLatitude, GPSLongitudeRef, GPSLongitude, GPSAltitudeRef, GPSAltitude, GPSTimeStamp, GPSSatellites, GPSStatus, GPSMeasureMode, GPSDOP, GPSSpeedRef, GPSSpeed, GPSTrackRef, GPSTrack, GPSImgDirectionRef, GPSImgDirection, GPSMapDatum, GPSDestLatitudeRef, GPSDestLatitude, GPSDestLongitudeRef, GPSDestLongitude, GPSDestBearingRef, GPSDestBearing, GPSDestDistanceRef, GPSDestDistance, GPSProcessingMethod, GPSAreaInformation, GPSDateStamp, GPSDifferential>
EINT.< InteroperabilityIndex, InteroperabilityVersion, RelatedImageFileFormat, RelatedImageWidth, RelatedImageLength>

Имейте в виду, что небольшое количество тегов будут указаны автоматически, но если вы при помощи командной строки впишите новые, то старые будут переписаны.

Если указать

«--exif none»

, то в файле не будет сохранено никакой EXIF-информации. Это слегка уменьшит размер файла.

--fullpreview,   -fp

Эта опция запускает окно предпросмотра при помощи режима захвата изображения в полном разрешении. Максимальное количество кадров в секунду в этом режиме составляет 15, а в окне предпросмотра поле обзора будет таким же, как и у захваченного изображения. Захват изображения должен происходить быстрее, т.к. тут не требуется смены режимов. В настоящий момент эта опция находится в разработке.

--keypress,   -k

Камера работает в течение времени, указанного опцией -t, а снимки можно делать при помощи нажатия на клавишу «Enter». Чтобы выйти из приложения до завершения указанного времени, нужно нажать «Х», а затем «Enter». Если в опции -t указать «0», этот режим будет работать до тех пор, пока пользователь не нажмет «X», а затем «Enter». Если воспользоваться опцией -v, то на экране появится окно для ввода пользовательских данных.

--signal,   -s

Камера работает в течение времени, указанного опцией –t, а снимки можно делать, отправляя процессу камеры сигнал USR1. Это можно сделать при помощи команды kill. ID процесса камеры можно узнать при помощи команды pgrep raspistill.

kill -USR1 <ID процесса raspistill>

raspistillyuv

Многие опции raspistiilyuv такие же, как и у raspistill. В этой секции будет показано, в чем заключаются отличия.

Неподдерживаемые опции:

--exif, --encoding, --thumb, --raw, --quality

Дополнительные опции:

--rgb,   -rgb

Эта опция сохраняет изображение не в YUV420, а в формате RGB c 8 битами на канал.

Имейте в виду, что буферы изображений, сохраняемых в raspistillyuv, подгоняются к таким горизонтальному и вертикальному размерам, чтобы они делились на 16 (в связи с чем в конце каждой линии могут быть неиспользованные байты). Кроме того, аналогичным образом в YUV-режиме подгоняется каждая плоскость Y, U и V.

raspivid

--width,   -w

Задает ширину итогового видео. Варьируется от 64 до 1920.

--height,   -h

Задает высоту итогового видео. Варьируется от 64 до 1080.

--bitrate,   -b

Задает битрейт (биты в секунду), т.е. 10 Мбит/с – это будет -b 10000000. Для H.264, 1080p30 требуется более высокий битрейт – 15 Мбит/с и выше. Максимальный битрейт – это 25 Мбит/с (-b 25000000), однако при съемке в режиме 1080p30 каких-то больших улучшений сверх 17 Мбит/с замечено не было.

--output,   -o

Указывает имя итогового файла. Если имя не указано, файл сохранен не будет. Если имя файла – это «-», все итоговые изображения будут отправлены на стандартный вывод.

--verbose,   -v

Выводит сообщения с отладочной информацией во время текущего запуска программы.

--timeout,   -t

Программа будет длиться указанное время, а затем сделает снимок и выключится. Если время не указано, оно выставляется на 5 секунд. Если задать «0», приложение будет работать до тех пор, пока его не остановят нажатием клавиш Ctrl+C.

--demo,   -d

Эта команда включает режим демонстрации – поочередно запускает ряд некоторых опций камеры, но никакого изображения не захватывает. Демо закончится по истечении указанного времени и независимо от того, все ли опции камеры были запущены. Время между циклами указывается в миллисекундах.

--framerate,   -fps

Задает количество кадров в секунду для видеозаписи. На данный момент минимальный параметр, который можно здесь указать – это 2 к/с, а максимальный – 30 к/с. Возможно, в будущем эти настройки изменятся.

--penc,   -e

После сжатия переключается на дисплей, показывая в окне предпросмотра появившиеся на видеозаписи дефекты. Если все работает как надо, перед сжатием будет показана исходная видеозапись. В будущих релизах эта функция, возможно, работать не будет.

--intra,   -g

Задает так называемый «период внутреннего обновления» (он же GoP или group of pictures) для записанного видео. Кодек H.264 использует опорные кадры (I-кадры), на которых базируется последующая группа кадров, и данная опция как раз указывает количество кадров между I-кадрами. Более высокое значение, указанное в этой опции, снизит размер итогового видео, а значение поменьше сделает видеопоток более устойчивым к ошибкам.

--qp,   -qp

Задает начальное значение квантизации (разбиения данных на подгруппы) для потока. Варьируется приблизительно от «10» до «40» и сильно влияет на качество записи. Более высокое значение снижает качество и уменьшает размер файла. Сочетая эту опцию с битрейтом в значении «0», можно настроить полностью изменчивый битрейт.

--profile,   -pf

Задает профиль H.264, который будет использоваться в кодировании. Доступны следующие варианты:

  • baseline
  • main
  • high
--inline,   -ih

Делает так, что к каждому I-кадру видеопотока подключаются заголовки PPS и SPS. Может потребоваться, например, при стриминге через Apple HLS. Эти заголовки не очень велики, поэтому не слишком сильно увеличивают размер файла.

--timed,   -td

Эта опция позволяет делать паузы, а затем возобновлять захват видео, опираясь на определенные временные интервалы. Необходимо указать два значения – On time и Off time. Первое – это период, в течение которого видео будет записываться. Второе – период, в течение которого будет длиться пауза. Общее время записи ограничивается опцией -t. Впрочем, продолжительность итоговой записи может слегка превышать время, указанное в –t. Это зависит от того, какие значения указаны в On time и Off time.

Например:
raspivid -o test.h264 -t 25000 -timed 2500,5000

...эта команда будет записывать видео продолжительностью 25 секунд. Сама же видеозапись будет состоять из сегментов по 2,5 секунд с паузами в 5 секунд. Таким образом, продолжительность итоговой видеозаписи должна составить всего 10 секунд, т.к. отмеченного времени (т.е. 25 секунд) хватит лишь на 4 сегмента по 2,5 секунды и 3 паузы по 5 секунд. 2,5 запись – 5 пауза – 2,5 запись – 5 пауза – 2,5 запись – 5 пауза – 2,5 запись

--keypress,   -k

При каждом нажатии на Enter запись будет либо остановлена, либо возобновлена. Если нажать на X, а потом на Enter, это остановит запись, а затем закроет приложение. Кроме того, сигналом для завершения записи будет служить и значение, указанное в опции -t, но лишь после того, как будет нажата клавиша Enter. Другими словами, запись будет вестись даже по истечении времени, указанном в опции -t, но до тех пор, пока пользователь не нажмет Enter.

--signal,   -s

Отправка сигнала USR1 процессу raspivid, чтобы переключаться между остановкой и возобновлением видеозаписи. Это можно проделать при помощи команды kill. Узнать ID процесса raspivid можно при помощи команды pgrep raspivid. То есть вся команда целиком будет выглядеть примерно так:

kill -USR1 <ID процесса raspivid>

Кроме того, сигналом для завершения записи будет служить и значение, указанное в опции -t, но лишь после того, как будет получен сигнал SIGUSR1. Другими словами, запись будет вестись даже по истечении времени, указанном в опции -t, но до тех пор, пока система не получит сигнал.

--initial,   -i

Задает, в каком состоянии камера начнет свою работу – будучи поставленной на паузу или сразу начинающей видеозапись. Соответственно, доступны следующие варианты: record («запись») и pause («пауза»). Заметьте, что если вы используете простой таймаут, и опция -t поставлена на pause, то никакого результата записано не будет.

--segment,   -sg

Эта опция разбивает видеозапись на отдельные сегменты, приблизительный размер которых указывается в миллисекундах. Если вы хотите, чтобы у этих сегментов были разные названия, вам надо добавить к имени файла что-то вроде %04d.

Например, команда...

--segment 3000 -o video%04d.h264

...будет создавать видеосегменты продолжительностью примерно 3 секунды, а их названия будут video0001.h264, video0002.h264 и т.д. Если все работает как нужно, между сегментами не должно быть пропущенных кадров (т.е. если сопоставить все эти сегменты вместе, то получившаяся видеозапись должна быть бесшовной), но точность продолжительности каждого сегмента зависит от периода внутреннего обновления, т.к. новый сегмент всегда будет начинаться с I-кадра. То есть, итоговые сегменты всегда будут либо равны, либо чуть длиннее указанного времени.

--wrap,   -wr

Задает максимальное количество сегментов, которые могут быть записаны. То есть, вы по-прежнему сможете записывать видеосегменты, но самый старый со временем будет переписан новым. Другими словами, если добавить к примеру выше опцию -wr и указать в ней значение «4», то система будет записывать четыре фрагмента (video0001.h264, video0002.h264, video0003.h264 и video0004.h264), и после того, как будет записан последний фрагмент (т.е. video0004.h264), счетчик сбросится до «1», но система не будет записывать пятый фрагмент, а перепишет самый первый (т.е. video0001.h264), затем второй, третий и так по кругу.

--start,   -sn

Если запись идет сегментами, эта опция дает возможность возобновить прежнюю запись с указанного сегмента. По умолчанию выставлено на «1».

Примеры

Съемка фото

По умолчанию фотоснимки делаются в самом высоком разрешении, которое поддерживает сенсор. Но его можно поменять при помощи опций -w и -h. Ждем 2 секунды (время указано в миллисекундах), а затем делаем снимок и сохраняем его под названием image.jpg:

raspistill -t 2000 -o image.jpg

Делает снимок в другом разрешении:

raspistill -t 2000 -o image.jpg -w 640 -h 480

Теперь сильно снижаем качество изображения, чтобы уменьшить размер файла:

raspistill -t 2000 -o image.jpg -q 5

Создаем окно предпросмотра, левый верхний угол которого будет в точке с координатами «100,100», а ширина и высота – по 300 и 200 пикселей, соответственно:

raspistill -t 2000 -o image.jpg -p 100,100,300,200

Деактивируем предпросмотр:

raspistill -t 2000 -o image.jpg -n

Сохраняем изображение в формате PNG (сжатие без потерь, но медленнее, чем у JPEG), Имейте в виду, что если вы решили кодировать файл, то индекс с именем файла полностью игнорируется.

raspistill -t 2000 -o image.png –e png

Добавляем к JPEG немного EXIF-информации. Тегу «Artist» присваиваем значение «Boris», а «GPS Altitude» – «123,5m». Имейте в виду, что при указании GPS-тегов вам нужно указать минимальный набор, включающий GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, GPSAltitude и GPSAltitudeRef.

raspistill -t 2000 -o image.jpg -x IFD0.Artist=Boris -x GPS.GPSAltitude=1235/10

Добавляем к фото эффект рельефного тиснения:

raspistill -t 2000 -o image.jpg -ifx emboss

Задаем значения для каналов U и V для YUV-изображения (128:128 позволяет сделать изображение, цвета которого ограничиваются оттенками серого):

raspistill -t 2000 -o image.jpg -cfx 128:128

На две секунды запускаем предпросмотр, фото не сохраняем:

raspistill -t 2000

Запускаем режим таймлапса, делая фото каждые 10 секунд в течение 10 минут (10 минут – это 600000 миллисекунд). Фотографии будут называться image_num_001_today.jpg, image_num_002_today.jpg и т.д., а последнее фото всегда будет доступно под названием latest.jpg.

raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l latest.jpg

Делаем снимок и отсылаем данные об изображении на стандартный вывод:

raspistill -t 2000 -o –

Делаем снимок и отсылаем данные об изображении в файл:

raspistill -t 2000 -o - > my_file.jpg

Делаем так, чтобы камера работала постоянно, а снимки делались при нажатии на клавишу Enter.

raspistill -t 0 -k -o my_pics%02d.jpg

Видеосъемка

Размер изображения и настройки предпросмотра здесь такие же, как и для фотосъемки. Размер по умолчанию для видеозаписи – это 1080p (1920 х 1080).

Записываем 5-секундный фрагмент с настройками по умолчанию (1080p30):

raspivid -t 5000 -o video.h264

Записываем 5-секундный фрагмент с указанным битрейтом (3,5 Мбит/с):

raspivid -t 5000 -o video.h264 -b 3500000

Записываем 5-секундный фрагмент с указанным количеством кадров в секунду (5 к/с):

raspivid -t 5000 -o video.h264 -f 5

Кодируем 5-секундный видеопоток и отправляем данные на стандартный вывод:

raspivid -t 5000 -o -

Кодируем 5-секундный видеопоток и отправляем данные в файл:

raspivid -t 5000 -o - > my_file.h264

Коды ошибок

Описанные здесь приложения умеют сообщать в оболочку те или иные коды ошибок. Вот возможные варианты:

На языке C Код Описание
EX_OK 0 Приложение работает нормально
EX_USAGE 64 Некорректный параметр командной строки
EX_SOFTWARE 70 Ошибка камеры или ПО
130 Приложение закрыто клавишами Ctrl+C

См.также

Внешние ссылки