TV мультискрин - proof of concept
С появлением закона о едином распространителе ТВ сигналов в интернете, реестра аудиовизуальных сервисов, которые обязаны теперь транслировать эфиры телеканалов первого и второго мультиплекса (первые 20 каналов, проще говоря), каждый изгаляется, как может, и мы не исключение. Условно, ну ок, есть люди, которые до сих пор смотрят телек, и среди них есть люди, которые почему-то делают это в интернете (вебе, аппе, смарте, стб). А какая классическая боль телевизора? Чтобы посмотреть, что идет по всем каналам, надо их, что называется, прощелкать. И в большинстве случаев, что в ящике, что в интернете, или в смарт-тв, это всегда требует каких-то явных действий - переключать каналы, или кликать на следующий-нужный.
Поэтому, вдохновившись идеей мультискрина из какой-то части назад в будущее https://www.youtube.com/watch?v=cFwPFQXQHNk мы решили упростить таким образом выбор пользователю, что сейчас смотреть - собрав все 20 телеканалов на одном экране (большом экране, т.е. веб-десктоп или смарт-тв).
Какие есть нюансы? Ну, самый очевидный, запускать 20 плееров не вариант, будет адски все тормозить. Это было понятно изначально. Далее, у каждого из каналов на самом деле есть разное количестве “орбит”, и они могут быть разные с точки зрения географии. И перебирать все комбинации не вариант. Поэтому для простоты сведения такого “общего” потока мы взяли чисто московский эфир всех каналов, для proof of concept.
Идея была средствами ffmpeg создать одно большое полотно, где все входящие источники расположить сеткой. А интерфейс, который бы рисовал скроллящееся расписание, позволял кликать на зону каждого канала, уже располагался бы поверх 1 плеера, проигрывающий такой сводный поток.
Оказалось, что ффмпег не умеет параллельно работать с большим количеством источников, внутри у себя он фактически в момент работы фильтра работает с кадрами полученными из этих источников последовательно, в итоге создавалась совершенно нереальная рассинхронизация. Поэтому рабочим решением оказалось создавать отдельно несколько экранов из меньшего количества источников, а потом уже сшивать их воедино. У нас это 4 горизонтальные линейки по 6 каналов в каждой.
Отдельно провозились со звуком (это пока не в проде), задача была от каждого канала взять звук и в выходной поток hls сделать по сути 20 отдельных звуковых дорожек. А плеер их мог бы при наведении\фокусе переключать максимально бесшовно. При этом навигация x-y по сетке все же эффективнее любого однонаправленного списка.
Какой итог - где-то через неделю после запуска этого функционала пришло понимание, что большинству людей не нужны все-все каналы (тем более это выглядит довольно мусорно), но было бы здорово иметь возможность быстро подсмотреть свой личный набор из каналов, которые лично ты смотришь, не прерывая просмотр текущего (пошла реклама, а что там на остальных, моих, сейчас - такой сценарий). Кстати по сути в фильме так и было. Но серверная реализация для такого сценария, наверное, не нужна. Может кто-нибудь докрутит идею.
· 21.06.2024
Очень крутая тема! Я, правда, нифига не понимаю в системных моментах))) Но, мне кажется, было бы удобнее как в YouTube, просто заставками передач или фильмов сделать. Единственное, тогда нужно думать об этих заставках, кто, когда и как будет их делать😁 К слову, у ютуба при наведении курсора на интересующее видео запускается его воспроизведение и, по факту, нагрузку дает только одно видео)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён