LINUX.ORG.RU

Как добавить свое видео в ретрансляцию iptv?

 ,


0

1

Здравствуйте!!

Прошу помогите решить задачу.. В ретрансляцию IPTV нужно периодически добавлять свой видео файл.. Я пробовал сделать через связку icecast и vlc, транслируя поток iptv с помощью vlc в icecast, но когда обрываешь трансляцию vlc трансляция icecast тоже обрывается и необходимо в клиенте заново устанавливать подключение к потоку.. Пробовал в icecast ставить fallback mount, но почему-то трансляция обрывалась и к fallback моунту не перекидывало.. Подскажите пожалуйста в какую сторону копать.. уже все форумы облазил толком ничего не нашел..



Последнее исправление: KOSHVs (всего исправлений: 1)

Подскажите пожалуйста в какую сторону капать

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

anonymous
()

Найти/написать плеер, умеющий слать «тишину» по-умолчанию без обрыва соединения с icecast. Последний обрывает соединение с клиентами только при библиотечном вызове об обрыве потока со стороны плеера. Мне для радио пришлось переизобретать велосипед (писать свой плеер), чтоб не было разрывов при переключении плейлистов.

nickleiten ★★★
()

Поищи что нибудь для автоматизации ТВ трансляций. Для автоматизации радио есть Liquidsoap, но оно вроде и с видеопотоками умеет немного работать. Есть ещё фреймворк MLT, я бы его глянул.

FriendlyFire
()
Ответ на: комментарий от nickleiten

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

KOSHVs
() автор топика
Ответ на: комментарий от FriendlyFire

Liquidsoap смотрел.. iptv трансляцию не удалось запустить.. но проблема то не в ретрансляции, ретрансляция легко поднимается средствами vlc и icecast, также можно брать поток и через vlc засовывать в icecast но проблема в том, что в icecast'е не переходит на fallback моунт при попытке остановить основную трансляцию сразуже падает соединение и нужно руками перезапускать подключение клиента...

KOSHVs
() автор топика
Ответ на: комментарий от KOSHVs

Плеером в данном контексте я называю источник вещания для icecast. То есть терминология/топология такая:

player -> icecast -> clients
             |  ---> clients
              -----> clients
клиент (будь-то приставка или стационарный комп) подключается к icecast для получения видео/аудио, icecast множит поток на всех клиентов, с другой же стороны к icecast'у подключается плеер, который генерирует поток из плейлиста или другого источника. То есть вам придётся лепить свой плеер/источник, т.к. обрыв между клиентами и icecast'ом происходит только в момент пропадания соединения между icecast'ом и плеером/генератором потока. На уровне программирования - это всего-лишь библиотечные вызовы, но многие плееры/генераторы потока готовы с лёгкостью это соединение сбрасывать по-поводу и без. Оттого и ваши проблемы, я с этим долго боролся, пока не пришёл к выводу, что написать своё будет легче.

nickleiten ★★★
()
Последнее исправление: nickleiten (всего исправлений: 1)
Ответ на: комментарий от nickleiten

да именно так. в качестве плеера я использую cvlc, но при отключении плеера рушится вся трансляция.. я уже два месяца бьюсь... подскажите хоть в какую сторону смотреть.. и как можно обойти разрыв соединения?

KOSHVs
() автор топика
Ответ на: комментарий от KOSHVs

Самый надёжный вариант - писать свой плеер, т.к. лично я не нашёл рабочих вариантов для решения этой проблемы. Возможно, но я не уверен, будет работать схема с промежуточным «прокси» плеером. Например, ffmpeg умеет пайпами передавать поток, то есть ffmpeg берёт поток из pipe-файла и передаёт его icecast'у, то есть он подключён постоянно, но данные передаёт только при их наличии. А дальше уже другой/другие плееры шлют поток в pipe-файл и соответственно клиенты icecast'а уже не отваливаются, а в худшем случае получают тишину/буферизацию при истощении основного потока. Если переключение плееров за pipe-файлом будет быстрым, никто не заметит, т.к. буферизация сгладит эффект, она минимум пару секунд занимает по времени.

То есть схема несколько усложняется:

player1 -----> pipe ---> player -> icecast -> clients    
player2 ------> |                     |  ---> clients
player3 ------->                       -----> clients
player1, player2, player3 соответственно подключаются в необходимой очерёдности, но в один момент играет только один.

nickleiten ★★★
()
Ответ на: комментарий от KOSHVs

Посмотри всё же MLT, который ты проигнорировал из моего сообщения, в частности Melted и MVCP из этого проекта. Ещё у них есть какой-то скрипт к mlt специально для свитчинга, но не очень ясно что конкретно с ним делать.

ЗЫ: в данный момент у них сайт лежит, пришлось через гуглокеш смотреть...

FriendlyFire
()
Ответ на: комментарий от FriendlyFire

выполнять нужно автоматически.. вообще без участия пользователя..

получилось запустить через icecast fallback но работает не очень корректно. после того как первый поток падает второй сразуже включается, но когда первый возвращается icecast не стремится переключатся сразуже на первый, второй поток работает примерно полторы минуты после включения первого и потом переключается на первый.. теперь ищу как можно изменить таймаут... также прорабатываю вариант player1 -----> pipe ---> player -> icecast -> clients player2 ------> | | ---> clients player3 -------> -----> clients

KOSHVs
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.