Как вращать камеру с помощью mjpg-streamer-experimental?

Я успешно установил mjpg-streamer-experimental отсюда я просто не могу понять, как установить параметр, который мне нужен, чтобы повернуть мою камеру на 180 градусов (у меня есть веб-камера, установленная вверх ногами для пользовательского крепления, которое я сделал).

Я использую Logitech C270. Я уже несколько часов ищу в Интернете решение этой проблемы и просто не могу найти то, что ищу. Не помогает и то, что я не очень хорошо разбираюсь в таких вещах.

Был бы очень признателен за некоторую помощь!

, 👍6


2 ответа


6

Обновлено: Теперь, установив Octopi самостоятельно, я обнаружил, что они облегчили поворот изображения прямо из интерфейса. Если вы откроете "Настройки" и посмотрите в разделе "Веб-камера и временной интервал", там есть настройки для поворота изображения по горизонтали или вертикали и поворота на 90 градусов.


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

Плагины "input_uvc" и "input_rapicam" имеют опции для поворота изображения. Если вы используете один из этих плагинов, ознакомьтесь с документацией по адресу input_uvc или input_raspicam (стоит отметить, что параметры ввода могут поддерживаться не всеми камерами). Вы должны иметь возможность выполнить следующую команду, чтобы получить поток, который повернут на 180 градусов:

mjpg_streamer -i 'input_uvc.so -rot 180'

Я не уверен, как вы управляете потоком, но возможно, что ваш клиент сможет выполнить ротацию. Например, если вы используете VLC, вы можете установить угол поворота, выполнив что-то вроде этого:

  • Откройте меню “Инструменты” и выберите “Эффекты и фильтры”.
  • В окне “Настройки и эффекты” на вкладке “Видеоэффекты” установите флажок “Преобразовать”.
  • Выберите поворот в раскрывающемся меню, а затем нажмите “Закрыть”.

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

Если ваш поток отображается через браузер, вы можете добавить некоторое форматирование CSS3 в элемент видео. Например, вы можете добавить идентификатор видеоэлемента в поток, а затем добавить в CSS следующее:

 #videoElement {
    transform: rotateZ(180deg);
    -webkit-transform:rotateZ(180deg); /* Safari and Chrome */
    -moz-transform:rotateZ(180deg); /* Firefox */ 
}

Что касается Octoprint, похоже, что Octoprint-это HTML-интерфейс, поэтому вы, вероятно, могли бы отредактировать разметку, чтобы использовать ротатекс преобразования CSS3. Это приведет к повороту изображения на клиентском конце (в браузере). Кстати, поиск в Интернете вашего кода ошибки также содержал некоторую потенциально полезную информацию.


,

Я получаю следующую ошибку при выполнении команды, которую вы опубликовали выше: libv4l2: ошибка настройки пиксельного формата: Устройство или ресурс заняты Не удалось установить формат: 1196444237 разрешение: 640x480 Не удалось выполнить инициализацию v4L2 !! выход со смертельным исходом i: сбой init_VideoIn Кажется, я получаю эту ошибку при настройке каких-либо параметров. Я запускаю Octoprint, если это имеет какое-то значение. Похоже, в Octoprint нет опции поворота., @John Abraham

У меня был опыт работы с mjpg-стримером напрямую, а не с осьминогом. Прости, что не смогла помочь. Но у меня есть запасной RPi и камера, и теперь мне интересно попробовать octoprint. Похоже, что Octoprint-это HTML-интерфейс, поэтому вы, вероятно, могли бы отредактировать разметку, чтобы использовать преобразование CSS3 rotateX. Это приведет к повороту изображения на клиентском конце (в браузере). Кстати, поиск в Интернете вашего кода ошибки также содержал некоторую потенциально полезную информацию., @GiF

Тем не менее я ценю ваш ответ. Информация просто кажется крайне скудной об этом конкретном форке mjpg-стримера. Поиск этой ошибки просто приводит ко мне кучу людей, у которых есть нерабочие веб-камеры, в то время как моя работает идеально, мне просто нужно повернуть ее на 180 градусов. Очень раздражает., @John Abraham


2

Из справки по входному плагину "raspicam" в этот плагин могут быть переданы следующие параметры:

[-fps | --framerate]...: set video framerate, default 5 frame/sec
[-x | --width ]........: width of frame capture, default 640
[-y | --height]........: height of frame capture, default 480
[-quality].............: set JPEG quality 0-100, default 85
[-usestills]...........: uses stills mode instead of video mode
[-preview].............: Enable full screen preview
[-timestamp]...........: Get timestamp for each frame
-sh : Set image sharpness (-100 to 100)
-co : Set image contrast (-100 to 100)
-br : Set image brightness (0 to 100)
-sa : Set image saturation (-100 to 100)
-ISO : Set capture ISO
-vs : Turn on video stablisation
-ev : Set EV compensation
-ex : Set exposure mode (see raspistill notes)
-awb : Set AWB mode (see raspistill notes)
-ifx : Set image effect (see raspistill notes)
-cfx : Set colour effect (U:V)
-mm : Set metering mode (see raspistill notes)
-rot : Set image rotation (0-359)
-stats : Compute image stats for each picture (reduces noise for -usestills)
-drc : Dynamic range compensation level (see raspistill notes)
-hf : Set horizontal flip
-vf : Set vertical flip

Параметр-rot позволяет поворачивать изображение.

,