Raspberry pi настройка vlc
Семейство недорогих компактных одноплатных компьютеров Raspberry Pi появилось на рынке в несколько лет назад и с тех пор завоевало признание энтузиастов DIY по всему миру. В начале этого года было объявлено, что суммарные продажи превысили восемь миллионов устройств, а число публикаций о них в сети Интернет не поддается подсчету. Так что данная статья в определенном смысле представляет собой еще одну «каплю в море».
Тем не менее, рассказать о собственном опыте работы с новой версией микроПК все-таки хочется. Надеемся, что этот материал будет полезен тем читателям, которые пока незнакомы с этой платформой. Дополнительную информацию можно найти на официальном сайте, различных ресурсах для разработчиков и сайтах, посвященных проектам DIY (например, этом).
Версия Raspberry Pi 3, последняя из «полноразмерных», была анонсирована в начале этого года. Она сохранила основные черты своей предшественницы, включая размеры платы, интерфейсы, число и расположение портов ввода-вывода. Так что с ней будут совместимы разработанные ранее для Raspberry Pi 2 корпуса, дисплеи, камеры, платы расширения и другие компоненты.
Комплект поставки традиционно минимальный – в картонной коробке идет только плата в антистатическом пакете и пара бумажек. Так что для запуска устройства вам потребуются некоторые дополнительные элементы, в частности блок питания с выходом microUSB и параметрами 5 В 2 А, карта памяти формата microSD, монитор и клавиатура.
Внешний вид платы не изменился. Без внимательного рассмотрения отличить ее от предшественницы непросто, если не знать, в какой угол смотреть. Размеры платы составляют 5,6x8,5 см (формат «кретитка»), а максимальная высота определяется двойными портами USB (немногим менее 2 см). На лицевой стороне мы видим главный процессор, чип контроллера Ethernet и USB-хаба, основные слоты и порты. С обратной стороны платы находится чип оперативной памяти и слот для карт памяти.
Ключевым отличием от предшественника является использованная SoC – теперь это 64-х битный четырехядерный чип BCM2837, ядра которого имеют архитектуру ARM Cortex-A53 и работают на штатной частоте 1,2 ГГц (в стандартном дистрибутиве ОС частота снижается до 600 МГц при отсутствии нагрузки). В случае работы с высокой нагрузкой, рекомендуется установить на него радиатор, который часто продается в комплекте с корпусом и блоком питания. В процессоре находится и графический контроллер, который поддерживает API OpenGL ES 2.0 и может декодировать популярные форматы видео (в частности H.264, но не H.265). Второе, тоже достаточно актуальное на наш взгляд, обновление – интеграция на плату контроллеров Wi-Fi (одна антенна, 2,4 ГГц, 802.11b/g/n, до 150 Мбит/с) и Bluetooth 4.1. Наличие встроенного контроллера беспроводной сети позволяет более удобно реализовать сценарии с сетевым подключением, например минисервера автоматизации. С другой стороны, использование компактной антенны (без возможности штатно установить другую, внешнюю) явно не способствует высокой скорости и дальности работы.
Объем оперативной памяти не изменился и все также составляет 1 ГБ. Программное обеспечение нужно записывать на карту памяти, собственного флэша здесь нет. Компьютер имеет выход HDMI (поддерживает разрешения до FullHD и даже немного выше), композитный видеовыход и стереоаудиовыход (аудиовхода нет, для его реализации потребуется дополнительное оборудование), четыре порта USB 2.0, 10/100 Мбит/с проводной сетевой контроллер, порт GPIO на 40 контактов (если будете что-то подключать к нему, обратите внимание, что используются уровни 3,3 В), фирменные разъемы для камеры и дисплея и порт microUSB для подачи питания. Выключателя питания в системе нет, как и встроенных часов с собственной резервной батареей.
О сравнительной производительности третьей и второй версий компьютера в Интернете представлено очень много информации и, учитывая описанные выше отличия в SoC, вполне ожидаемо, что новое поколение быстрее в связанных с вычислениями на процессоре задачах. С другой стороны, оно более горячее и потребляет больше электроэнергии под нагрузкой, а кардинально нового уровня производительности не обеспечивает. Можно говорить о том, что оба устройства способны решать одни и те же задачи.
| |
Основной ОС для этой платформы является дистрибутив Raspbian, основанный на Debian. Установить его можно с использованием специальной программы NOOBS или просто записав образ операционной системы на карту памяти.
Но конечно продукт совместим с большим числом операционных систем, включая различные варианты Linux (в том числе Gentoo и Ubuntu) и Windows 10 IoT Core. Для решения определенных задач в сети можно найти готовые специализированные проекты дистрибутивов, но никто не мешает вам использовать устройство просто как универсальный многофункциональный компьютер с Linux. Так что найти подходящий для вашего уровня подготовки вариант, скорее всего, не составит труда.
В целом, подобные решения, рассчитаны в основном на сегмент DIY и применение в различных проектах «самоделкиных». Описывать все тысячи, если не сотни тысяч вариантов, нет никакого смысла. Надо отметить, что диапазон здесь очень широкий. Одним пользователям будет комфортно в командной строке Linux, других будет пугать процесс записи готового образа на карту памяти. Поэтому как конкретно будет использоваться микрокомпьютер, будет зависеть в основном от вашего личного опыта, желания «глубоко копать» и, конечно, фантазии.
Начать можно с достаточно простых сценариев, не требующих глубокого знания программирования и большого опыта работы с паяльником. Пожалуй, наиболее популярный вариант использования миникомпьютера, на который стоит обратить внимание, – реализация медиаплеера. Прежде всего, отметим, что такое решение вполне конкурирует с готовыми продуктами по стоимости, удобству и возможностям. Однако есть несколько особенностей, которые стоит учитывать в данном случае. Во-первых, речь идет только о видео с разрешением до FullHD включительно, а кодеки могут быть представлены наиболее распространенным сегодня H.264 (AVC), а также MPEG2 и VC1.
Отметим, что последние два варианта в базовой поставке декодируются только программным образом, а для включения аппаратного декодирования потребуется приобрести специальную лицензию. При этом для MPEG2 мощности процессора вполне достаточно, а вот VC1 в FullHD уже не посмотреть без аппаратного декодера. Ну а с музыкой и фотографиями с точки зрения производительности конечно проблем нет.
Для хранения медиабиблиотеки можно подключить к компьютеру USB-накопители, но сценарий работы с сетевым накопителем представляется более интересным. Скорости (проводной) сети будет достаточно в том числе и на BD-ремуксы.
Из готовых комплектов для медиацентра наиболее известны четыре: OpenELEC, OSMC, Xbian и Rasplex. Первые три ориентированы на работу с популярной HTPC-оболочкой Kodi и в целом с пользовательской точки зрения выглядят одинаково, а третий является расширенной клиентом для сервера Plex версией OpenELEC. Если тема для вас новая – можно познакомиться с возможностями Kodi, установив его как приложение на ваш настольный компьютер или ноутбук.
В отдельную группу можно выделить проекты, ориентированные на качественное воспроизведение музыки решения. С программной точки зрения, они обычно состоят из серверной части на микрокомпьютере и клиенте для управления им на мобильном устройстве или в браузере. При этом непосредственно для вывода звука применяются специализированные карты расширения или DAC, обеспечивающие требуемый уровень качества.
Процесс запуска решений для медиацентров максимально упрощен – для OpenELEC и OSMC вы скачиваете готовый образ ОС с сайта и записываете его специальной утилитой на карту памяти (большой объем здесь не нужен, я бы рекомендовал 2 или 4 ГБ Class10), Xbian и Rasplex в дополнение к этому, предлагает и собственную программу для инициализации карты памяти и записи на нее образа ОС.
После этого, вы устанавливаете карту в Raspberry Pi, подключаете HDMI, сеть, клавиатуру и мышку (могут потребоваться на начальном этапе конфигурации) и включаете питание. Далее в зависимости от дистрибутива вам может быть предложен мастер для установки некоторых основных параметров (например, имени компьютера, сетевого подключения и т.п.).
Немаловажным вопросом является способ управления плеером. Здесь есть несколько вариантов, если не считать клавиатуры+мышки, что не очень удобно в данном случае. Во-первых, специальные приложения для смартфонов и планшетов. Во-вторых, для некоторых моделей телевизоров можно попробовать HDMI CEC – управление со штатного пульта ТВ по HDMI. В-третьих, можно собраться с духом и добавить к Raspberry Pi одну деталь – приемник ИК-сигналов на трех проводках – и взять любой стандартный пульт ДУ от бытовой техники. Лично для меня последний способ наиболее удобен.
При необходимости, вы можете настроить и другие параметры медиацентра, например, способ вывода звуковых дорожек, а также реализовать множество дополнительных сценариев благодаря поддержке плагинов.
Что касается выбора из указанных выше вариантов дистрибутивов, то наиболее удобным показался проект OSMC. В нем «из коробки» есть русский язык, можно изменить дизайн интерфейса, предусмотрена опция включения доступа по ssh, а также удалось легко запустить ИК-пульт от Xbox 360, просто выбрав его профиль в меню.
OpenELEC интересен тем, что работа Kodi в нем реализована поверх специализированной ОС, а не полноценной Linux, что потенциально должно хорошо сказаться на стабильности и скорости.
В базовом образе Xbian не нашлось русского языка, система не смогла автоматически установить разрешение экрана, обнаружить работающие инструкции по настройке пульта дистанционного управления за разумное время не удалось.
Rasplex интересен именно в связке с сервером Plex. Это позволяет повысить удобство работы с медиабиблиотекой большого объема благодаря индексации и поддержке метаинформации, загружаемой из сети Интернет.
Безусловно, большинство описанных проблем решаемо, но в случае близких итоговых результатов обычно нет смысла тратить на них время и проще сразу взять устраивающую рабочую версию.
Так что в целом, если вам хочется что-то сделать своими руками и/или не устраивают по гибкости или стоимости готовые решения медиаплееров, Raspberry Pi 3 вполне может удовлетворить желание узнать что-то новое, а также выступить в роли практичного и недорогого решения для этого сценария.
Стоит отметить, что часть упомянутых выше проектов работоспособны не только на Raspberry Pi, но и множестве других аналогичных миникомпьютеров.
На так давно я стал счастливым обладателем Raspberry Pi. С тех пор эксперименты не прекращаются. Сейчас балуюсь с камерой. В связи с этим захотелось реализовать трансляцию. Надеюсь, данная статья будет полезной таким же новичкам, как я.
Есть несколько способов разной степени сложности организовать трансляцию видео с камеры Raspberry Pi. Всё зависит от того, где именно вам необходимо принимать транслируемое. Рассмотрим некоторые из вариантов, двигаясь от простого к более сложному.
VLC media player
Самый простой способ организовать трансляцию видео с камеры Raspberry Pi — установка проигрывателя VLC media player как на компьютере, так и на «малинке». Последнее делается следующей командой:
После этого запускаем запись видео и его трансляцию. На примере ниже видео размером 800 на 400 пикселей и частотой 24fps будет транслироваться в формате h264 через порт номер 8160:
Запускаем на компьютере VLC, выбираем в меню «Открыть URL» и вписываем 192.168.0.9:8160 (замените 192.168.0.9 на реальный IP-адрес своего Raspberry Pi). Если установить VLC на Android-устройство, то этот способ тоже работает. Впрочем, для смартфонов есть и более удобный способ.
RaspiCam Remote
Это более удобный способ — приложение RaspiCam Remote. Во-первых, оно не требует установки ничего дополнительного на Raspberry Pi (при использовании основных функций). Во-вторых, никаких манипуляций с запуском съёмки, как в предыдущем примере, тоже не требуется. Также приложение позволяет применять фильтры к картинке (если я правильно понял, на стороне Raspberry Pi) и сохранять снимки в галерею телефона. Для некоторых дополнительных функций нужно установить пару сторонних приложений на «малинку». В частности, для видео-трансляции с частотой 30fps потребуетcя VLC, а для использования UBS-камеры — fswebcam. В любом случае, приложение простое и полезное, чем и понравилось. Вдобавок это один из самых простых способов протестировать, работает ли камера.
Трансляция через веб-браузер
Собственно, подошли к самому главному. Какой-никакой браузер есть сейчас почти на любом устройстве, подключенном к интернету. Трансляция в браузер — наиболее востребованный способ. Учитывая, что разные веб-браузеры до сих пор определяются с тем, какие видео-форматы они проигрывают, а какие нет, нам нет смысла вообще связываться с видео в прямом смысле. Дополнительным аргументом является отсутствие микрофона на камере «малинки» и, как следствие, звуковой дорожки как таковой. Поэтому наиболее разумным будет снимать фото, а не видео. Механизм простой: стандартной командой raspistill делаем с интервалом снимки и сохраняем в один файл, постоянно перезаписывая его. Также устанавливаем на Raspberry Pi веб-сервер, на котором запускаем веб-страницу с нашей фотографией. Понятное дело, что фото надо обновлять с таким же интервалом, с каким ведётся съёмка (в идеале). Делать это можно, например, Javascript`ом:
Там же можно изменить каталог, в который будет установлен сайт. Теперь можно запускать установку:
ПРОЕКТЫ:
Ссылки:
Как передать видеопоток с камеры Raspberry Pi на планшет или смартфон с помощью VLC |
Низкие частота кадров и разрешение видео - основные ключи Вам нужно установить VLC на обоих устройствах. Чтобы установить VLC на Pi: Наиболее надежным методом потокового видео является, кажется, RTSP и, чтобы запустить, введите в командной строке: В этом случае видео с камеры передается как поток из порта 8554 Вашего Raspberry Pi. 99999 - продолжительность времени в миллисекундах, т.е. поток будет работать в течение 99,9 секунды. Вы можете изменить это значение на то, которое Вам нравится. Если измените его на 0 (ноль), то поток продолжится на неопределенный срок - надо нажать CTRL+C, чтобы убить его в любой момент. Для выбора поддерживаемых параметров для данного мобильного устройства можно воспользоваться таблицей: Кроме того, обратите внимание, что потоковое заканчивается в конце 99999 мс периода времени и Вам придется прервать процесс по CTRL+C, чтобы вернуться под контроль Вашей консоли. Видео можно увидеть на удаленном устройстве, запустив VLC и открыв Network Stream по адресу rtsp://<IPofRaspberryPi>:8554/ После того, как Вы это сделали, должны увидеть выходной поток камеры на экране Вашего Nexus (при условии, что Вы не потратили уже более 99,9 секунд на ввод URL - используйте «копировать и вставить», чтобы сделать это быстро и легко). Файлы, которые потом будут нужны, хранятся в /var/www . Для настройки VLC для генерации HLS-потока можете запустить: Напоминаем, что надо установить правильный IP-адрес Raspberry Pi. Опять же, видео может быть воспроизведено с помощью VLC, открыв Network Stream: Обращаем Ваше внимание, что HLS может забрать всю мощность CPU на Raspberry Pi. . то можете отключить красный светодиод, чтобы избавиться от его отображения в стекле. Просто добавьте строку: и когда Pi снова загрузится, индикатор камеры будет отключен. Вы можете включить его обратно или путем комментирования добавленной строки или изменением параметра в нем на 0. Веб-камера C920 может напрямую передавать поток H264, поэтому теоретически мне не нужно будет просить RaspberyPi + VLC перекодировать видеопоток. Поток встроенного микрофона C920 не включен в поток веб-камеры. Камера и микрофон - это 2 отдельных устройства. C920 также имеет встроенный светодиодный индикатор. Я хочу контролировать это, чтобы светодиод не загорался во время записи. Как я могу этого добиться? 2 ответаЭто решение протестировано и работает с версиями, указанными ниже. Используя этот метод, RaspberryPi3 всегда занимает около 5% ЦП. 0. Предварительные проверки 1. Конфигурация видео с веб-камеры 2. Идентификация микрофона 3. Потоковая передача с использованием VLC 4. Сделайте Raspberry Pi 3 точкой доступа Wi-Fi (Если у вас нет существующей сети для подключения вашего Pi) 5. Скрипт при запуске или как услуга 6. [EDIT] Дополнительные команды: запись в бесконечном цикле и разделение видео 7. [EDIT] Выполнение программы в определенный момент 8. [EDIT] УСТРАНЕНИЕ НЕПОЛАДОК Ответ - работа с Raspbian 9.4 Stretch. Проверьте свою версию с помощью следующей команды: Тебе следует увидеть: Мы можем полагаться на следующие инструменты:
Вы можете установить их с помощью следующих команд: Как только все будет установлено, вы можете настроить веб-камеру C920. v4l2-ctl --all перечисляет все доступные устройства и их конфигурацию Последние 2 строки дают нам подсказки для управления встроенным светодиодным индикатором, например, чтобы отключить светодиодный индикатор. Параметр -d0 указывает, на каком устройстве должна быть применена модификация (если у вас изменилось несколько камер или имя устройства) Команда arecord -l предоставит нам список устройств ALSA. (ALSA - это аудио менеджер в RaspberryPi) Это означает, что встроенный микрофон находится на hardware 1, periph 0 . Вы можете проверить это в командной строке с помощью alsamixer -c 1 -V capture VLC можно запустить из командной строки. Поскольку у нас нет видео и аудио, уже смешанных вместе в одном потоке доступа, нам нужно попросить VLC сделать это. Это роль функции transcoding VLC. Работает с любым клиентом VLC:
NB: наличие видео в формате H264 1920x1080 30 кадров в секунду на выходе веб-камеры значительно экономит процессор RaspberryPi3 +. Вы также можете записывать в различные контейнеры или даже контейнеры + поток, вот несколько примеров: Вы также можете использовать форматированную строку для имен файлов. Команда префикса такая: Будет создан файл с именем YYYY-MM-DD_HH:MM:SS_MyVid.mp4 ( : авторизованы в именах файлов unix, но не в именах файлов Windows) В противном случае, если у вас уже есть сеть, вы можете подключиться к своему пи, используя его IP. См. Часть 3 Вы можете поместить множество команд в файл bash my_bash_file.sh . Например : Мы создадим сервис "поток веб-камеры", предполагая, что все необходимые команды bash находятся /home/pi/Webcam_Record/vlc_webcam_stream_service.sh И напишите в нем: Сделайте служебный файл и скрипт исполняемым: Разрешить запуск VLC от имени root: Перезагрузите демонов и включите наш сервис: Убедитесь, что он распознан и работает: Вы можете проверить на другом компьютере правильность потоковой передачи видео. Обратите внимание, что веб-камера будет недоступна во время работы службы. Когда вы закончите, вы можете подключиться к точке доступа RaspberryPi3 + Wi-Fi и получить доступ к своему видеопотоку. Следующие сценарии bash позволяют записывать без ограничений 15-секундные видео с именами файлов с метками времени и потоковой передачей. 7. [EDIT] Выполнение программы в данный момент.РЕДАКТИРОВАТЬ 04 августа 2018 г. Чтобы запустить выполнение сегодня в 14:00, вы можете использовать следующую команду: Подробнее см. Руководство по командам at . 8. УСТРАНЕНИЕ НЕПОЛАДОКРЕДАКТИРОВАТЬ 07 июл 2018 Недавно я столкнулся с ошибкой VLC после dist-upgrade: Решение, которое я нашел, - запустить VLC в режиме графического интерфейса пользователя и изменить звуковое устройство по умолчанию на ALSA (вместо автоматического). Я также могу это сделать в командной строке. См. Найденное здесь решение. Проблемы VLC с PulseAudio Вам понадобится vcodec= , чтобы видео работало, и deinterlace , если вы этого хотите. Моя проблема довольно проста, но я не смог найти удовлетворительное решение. По сути, я хочу, чтобы мой Raspberry Pi был подключен к моей стереосистеме, а затем воспроизводил любой аудиовыход с моего компьютера через Wi-Fi на PI. Есть ли способ сделать это легко, без использования специальных игроков? Т.е. есть ли у ПК возможность просто распознать Pi как «динамики»? Я хотел бы услышать каждый звук на моем компьютере на стерео, т.е. Игры, музыка, системные звуки, уведомления, видео на YouTube и т. Д. Если вы используете Linux на своем ПК, это вполне выполнимо, если вы устанавливаете и правильно настраиваете PulseAudio как на Raspberry Pi, так и на вашем ПК с Linux. Если ваш компьютер работает под управлением Windows . Пропустите до конца поста (который я только что обновил). Другой вариант - использовать PulseAudio в качестве приемника / клиента AirPlay, но, насколько я знаю, это невозможно. Но, если вы используете Linux, то читайте дальше: Примечание № 1: PulseAudio через WiFi будет работать без ошибок на некоторых маршрутизаторах, но не будет работать на других. Примечание № 2: Следующие инструкции взяты из разговора, который несколько пользователей Raspberry Pi (включая меня) провели на эту тему . 1) Установите PulseAudio на свой Raspberry Pi 2) Убедитесь, что PulseAudio запускается автоматически: Найдите запись PULSEAUDIO_SYSTEM_START и измените ее на 1, чтобы она выглядела как PULSEAUDIO_SYSTEM_START = 1 3) Настройте PulseAudio для работы по сети: Добавьте следующие строки: load-module module-native-protocol-tcp auth-ip-acl = 127.0.0.1; 192.168.1.0/24 модуль загрузки zeroconf-publish 4) Перезагрузите Raspberry Pi: 5) Теперь на вашем компьютере с Linux установите paprefs . Если ваш дистрибутив Linux основан на Debian (например, Ubuntu, Mint и т. Д.), Вы можете использовать эту команду: 6) Запуск paprefs и под Network Access позволяет сделать звуковые устройства обнаруживаемого PulseAudio сетей доступны локально 7) В разделе « Сетевой сервер» включите « Включить сетевой доступ к локальным звуковым устройствам» и отметьте обе опции (возможно, в этом нет необходимости, если вы также не хотите использовать свой Linux-сервер в качестве сервера / приемника). 8) Под Multicas / RTP включите обе опции 9) Проверьте доступные устройства вывода (используйте ваше приложение Linux distro Audio / Mixer). Ваш Raspberry Pi появится (должен) в списке; выберите его, и все, что воспроизводится на вашем компьютере с Linux, будет перенаправлено на Raspberry Pi. Если ваш Raspberry Pi по-прежнему недоступен, попробуйте перезагрузить компьютер с Linux. ОБНОВЛЕНИЕ: Отправка всего аудио из Windows на Raspberry Pi Вам все равно нужно будет следовать предыдущим инструкциям для установки и настройки PulseAudio на вашем Raspberry Pi. Теперь это то, что вам нужно сделать для Windows: 1) Загрузите последнюю версию LineInCode 2) Распакуйте загруженный файл 2) Загрузите PuTTY's Plink и поместите файл plink.exe в ту же папку, где вы извлекли LineInCode 3) Откройте Блокнот и вставьте следующий код: Конечно, измените IP-адрес ( 192.168.1.104 ), имя пользователя ( pi ) и пароль ( raspberry ) в соответствии с вашими настройками. Читайте также:
|