Как организовать центральное управление уличными телевизорами?
Здравствуйте! Есть желание реализовать проект, суть которого размещение телевизоров на некоторых остановках разных городов и на них крутить важные социальные ролики. Возник вопрос.
Необходим телевизор, который будет влогостойким, всепогодным и с антивандальной защитой.
На телевизоре должна быть память. Эта память должна быть заполнена видеороликами.
При включении телевизора, надо чтобы сразу запускались видеоролики в рандомном порядке.
Желательно, чтобы по сети вай-фай можно было управлять звуком или настроить часы (вечернее-ночное время), чтобы автоматически уменьшался звук.
Ещё лучше если по вифи можно будет добавить новые видеоролики.
Телевизоры в разных городах, поэтому удобно управлять через телефон/компьютер в любой точке всеми.
Идеально, конечно, какой-то Линукс дистрибутив с докером, с демоном на контейнер, а в контейнере скрипт на запрос каждый час на сервер, где все правила воспроизведения и файлы видео. Видео качаются, если их нет, в локальную память и дальше крутиться по кругу. А сервер с веб интерфейсом и s3. В веб интерфейсе мониторинг теликов и управление пулом видеороликов. Также на бэке ручка ежечасного запроса от теликов.
Либо написать приложение для смарт ТВ, опять же с демоном на автозапуск, которое будет делать тоже самое, без докера.
Есть ли у кого-то опыт реализации подобного, или кто-то связывался с подобными вопросами. Может есть уже готовые решения?
Алексей Черемисин, можете не извиняться, делал. и оно даже работало нормально, это не сложно. вопрос с контролем - верный.
и менно поэтому первой ссылкой и был Xibo, который является полностью готовым опенсорсным решением для подобных задач с видеорядом. С админкой, планировщиком и кучей всего...
но мало ли человек захочет сам делать, бывает такое) ну или надо условно на 5 ТВ, проще тогда влс чем сервак с Xibo держать... хотя...
Вы можете обратиться ко мне. Я как раз работаю в компании, которая предоставляет именно такие услуги. Как видео, так и аудио. Реклама, ролики, аудио контент. Есть все необходимое оборудование, лицензии на аудио и видео-контент, системы управления и хренову тучу всего другого :)
Пишите в телеграм (мои контакты в профиле) или на официальный мейл под спойлером
spoiler
sales@digisky.ru
PS. Увы, скриптами bash, запуском VLC и синхронизацией через rsync - нихрена хорошего не добиться. Все будет падать и тормозить. Более того, все это будет абсолютно неконтролируемо.
Вместо rsync может быть центральный сервер с API, с которого терминалы получают ролики и программу их показа. Тормозить в bash/rsync/vlc особенно нечему.
Однако вот между линуксом и телевизором, по моему опыту, голый vlc не особенно удачно работает, есть глюки. А удаленно их отлаживать - весьма проблематично.
Drno, я про цены даже и не говорил. Цены нормальные.
Хотя.... ящики с обогревом и всей требухой, антивандальные... Нормальных цен, скорее всего не так чтоыб...
И так, если кто-то пробовал запускать VLC в режиме 24/7/365, а еще в нем делать хоть какое-то расписание вещания... Я бы посмотрел на этого монстра программазма, просто так, для интереса...
Ну и ровно тоже самое относится и к rsync, какими великолепными скриптами мы будем определять, все ли залилось, или нужно еще дозагрузить?
А еще наверняка захочется логи снимать, что, когда и где проигралось, или молчало...
А еще как-то следить, не погас ли экран, а то вдруг, VLC крутится, а картинки-то и нет - окирпичился экранчик...
ДА, блин, этих "если" я миллион назову, почему тупой плеер на питоне в 50 строк кода лучше и надежнее отдельного vlc/ffmpeg.
Алексей Черемисин, никто не планировал делать рассписание для VLC. Просто крутить из папки максимум.
для остального есть liquidSoap при желании создать собственный "клиент" )
про rsync я уже написал что не прав, имелся ввиду rclone
насчёт всего остального - для всякой мелочёвки этого не требуется - логи и прочее. моё предложение исходило из того, что надо тупо крутить по кругу редко меняющийся контент минимальными усилиями
для всего остального, я полностью согласен, что надо брать digital сщфт специализированный
Drno, Честно говоря, при цене антивандальной музыкальной уличной коробки (аренду и договорняки с администрациями я тут даже в расчет не беру), использовать что-то типа vlc+rclone (хрен с ним с rsync)... Это как заправлять майбах или аурус безнином 76-80 :) Оно, конечно, даже наверное и ехать будет....
Алексей Черемисин, да, согласен.
я ипользовал такое решение когда то давно в одиночном "среднем" отеле, в котором надо было на ресепшен + 2й этаж с рестораном на экраны выводить
Алексей Черемисин, я обычно это описываю как шикарный дорогой мерс с эксклюзивным тюнингом, внутри которого обнаруживается самая дешёвая китайская магнитола, крутящая радио шансон...
Алексей Черемисин, задача не обязательно для антивандальной уличной вундервафли.
Крутить ролики на телевизоре, висящем в публичном помещении, можно на любой коленке, например.
И естественно, попытка сделать это дешево и между делом провоцирует решение из первых же говна и палок, нашедшихся под рукой :)
Самое простое решение из говна и палок, которое несомненно будет очень качественно работать - взять gstreamer и на нем залепить pipeline на python!
Кстати, как ни странно, многие промышленные решения, и у меня в том числе, как раз на связке с gstreamer и основаны.
Начать можно с такого. Потом добавить обработку bus-соообщений, просто тупо перезапуская поток.
#!/usr/bin/env python
import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst
import os
Gst.init()
mainloop = GObject.MainLoop()
#setting up a single "playbin" element which handles every part of the playback by itself
pl = Gst.ElementFactory.make("playbin", "player")
# copy a track to /tmp directory, just for testing
pl.set_property('uri','file://'+os.path.abspath('/tmp/track.ogg'))
# setting the volume property for the playbin element, as an example
pl.set_property('volume', 0.2)
#running the playbin
pl.set_state(Gst.State.PLAYING)
mainloop.run()