- Настройка Веб-камеры в Линукс
- Настройка Веб-камеры в Linux
- Работа с веб-камерой в Linux
- Выводы
- Захват видео с USB камер на устройствах под управлением Linux
- Предыстория
- Ограничения
- HW и SW
- Предварительный анализ
- В поисках новых приключений
- Uvc2http
- Неожиданная проблема
- Другие проблемы и нюансы использования
- Результаты
- Использование
- Что дальше
- Программы для видеонаблюдения на Linux: Список лучшего ПО
- Производитель
- Распространение и его условия
- Возможности функционала. Популярное ПО на linux для организации видеонаблюдения.
- Место применения
- Выгода от использования Linux как ОС для ПО видеонаблюдения
Настройка Веб-камеры в Линукс
За последние несколько лет стоимость функциональности операционной системы Linux не сократилась, а даже выросла. Хорошая аппаратная поддержка — одна из последних вещей, которых Linux не хватает по сравнению с другими операционными системами. На самом деле это не ошибка сообщества Linux. Производители оборудования виноваты в том, что они не поддерживают свое собственное оборудование в операционных системах, отличных от проприетарных.
Разработчики сообщества Linux на самом деле делают чудеса с поддержкой аппаратного обеспечения, и я благодарю их за проделанную большую работу. Поддержка веб-камеры была когда-то скрытой в списке оборудования, поддерживаемого Linux. Но сегодня у нас есть видеозахват Video4Linux, поддерживаемый драйверами веб-камеры UVC и GSPCA, и большинство веб-камер успешно работают на наших Linux-ПК.
Это может быть очень запутанным для тех, кто только что установил Ubuntu, чтобы обнаружить, что его веб-камера работает, но что он не контролирует такие параметры, как яркость, контрастность, автоэкспозиция и т. д. Типичный пользователь собственной операционной системы использовал бы элементы управления, для настройки этих настроек. Но мы не отстаем от продвинутых разработчиков, потому что сообщество Linux предоставляет средства для управления нашими веб-камерами.
Позвольте мне представить приложения, которые я использую на своем компьютере Ubuntu с помощью Logitech E3500, Logitech E2500 и многих других веб-камер без названия, чтобы настроить их видео и другие настройки.
Настройка Веб-камеры в Linux
Как вы поняли, в этой статье мы поговорим про настройку веб-камеры в дистрибутивах Linux. Настройка Веб-камеры в Linux является очень простой и сейчас мы расскажем вам как это сделать, самым простым способом. Если у вас возникнут какие-то вопросы — пишите их в форме для комментариев. Мы обязательно подскажем вам, что и как нужно сделать еще более детально.
Сначала есть инструмент Gtk-v4l. Это в основном панель управления для веб-камеры и имеет все настройки, которые драйверы веб-камеры для других операционных систем обеспечивают для вашего веб-камеры Video4Linux.
Работа с веб-камерой в Linux
Также стоит отметить, что драйвера этих программ поддерживают таких производителей как:
- Samsung
- Genius
- Sony
- Tevion
- Trust
- MediaForte
- Micro Innovations
- Hercules
- Jenoptik
- Typhoon
- а также огромное количество других производителей.
Gtk-v4l не находится в репозиториях Ubuntu 17.10, поэтому вы должны добавить свой репозиторий в список источников. Вот команды для этого:
Второе приложение, которое я использую, называется Guvcview, и это что-то вроде Gtk-v4l plus Cheese. Вы можете управлять своими веб-камерами, записывать снимки, видео и многое другое. Guvcview, как Gtk-v4l, не находится в репозитории Ubuntu 17.10, поэтому вы должны сначала добавить его репозиторий для его установки:
На скриншоте выше вы можете увидеть пользовательский интерфейс Guvcview.
Я думаю, что эти два приложения — это средний пользователь, который должен контролировать свои веб-камеры в операционной системе Ubuntu Linux, вы согласны? если вы не являетесь средним пользователем и хотите управлять веб-камерой с помощью CLI с терминала, вы можете найти больше информации на нашем сайте.
Выводы
Настройка Веб-камеры в Linux является очень простой в любой современной версии Ubuntu. Мы рассказали вам про самые лучшие программы, которые являются очень удобными даже для новичка.
Если статья была для вас интересной, то поделитесь ссылкой на нее в своих социальных сетях. Это очень поможет в развитии нашего сообщества.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Захват видео с USB камер на устройствах под управлением Linux
Предыстория
- Видео в разрешении FullHD (1920Х1080) или HD (1280х720) и нормальная частота кадров (чтобы можно было играть).
- Игрушку я планировал отдать детям, поэтому нужен был автостарт и поддержка подключения/отключения камеры.
В общем хотелось что-то вроде этого:
Ограничения
Я не собирался искать решение, которое работает всегда и везде. Следующие ограничения меня вполне устраивали:
- Хороший WiFi сигнал.
- Ограниченное число подключений, приоритет отдавался случаю, когда есть всего один клиент.
- Камера поддерживает режим MJPG.
HW и SW
Предварительный анализ
Код UVC драйвера оказался готов к добавлению различного рода “специальных” решений, и я легко нашел место, где надо скорректировать размер буфера (функция uvc_fixup_video_ctrl()). Более того, драйвер поддерживает набор quirks, которые позволяют поддерживать камеры с разного рода отклонениями от стандарта UVC. В общем, разработчики драйвера сделали лучшее, что возможно для поддержки зоопарка камер.
Добавив коррекцию размера буфера, я получил стабильную работу в режиме 1280х720 и даже в режиме 1920х1080. Ура! Половина задачи решена!
В поисках новых приключений
Немного порадовавшись первой удаче, я вспомнил, что mjpg-streamer далек от совершенства. Наверняка можно сделать что-то простое, не такое универсальное как mjpg-streamer, но более подходящее для моих условий. Так я решил сделать uvc2http.
В mjpg-streamer мне не понравилось использование нескольких потоков и копирование буферов. Это определило архитектуру решения: 1 поток и никакого копирования. Используя non-blocking IO, это делается достаточно просто: захватываем кадр и без копирования отсылаем его клиенту. Есть небольшая проблема: пока мы отсылаем данные из буфера, мы не можем вернуть буфер обратно в очередь. А пока буфер не в очереди, драйвер не может положить в него новый кадр. Но если размер очереди > 1, то это становится возможным. Число буферов определяет максимальное количество подключений, которое можно гарантированно обслуживать. Т.е., если я хочу гарантированно поддерживать 1 клиента, то 3-х буферов достаточно (в один буфер пишет драйвер, из второго отсылаем данные, третий в запасе, чтобы избежать конкуренции с драйвером за буфер при попытке получить новый кадр).
Uvc2http
Uvc2http состоит из двух компонентов: UvcGrabber и HttpStreamer. Первый отвечает за получение буферов (кадров) из очереди и возврат их обратно в очередь. Второй отвечает за обслуживание клиентов по HTTP. Есть еще немного кода, который связывает эти компоненты. Подробности можно посмотреть в исходниках.
Неожиданная проблема
Все было замечательно: приложение работало и в разрешении 1280х720 выдавало 20+ кадров/сек. Я делал косметические изменения в коде. После очередной порции изменений я замерил частоту кадров. Результат был удручающий — меньше 15 кадров. Я бросился искать, что же привело к деградации. Я потратил, наверное, 2 часа в течение которых частота уменьшалась с каждым замером до значения 7 кадров/сек. В голову лезли разные мысли о деградации из-за долгой работы роутера, из-за его перегрева. Это было что-то непонятное. В какой-то момент я отключил стримминг и увидел, что просто один захват (без стримминга) давал те же 7 кадров. Я даже начал подозревать проблемы с камерой. В общем какая-то чушь. Дело было вечером и камера, повернутая в окно, показывала что-то серое. Дабы сменить мрачное изображение я повернул камеру внутрь комнаты. И, о чудо! Частота кадров увеличилась до 15 и я все понял. Камера автоматически подстраивала время экспозиции и в какой-то момент это время стало больше длительности кадра при заданной частоте. За эти два часа случилось следующее: сначала плавно темнело (это был вечер), а потом я повернул камеру внутрь освещенной комнаты. Направив камеру на люстру я получил 20+ кадров/сек. Ура.
Другие проблемы и нюансы использования
Результаты
Ниже табличка с результатами сравнения mjpg-streamer и uvc2http. Если коротко — есть значительный выигрыш в потреблении памяти и небольшой выигрыш в частоте кадров и загрузке CPU.
1280×720 | 1920×1080 | |||||||||||
VSZ, KB, 1 client | VSZ, KB, 2 clients | CPU, %, 1 client | CPU, %, 2 clients | FPS, f/s, 1 client | FPS, f/s, 2 clients | VSZ, KB, 1 client | VSZ, KB, 2 clients | CPU, %, 1 client | CPU, %, 2 clients | FPS, f/s, 1 client | FPS, f/s, 2 clients | |
Mjpg-streamer | 16860 | 19040 | 26 | 43 | 17.6 | 15 | 25456 | 25812 | 28 | 50 | 13.8 | 10 |
uvc2http | 3960 | 3960 | 26 | 43 | 22 | 19.6 | 7576 | 7576 | 28 | 43 | 15.5 | 12.2 |
Ну и конечно же видео, которое я сделал вместе с детьми:
Фото получившегося танка (получилось что-то вроде цыганской телеги):
Использование
Исходники находятся здесь. Для использования на PC Linux надо всего лишь собрать (при условии что вы не хотите патчить драйвер UVC). Утилита собирается с помощью CMake стандартным способом. Если же надо использовать в OpenWRT, то надо сделать дополнительные шаги:
- Скопировать содержимое директории OpenWrt-15.05 в корень репозитория OpenWRT. Эти файлы только для OpenWRT 15.05. Они описывают новый пакет для OpenWRT и патч для драйвера UVC.
- Если ваша камера также возвращает завышенный размер необходимого буфера, то надо добавить использование quirk UVC_QUIRK_COMPRESSION_RATE для вашей камеры в файле uvc_driver.c. Для этого надо сделать собственный патч для драйвера UVC. Как это сделать, описано здесь wiki.openwrt.org/doc/devel/patches. Вам необходимо добавить описание вашей камеры в массив uvc_ids. В качестве примера можно посмотреть на описание моей камеры:
Что дальше
Решение состоит из двух частей: патч драйвера и другой алгоритм стримминга. Патч драйвера можно было бы включить в новую версию ядра линукса, но это спорное решение, так как оно основано на предположении о минимальном коэффициенте сжатия. Утилита же, на мой взгляд, хорошо подходит для использования на слабых системах (игрушках, домашних системах видеонаблюдения), и ее можно немного улучшить, добавив возможность задавать настройки камеры через параметры.
Алгоритм стримминга можно улучшить так как есть запас по загрузке CPU и по ширине канала (я легко получал с роутера 50+ MBit подключая десяток клиентов). Также можно добавить поддержку звука.
Источник
Программы для видеонаблюдения на Linux: Список лучшего ПО
Неоспоримый факт, что сейчас Linux представляет собой единственную замену Windows. Эта операционная система доказала своё преимущество в организации видеонаблюдения за объектом. За счёт различного ПО можно осуществить контроль. Поскольку это несёт выгоду, и пользователю нет необходимости лицензировать каждый сервер и компьютер.
Linux собрал вокруг себя сформировавшуюся группу программистов, которая помогает улучшать систему. Поэтому данное ПО ждёт хорошее будущее. Также происходит непрекращающееся пополнение списка программ, относящихся к видеонаблюдению.
На данный момент список программ видеонаблюдения для Linux довольно большой. В него входят AVReg, Motion, ZoneMinder, MPV и многие другие.
Есть люди, которые не решаются отказаться от привычного ПО в пользу Linux. Это связано с тем, что они не знакомы с ним. Но не нужно долго раздумывать насчёт перехода, потому что Линукс считается понятной и несложной ОС. Легко устанавливается и настраивается. Также имеет меньше системных требований к программам, если сравнивать с иными ОС.
Производитель
Линукс не привязан к какому-то конкретному месту на земле. Отсутствует организация, имеющая абсолютное право на это ОС, и обобщённый центр, согласовывающий пользовательские действия. Его полученные программы – это результат кропотливой работы многих программистов. Каждый человек может подключиться к этому проекту. Первое появление Linux состоялось в 1991 году. Самая первый вариант этой операционной системы был создан юным программистом из Финляндии. Его имя – Линус Торвальдс. Проект сразу прославился после появление в сети. Это связано с:
- бесплатностью;
- безопасностью;
- надёжностью
- открытием исходного кода.
С помощью открытого кода есть возможность улучшить его и использовать в своих целях. Пользователь получает доступ к устранению дефектов, повышению функциональности за счёт ряда программ.
Пользователю Linux не нужна кнопка Reset, так как аппаратная часть выполняют свою работу без нареканий, зависаний и перегрузок. За счёт структуры, исключающей шанс попадания несущих вред программ, не существует вирусов для данной ОС. Установка программ против вирусов, замедляющих работу ОП и требующих обновлений, здесь не нужна.
Распространение и его условия
Разрешается заниматься распространением ОС Linux на бесплатной основе. Это является существенным преимуществом перед большой стоимостью лицензированных версий Windows. Установив Линукс, пользователь обзаведётся доступом к тысячам приложений. Для получения программы видеонаблюдения от Linux есть 3 варианта:
- Найти эту программу у ZoneMinder, LinuxDVR, Motion, которые занимаются её бесплатным распространением.
- Бесплатно загрузить версию с неполными функциями от Линия, Xeoma либо AVReg.
- Приобрести платную версию.
Для абсолютной уверенности пользователя в актуальности приобретаемого продукта стоит провести бесплатное испытание. В большинстве случаев даётся право тестировать продукт в течение 30 дней.
Возможности функционала. Популярное ПО на linux для организации видеонаблюдения.
Базирующиеся на ОС Линукс, программы, осуществляющие видеонаблюдение, обладают различными функциями и спецификой. Это обуславливает их использование на практике. Ниже представлен список лучшего ПО для видеонаблюдения на Linux.
AVReg представляет собой продукт, который способен создать видеорегистратор на основе ПК с ОС Linux. Его лицензирование несвободно. Но он может бесплатно устанавливаться и применяться для некоммерческих дел. Содержит не так много функций, но для большинства задач подойдет, как нельзя лучше. Он поможет устроить наблюдение в квартире либо в доме загородом. Плюсом этого приложения является использование русского языка в документации и меню.
LinuxDVR – программа, созданная отечественными специалистами от фирмы «Сетевые информационные системы». Справляется с формированием распределённых систем и отдельного видеорегистратора. Лёгкая адаптация к сети происходит за счёт гибких настроек. Обладает форматом MJPEG. Поддержание 32 аналоговых каналов возможно на одном ПК, которые передают чёрно-белые либо цветные видеосигналы. Присутствует функция обнаружения движения и реагирования на то, что происходит перед камерой. Нет ограничений по поводу устранения наблюдателей. События попадают под протокол. Осуществлять поиск в архиве не составляет труда.
ZoneMinder является наиболее профессиональной программой по сравнению с AVReg. Поскольку обладает большим функционалом, проводит серьёзный контроль. Однако есть и минус. Только пользователь с неплохим знанием английского языка способен работать в данной программе. Распространение программы проходит в наборе пакетов, относящихся к главным Linux дистрибутивам.
NetAvis Observer считается приложением, созданным для работы с видео, которое имеет интегрированную информационную аналитику. В целом программа представляет собой сильную профессиональную платформу, отвечающую за организацию видеонаблюдения над разными объектами. Программы адаптируются специально для пользователя благодаря огромному выбору настроек и высокой производительности. Основные видео форматы поддерживаются ПО. Данное приложение гарантирует полную безопасность, не допускает какой-либо утечки данных. Гибкая архитектура, в которую внедрена масштабируемость системы.
Motion eye является программой, пользующейся большой популярностью. Ноутбук либо персональный компьютер используются как сервер. Эта консольная программа не создаёт трудностей при работе с Линукс. Каждая версия обладает веб-сервисом. С помощью него проходит видеопоток с камеры наблюдения в формате MJPEG. Программа оснащена опцией, распознающей движение. Это даёт возможность проводить запись информации выборочно. Полное контролирование объекта гарантировано благодаря простоте в применении, понятному интерфейсу и настройкам.
Ivideon – это программа, сформировавшаяся из 2 разделов под названиями Client и Server. Посредством интернета на любой территории можно вести видеонаблюдение без привязанности к конкретному адресу. Установка Server проводится на ПК либо ноутбук, куда проходит видеопоток и где осуществляется запись на жёсткий диск. Для «слепого сервера» применяется нетбук. Устройство будет вести видеозапись, но это не будет видно на мониторе. Ещё смартфон либо планшет подойдёт для просмотра записанного материала.
Линия – российская разработка, сделанная краснодарской компанией «ДевЛайн». ПО получило высокие позиции на отечественном рынке, потому что имеет совместимость с программами иных разработчиков. Преимущества данного продукта обусловлены широкими возможностями, простой интеграцией, доступной стоимость и точностью настроек.
Место применения
Различные цели видеонаблюдения выполняются разным программным обеспечением для ОС Linux:
- контролирование происходящего в квартире, доме загородом, гараже;
- слежка за предприятиями и складскими терминалами;
- наблюдение за торговыми пунктами и заведениями общественного питания;
- контроль над парковочными местами, АЗС и автомобильными стоянками.
Выгода от использования Linux как ОС для ПО видеонаблюдения
На данный момент Линукс считается сильнейшей и вызывающей доверия операционной системой с обслуживанием сервиса. К выбору предоставляются разнообразные настройки и структура ядра для домашнего либо офисного ПК. Совершенная совместимость обеспечена невысокими требованиями к программам. Быстродействие и лёгкая работа гарантированы благодаря отсутствию поражений от вирусов. Установку данного ОС возможно провести, как на стационарные устройства, так и на мобильные.
На видео: Установка ПО «Линия» на ОС Linux
Источник