Установка CS Player на Raspberry Pi

Чтобы экран мог воспроизводить контент, установите CS Player на Raspberry Pi, управляющий экраном, и подключите плеер к учётной записи CS Play.

CS Player распространяется в виде APT-пакетов для двух семейств устройств Raspberry Pi:

Устройства ОС APT-репозиторий

Raspberry Pi 3 и новее

Raspberry Pi OS Bookworm (32-бит)

bookworm-releases

Raspberry Pi Zero / Zero W / Pi 1

Raspberry Pi OS (Legacy) Buster

raspberry-zero-buster

Пакет для Raspberry Pi работает как systemd-сервис и выводит изображение напрямую на дисплей (EGLFS), поэтому рабочий стол не нужен и достаточно Raspberry Pi OS Lite.

Установка на Raspberry Pi 3 и новее

Запишите Raspberry Pi OS Bookworm (32-бит) на SD-карту, загрузите устройство, затем добавьте APT-репозиторий CS Play и установите плеер:

Добавление APT-репозитория и установка плеера
curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x6f999c2f1bfe311dda96f9bfd9e1deff2437df62' \
  | sudo gpg --dearmor -o /usr/share/keyrings/cityscreen.gpg
echo "deb [signed-by=/usr/share/keyrings/cityscreen.gpg] https://packages.cityscreen.cloud/repository/bookworm-releases bookworm main" \
  | sudo tee /etc/apt/sources.list.d/cityscreen.list
sudo apt update
sudo apt install -y cityscreen-player

Установка на Raspberry Pi Zero и Pi 1

Одноядерные устройства используют legacy-репозиторий на базе Buster:

Добавление APT-репозитория и установка плеера
curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x6f999c2f1bfe311dda96f9bfd9e1deff2437df62' \
  | sudo gpg --dearmor -o /usr/share/keyrings/cityscreen.gpg
echo "deb [signed-by=/usr/share/keyrings/cityscreen.gpg] https://packages.cityscreen.cloud/repository/raspberry-zero-buster buster main" \
  | sudo tee /etc/apt/sources.list.d/cityscreen.list
sudo apt update
sudo apt install -y cityscreen-player

После установки на Buster включите legacy-драйвер GL и выделите память GPU для декодирования видео:

sudo raspi-config
# Advanced Options -> GL Driver -> Legacy
# Performance Options -> GPU Memory -> 256

Затем создайте символические ссылки на видеобиблиотеки Broadcom:

sudo ln -s /opt/vc/lib/libbrcmEGL.so /opt/vc/lib/libEGL.so
sudo ln -s /opt/vc/lib/libbrcmEGL.so /opt/vc/lib/libEGL.so.1
sudo ln -s /opt/vc/lib/libbrcmGLESv2.so /opt/vc/lib/libGLESv2.so
sudo ln -s /opt/vc/lib/libbrcmGLESv2.so /opt/vc/lib/libGLESv2.so.2

После изменения настроек перезагрузите устройство.

Установка из готового образа

В качестве альтернативы установке через APT можно использовать готовый образ SD-карты с предустановленным CS Player: raspberry.img. Если ссылка недоступна — обратитесь в поддержку CS Play за образом.

Запишите образ на SD-карту (например, через Raspberry Pi Imager или Etcher), вставьте карту в устройство и включите его — затем переходите к подключению плеера к учётной записи.

Подключение плеера к учётной записи

На Raspberry Pi плеер читает PIN-код подключения из файла /opt/cityscreen/player/credentials.env.

  1. Войдите в свою учётную запись CS Play.

  2. На странице Экраны выберите нужный экран (или создайте новый).

  3. На вкладке Параметры найдите Генерация PIN и нажмите Сгенерировать. Появится 6-значный PIN экрана.

  4. Укажите PIN в файле на устройстве:

    /opt/cityscreen/player/credentials.env
    --password=123456
  5. Включите и запустите сервис плеера:

    sudo systemctl enable --now cityscreen-player

После запуска плеер подключается к учётной записи и готов к воспроизведению контента. Сервис запускается автоматически при каждой загрузке устройства. Дополнительные параметры командной строки плеера задаются в файле /opt/cityscreen/player/args.env.

PIN подключает плеер к вашему аккаунту. Прежде чем передать PIN тому, кто просит его по телефону или в сообщении, убедитесь, кто именно просит и что плеер устанавливается для вас.

Поворот экрана

Чтобы повернуть изображение, добавьте переменную окружения в сервис плеера:

sudo systemctl edit cityscreen-player

Укажите угол поворота (90, 180 или 270):

[Service]
Environment=QT_QPA_EGLFS_ROTATION=90

Затем перезапустите сервис:

sudo systemctl restart cityscreen-player

Принудительное разрешение вывода

По умолчанию окно плеера соответствует разрешению ролика: если разрешение объявления меньше физического разрешения экрана, видео показывается в левом верхнем углу; если больше — видна только часть ролика.

Чтобы зафиксировать разрешение вывода, создайте конфигурационный файл EGLFS и передайте путь к нему плееру через переменную окружения QT_QPA_EGLFS_KMS_CONFIG:

cat > /home/pi/EGLConfig.json <<'EOF'
{
  "outputs": [
    {
      "name": "HDMI1",
      "mode": "1280x720"
    }
  ]
}
EOF

Замените name и mode на значения, соответствующие вашему дисплею, затем добавьте переменную в сервис так же, как override для поворота экрана (sudo systemctl edit cityscreen-player):

[Service]
Environment=QT_QPA_EGLFS_KMS_CONFIG=/home/pi/EGLConfig.json

После этого перезапустите сервис.

Размещайте конфигурационный файл вне /opt.

Обновление CS Player

sudo apt update
sudo apt install --only-upgrade -y cityscreen-player

Удаление CS Player

sudo apt remove -y cityscreen-player