Raspberry Pi как альтернатива Chromecast

Raspberry Pi как альтернатива Chromecast

Raspberry Pi действительно можно использовать вместо Chromecast во многих бытовых и инженерных сценариях. Но здесь важно сразу провести границу: превратить Raspberry Pi в полноценный Chromecast в буквальном смысле нельзя.

Google Cast — это отдельная экосистема со своей архитектурой отправителя и приёмника. В официальной документации Google в качестве платформ для Cast Receiver рассматриваются Cast-совместимые устройства и Android TV, а обычный Linux-компьютер вроде Raspberry Pi к ним не относится.

Это, однако, не мешает Raspberry Pi выполнять большую часть задач, ради которых обычно покупают Chromecast. Можно передавать видео и музыку по локальной сети, вывести медиатеку на телевизор, организовать беспроводное воспроизведение или собрать полностью управляемый медиатерминал.

Сначала определитесь со способом передачи

Под словом «кастинг» часто понимают совершенно разные вещи.

Если нужно отправлять фильмы и музыку с телефона, компьютера или NAS на телевизор, хорошо подходит UPnP/DLNA. Для зеркалирования экрана ближе по назначению Miracast. А приложения, которые работают исключительно через Google Cast, уже требуют совместимого Cast Receiver.

ЗадачаПодход на Raspberry PiЧто нужно учитывать
Передача локального видео и музыки на телевизорKodi + UPnP/DLNAЭто не Google Cast
Лёгкий сетевой медиаприёмникRaspberry Pi OS + GMediaRenderПотребуется ручная настройка
Дублирование экрана телефона или ПКMiracast / MiracleCastНастройка Wi-Fi сложнее
Работа с приложениями, рассчитанными именно на Google CastОфициальный Cast ReceiverRaspberry Pi не является полной заменой

Эта разница кажется формальностью только до первой настройки. Например, DLNA может прекрасно передавать видео, но кнопка Cast в YouTube при этом не увидит Raspberry Pi.

Поэтому начинать проект стоит не с установки программ, а с ответа на вопрос: что именно должно работать с этим устройством?

Raspberry Pi 4 или Raspberry Pi 5

Для обычного воспроизведения 1080p покупать самую мощную модель необязательно.

Raspberry Pi 4 по-прежнему хорошо подходит для медиаплеера. У него есть Gigabit Ethernet, двухдиапазонный Wi-Fi, два HDMI-выхода и аппаратное декодирование H.265 до 4K60. Для Raspberry Pi 4 производитель рекомендует блок питания 5 V / 3 A.

Официальные характеристики: https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-product-brief.pdf

Raspberry Pi 5 стоит выбирать, если устройство будет выполнять дополнительные задачи: работать с большой библиотекой Kodi, запускать автоматизацию, контейнеры, фоновые сервисы или более тяжёлый пользовательский интерфейс. Запаса производительности у него заметно больше, а аппаратное декодирование HEVC поддерживает 4K60.

Информация о Raspberry Pi 5: https://www.raspberrypi.com/products/raspberry-pi-5/

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

Для Raspberry Pi 4 в открытом корпусе часто достаточно обычного радиатора. Для Raspberry Pi 5 активное охлаждение уже гораздо полезнее, особенно при длительной нагрузке.

Самый простой вариант для телевизора — LibreELEC и Kodi

Если Raspberry Pi будет постоянно подключён к телевизору, а его основная задача — воспроизводить медиаконтент, удобнее всего начать с Kodi.

Один из самых простых вариантов — LibreELEC. Это облегчённая Linux-система, построенная вокруг Kodi. Для Raspberry Pi 4 и Raspberry Pi 5 существуют отдельные 64-битные образы.

Документация LibreELEC: https://github.com/LibreELEC/documentation/blob/master/hardware/raspberry-pi.md

Для универсального Linux-компьютера LibreELEC подходит не всегда. Но если Raspberry Pi нужен именно как медиаплеер, такой подход избавляет от большого количества ручной настройки.

Шаг 1. Установка LibreELEC

Скачайте образ LibreELEC для своей модели Raspberry Pi и запишите его на microSD.

Для простой установки достаточно 16 GB, но карта на 32 GB или больше удобнее, если Kodi будет хранить локальные файлы, обложки, базу медиатеки и кэш.

После записи карты:

  1. Вставьте microSD в Raspberry Pi.
  2. Подключите HDMI к телевизору.
  3. Если есть возможность, подключите Ethernet.
  4. Подайте питание.
  5. Пройдите первоначальную настройку LibreELEC.

Для стационарного медиаплеера Ethernet обычно самый беспроблемный вариант. Хороший Wi-Fi 5 GHz тоже подходит, если сигнал стабильный.

Шаг 2. Включаем UPnP/DLNA в Kodi

По умолчанию не все функции UPnP в Kodi активны.

Откройте:

Settings → Services → UPnP / DLNA

Включите поддержку UPnP, а затем параметр:

Allow remote control via UPnP

После этого Kodi сможет принимать команды от UPnP-контроллера и воспроизводить отправленные на него медиафайлы.

Документация Kodi: https://kodi.wiki/view/Settings/Services/UPnP_DLNA

Здесь полезно понимать три термина.

  • Server — устройство или программа, где находится контент.
  • Control point — приложение, через которое выбирают файл и устройство для воспроизведения.
  • Renderer — устройство, которое непосредственно воспроизводит файл.

В нашей схеме Raspberry Pi с Kodi выступает в роли renderer.

Шаг 3. Проверяем передачу видео

Для первого теста лучше взять обычный MP4-файл с H.264.

Не стоит начинать с 4K HDR, необычного аудиокодека или DRM-контента. Чем проще первый тест, тем легче понять, где именно возникла проблема.

Откройте DLNA-контроллер на телефоне или компьютере, выберите файл и в качестве устройства воспроизведения укажите Raspberry Pi с Kodi.

Если видео появилось на телевизоре, базовая схема уже работает.

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

Почему некоторые приложения всё равно не видят Raspberry Pi

Это один из самых частых источников путаницы.

Kodi с UPnP — не Google Cast Receiver.

Поэтому наличие кнопки Cast внутри YouTube, Netflix или другого приложения ещё не означает, что Raspberry Pi появится в списке устройств.

Google Cast использует собственную модель sender/receiver, а обычный Linux не является штатной платформой для такого приёмника.

Официальное описание Google Cast: https://developers.google.com/cast/docs/get-started

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

Raspberry Pi интереснее в тех случаях, когда важнее возможность контролировать саму систему.

Более гибкий вариант — Raspberry Pi OS и GMediaRender

Kodi удобен, но это полноценная медиасреда.

Если нужен небольшой headless-устройствo, аудиоприёмник или медиарендерер внутри уже существующего проекта на Raspberry Pi OS, можно использовать GMediaRender.

Сегодня чаще используется поддерживаемый форк gmrender-resurrect. В Debian и Raspberry Pi OS пакет устанавливается под именем gmediarender.

Сначала обновите систему:

				
					sudo apt update
sudo apt full-upgrade -y
				
			

Затем установите GMediaRender и основные плагины GStreamer:

				
					sudo apt install -y \
  gmediarender \
  gstreamer1.0-plugins-good \
  gstreamer1.0-plugins-bad \
  gstreamer1.0-plugins-ugly \
  gstreamer1.0-libav
				
			

Информация о пакете: https://packages.debian.org/trixie/gmediarender

Перед тем как запускать программу в виде сервиса, полезно проверить её вручную:

				
					gmediarender -f "Living Room Pi" --logfile=/dev/stdout
				
			

Параметр -f задаёт имя, под которым Raspberry Pi будет отображаться в сети.

Теперь откройте UPnP-контроллер на другом устройстве и проверьте, появился ли Living Room Pi.

Если устройство видно, discovery работает.

Если устройство определяется, но файл не воспроизводится, искать проблему уже нужно в кодеке, аудиовыходе или GStreamer pipeline.

Автоматический запуск GMediaRender

В Debian-пакете настройки хранятся в:

				
					/etc/default/gmediarender
				
			

Откройте файл:

				
					sudo nano /etc/default/gmediarender
				
			

Пример базовой конфигурации:

				
					ENABLED=1
DAEMON_USER="nobody:audio"
UPNP_DEVICE_NAME="Living Room Pi"
INITIAL_VOLUME_DB=-20
ALSA_DEVICE="sysdefault"
				
			

После сохранения включите сервис:

				
					sudo systemctl enable gmediarender
sudo systemctl restart gmediarender
				
			

Состояние можно проверить так:

				
					systemctl status gmediarender
				
			

Если звук выводится не туда, куда нужно, посмотрите список ALSA-устройств:

				
					aplay -L
				
			

После этого измените значение ALSA_DEVICE.

GMediaRender удобен именно своей лёгкостью. Но чем меньше готовой оболочки, тем больше параметров приходится контролировать самостоятельно.

Для обычного телевизора Kodi чаще оказывается проще. Для собственного embedded-проекта GMediaRender даёт больше свободы.

Не усложняйте сеть раньше времени

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

Сначала подключите Raspberry Pi и устройство-источник к одной обычной локальной сети.

Не начинайте с отдельных VLAN, необычных firewall-правил и QoS. UPnP/DLNA использует локальный multicast, поэтому сегментация сети вполне может сломать обнаружение устройств, даже если Internet на обоих устройствах продолжает работать.

Отдельная проблема — гостевые Wi-Fi-сети. Многие маршрутизаторы включают client isolation, из-за чего два устройства в одной беспроводной сети не видят друг друга.

Если телефон не обнаруживает Raspberry Pi, сначала проверьте именно это.

При передаче тяжёлого видео Ethernet обычно надёжнее Wi-Fi. Если используется беспроводное подключение, предпочтительнее стабильная сеть 5 GHz.

Нужен ли Raspberry Pi статический IP

Для обычного UPnP — нет.

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

Но фиксированный адрес удобен для SSH, web-интерфейса Kodi, API и автоматизации.

Самый простой вариант — сделать DHCP reservation на маршрутизаторе.

Это заодно избавляет от необходимости следовать старым инструкциям, где советуют редактировать dhcpcd.conf.

Начиная с Raspberry Pi OS Bookworm, основной сетевой менеджер — NetworkManager.

Полезные команды:

				
					nmcli device status
				
			

и:

				
					nmcli connection show
				
			

Для обычного домашнего медиаплеера чаще всего этого даже не понадобится.

Не спешите редактировать HDMI-параметры

Старые инструкции по Raspberry Pi часто предлагают вручную менять:

				
					hdmi_group
hdmi_mode
				
			

Сегодня это далеко не первое действие, которое стоит выполнять.

Современные версии Raspberry Pi OS обычно получают параметры дисплея через EDID и используют KMS. Менять низкоуровневые HDMI-настройки имеет смысл только при конкретной проблеме.

Если всё-таки требуется изменить config.txt, в современных версиях Raspberry Pi OS он находится здесь:

				
					/boot/firmware/config.txt
				
			

а не по старому пути:

				
					/boot/config.txt
				
			

Документация Raspberry Pi: https://www.raspberrypi.com/documentation/computers/config_txt.html

По той же причине не стоит использовать OMXPlayer в новом проекте. Он относится к старому мультимедийному стеку Raspberry Pi.

Для современных установок гораздо разумнее использовать VLC, Kodi или GStreamer.

А что насчёт Miracast

DLNA передаёт медиаконтент.

Miracast передаёт изображение экрана.

Если задача состоит именно в том, чтобы показать на телевизоре экран Windows-компьютера или совместимого Android-устройства, Miracast подходит лучше.

Для Linux существует проект MiracleCast, способный работать как Wi-Fi Display sink.

Проект: https://github.com/albfan/miraclecast

Но настройка здесь заметно сложнее, чем у DLNA.

MiracleCast работает с Wi-Fi Direct и может вмешиваться в работу NetworkManager и wpa_supplicant. Если тот же Wi-Fi-интерфейс используется Raspberry Pi для обычного подключения к сети, возникают дополнительные сложности.

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

Добавлять его «на всякий случай» в уже работающий DLNA-медиаплеер обычно нет смысла.

Почему эмуляция Google Cast — плохая отправная точка

Существуют open-source проекты, которые реализуют отдельные части протокола Cast.

Но поддержка части протокола ещё не означает полную совместимость с Chromecast.

В Google Cast задействованы discovery, receiver applications, регистрация приложений, аутентификация и ряд других механизмов.

Поэтому проект, который способен обмениваться Cast-сообщениями, ещё не обязательно будет нормально работать с обычными коммерческими приложениями.

Если требование звучит так:

«Нажимаем Cast в любом приложении, и Raspberry Pi должен вести себя как Chromecast»,

то обычный Linux на Raspberry Pi — не самая удачная основа.

Если же задача другая:

«Нам нужен сетевой медиаприёмник, которым мы полностью управляем сами»,

тогда Raspberry Pi подходит отлично.

Не каждое зависание связано с сетью

Даже полностью рабочая сеть не гарантирует воспроизведение любого файла.

Приёмник должен поддерживать используемый codec и container.

Raspberry Pi 4 аппаратно декодирует H.265 до 4K60 и H.264 до 1080p60. Raspberry Pi 5 получил значительно более производительный CPU и аппаратный HEVC decoder для 4K60.

Если обычный MP4 воспроизводится, а определённый фильм — нет, сначала проверьте:

  • codec;
  • resolution;
  • bitrate;
  • audio codec;
  • container.

Не стоит сразу перестраивать сеть.

В Kodi полезен debug log.

С GMediaRender можно запустить программу с выводом журнала:

				
					gmediarender -f "Debug Pi" --logfile=/dev/stdout
				
			

Если GStreamer не может обработать файл, причина часто будет видна прямо в терминале.

Если Raspberry Pi не появляется в списке устройств

Сначала убедитесь, что оба устройства действительно находятся в одной локальной сети.

Телефон, подключённый к Guest Wi-Fi, часто не сможет увидеть Raspberry Pi в основной сети.

Если вы сами добавляли firewall-правила, временно отключите их и повторите тест.

При использовании VLAN обычной IP-маршрутизации может быть недостаточно: multicast discovery тоже должен проходить между сегментами.

Именно поэтому изоляцию медиаплеера лучше делать после того, как базовая конфигурация уже работает.

Если видео постоянно буферизуется

Начните с Ethernet.

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

При использовании Wi-Fi сначала проверьте качество сигнала и загруженность канала.

Полезен и простой эксперимент с bitrate: если H.264-файл на 10 Mbps воспроизводится без проблем, а тяжёлый 4K remux постоянно останавливается, это уже даёт больше информации, чем обычный Internet Speed Test.

Для проверки скорости внутри локальной сети можно использовать iperf3.

Установка:

				
					sudo apt install iperf3
				
			

На одном устройстве запустите сервер:

				
					iperf3 -s
				
			

На другом — клиент:

				
					iperf3 -c <server-ip>
				
			

Так измеряется именно канал между двумя устройствами в вашей локальной сети, а не скорость соединения с сервером провайдера.

Не выставляйте медиасервисы в Internet

UPnP рассчитан прежде всего на доверенную локальную сеть.

Это же относится к web-интерфейсу Kodi и другим средствам удалённого управления.

Если web-интерфейс включён, задайте пароль и не публикуйте его напрямую в Internet.

Документация Kodi отдельно предупреждает о подобных рисках: https://kodi.wiki/view/Settings/Services/Control

SSH тоже лучше оставлять административным интерфейсом внутри LAN либо использовать через VPN.

Обычному медиаприёмнику не требуется открытый входящий доступ из Internet.

Когда Raspberry Pi действительно лучше Chromecast

Если нужна только кнопка Cast и минимум настроек, обычный коммерческий медиаплеер проще.

Сильная сторона Raspberry Pi появляется тогда, когда устройство должно быть частью более крупной системы.

Например, Raspberry Pi может автоматически запускать видео по внешнему событию. Его можно связать с MQTT, системой умного дома, digital signage или собственным web-интерфейсом. На нём можно одновременно запустить мониторинг, локальное хранилище и сценарии управления.

В этом случае за телевизором находится уже не просто медиаплеер, а полноценный Linux-компьютер.

Можно использовать Python, Node.js, Docker, REST API, MQTT и любые другие инструменты, которые нужны конкретному проекту.

Именно здесь Raspberry Pi начинает выигрывать у закрытых streaming-устройств.

Какой вариант выбрать

Для Raspberry Pi, который будет постоянно подключён к телевизору, разумнее всего начать с LibreELEC + Kodi.

Включите UPnP, проверьте передачу обычного видео и только после этого добавляйте автоматизацию или удалённое управление.

Если проект уже работает на Raspberry Pi OS и нужен только лёгкий UPnP/DLNA renderer, проще использовать GMediaRender.

Miracast стоит выбирать тогда, когда нужно именно зеркалирование экрана и вы готовы отдельно заниматься Wi-Fi Direct.

А если необходима стопроцентная совместимость с обычными Google Cast-приложениями, лучше не тратить время на попытки превратить generic Linux в настоящий Chromecast.

В заключение

Raspberry Pi хорошо работает как альтернатива Chromecast, если под альтернативой понимать открытый медиаприёмник, а не точную копию устройства Google.

Для обычного телевизора Kodi и UPnP дают самый короткий путь к рабочему результату. Raspberry Pi OS удобнее там, где потоковое воспроизведение — лишь одна из функций будущей системы.

Главное преимущество Raspberry Pi заключается не в попытке повторить Chromecast. Здесь вы сами определяете, откуда приходит медиаконтент, чем он воспроизводится и что устройство сможет делать помимо этого.

Прокрутить вверх

获取即时报价!​​

استعلام فوری قیمت!

Request an instant quote!