Страница 1 из 1

Черный фон при переключении каналов

Добавлено: 09 апр 2020, 17:53
gusav
Доброго времени суток, уважаемые форумчане. Разбираю код плагинов, показывающих IPTV. Плагин myiptv_2.0 при переключении каналов, показывает черный фон пока грузится следующий канал. А все остальные , в том числе myiptv_1.0 показывают фон при переключении с udp-канала на http и наоборот. А если протокол один картинка текущего канала застывает, пока грузится следующий. Детальный анализ кода плагина с черным фоном показал следующее:
1. В функцию get_tv_stream_url переменная $playback_url не передается, а получается так

Код: Выделить всё

$playback_url = $this->global_channels[$playback_id]['urls'][$this->global_channels[$playback_id]['source']]; 
2. В функции загрузки плейлиста при создании нового экземпляра класса канала в конструктор класса передается не адрес потока, а адрес http://ts://blog.isayev.org.ua/$cid.
Просьба к знатокам пояснить оба пункта:
1. какая разница как получать $playback_url в функции get_tv_stream_url, почему в одном случае получается черный фон при переключении каналов, а во втором только при при переключении с udp-канала на http и наоборот?
2 Как я понял по адресу http://ts://blog.isayev.org.ua крутится некий сервер, который ретранслирует адрес потока в виде mpeg ts? Поправьте меня если я ошибаюсь. И какое программное обеспечение можно использовать для этих целей?

Re: Разработка плагинов

Добавлено: 09 апр 2020, 18:20
gusav
Прошу прощения, я, кажется, создал тему не в том разделе( Просьба модератору, если можно, перенести ее в раздел Вопросы по плагинам.

Re: Разработка плагинов

Добавлено: 09 апр 2020, 19:56
gusav
gusav писал(а):
09 апр 2020, 17:53
1. В функцию get_tv_stream_url переменная $playback_url не передается, а получается так

Код: Выделить всё

$playback_url = $this->global_channels[$playback_id]['urls'][$this->global_channels[$playback_id]['source']]; 
Получается, что черный фон при переключении каналов появляется из за того, что адрес потока мы получаем из $this->global_channels, а там как мы помним http://ts://blog.isayev.org.ua/$cid. В таком случае вопросы по 1 пункту снимаются, остаются вопросы только про программное обеспечение сервера по адресу http://ts://blog.isayev.org.ua/

Re: Разработка плагинов

Добавлено: 10 апр 2020, 19:26
Brigadir
Простите, а какая разница, черный фон или не черный? На разных платформах разные плеера, и поведение плееров в таких мелочах может отличаться. Даже если докопаться и пофиксить, далеко не факт что это будет работать на других платформах. И если так (что весьма вероятно), то зачем тратить время на все эти анализы?!

Re: Разработка плагинов

Добавлено: 10 апр 2020, 19:57
gusav
Разница в адресе потока. Фиксить, простите, я никого ничего не просил - давно сам все пофиксил.Вопрос был в надежде, что вы поможете разобраться в ПО, ретранслирующем данный поток. Зря видимо, надеялся.

Re: Разработка плагинов

Добавлено: 10 апр 2020, 20:49
Brigadir
gusav писал(а):
10 апр 2020, 19:57
Разница в адресе потока. Фиксить, простите, я никого ничего не просил - давно сам все пофиксил.Вопрос был в надежде, что вы поможете разобраться в ПО, ретранслирующем данный поток. Зря видимо, надеялся.
Непонятно что вы хотите.

Re: Разработка плагинов

Добавлено: 10 апр 2020, 22:54
gusav
Я хочу имитировать сервер http://ts//blog.isayev.org.ua/$cid . Именно этот урл является адресом потока, и именно он даёт чёрный фон при переключении каналов. Застывшая картинка, имхо, не красиво. Но не совсем понятно, что он делает и какое ПО для этого можно использовать.

Re: Разработка плагинов

Добавлено: 10 апр 2020, 23:16
gusav

Код: Выделить всё

$channel = new SmartChannel($id, $this->global_channels[$id_key]['caption'], self::get_icon_path($id),"http://ts://blog.isayev.org.ua/$id_key", $n,	$past_epg_days,
self::get_future_epg_days($id), $is_protected, $buf_time, $arc);
..................................................................................................................................................................................................................................................................
public function get_tv_stream_url($playback_uid, &$plugin_cookies)
    {
    		$playback_id = substr($playback_uid, 31);

	$playback_url = $this->global_channels[$playback_id]['urls'][$this->global_channels[$playback_id]['source']];									
В таком виде имеем переключение каналов с черным фоном.

Код: Выделить всё

$channel = new SmartChannel($id, $this->global_channels[$id_key]['caption'], self::get_icon_path($id),$media_url, $n,	$past_epg_days,
self::get_future_epg_days($id), $is_protected, $buf_time, $arc);
..........................................................................................................................................................................................................................
public function get_tv_stream_url($playback_url, &$plugin_cookies)
    {
    				$this->finalUrl = $playback_url;
		if (preg_match("|^udp:\/\/\d|",$playback_url))
А в таком застывшая катринка при переключении. Основной вопрос, что мня мучает - что скрывается за адресом"http://ts://blog.isayev.org.ua/$id_key", и на каком ПО я могу собрать свой аналогичный сервис?

Re: Разработка плагинов

Добавлено: 10 апр 2020, 23:18
Brigadir
Что там скрывается неважно.
Parameters for playback URLs
Syntax:

Код: Выделить всё

   {media_url}|||dune_params|||param1:value1,...,paramN:valueN
Supported parameters:

keep_pic:0|1 (default: 1)
For MPEG-TS media.
Specifies if the last shown frame should be kept on screen (instead
of showing black screen) while switching between MPEG-TS streams. Has
effect only when both MPEG-TS streams are streamed in a way allowing
the system to optimize streams switching (e.g. both streams are
multicast streams, or both streams are HLS streams, etc) and avoid
full playback engine restart; when full playback engine restart
happens, blank screen is shown anyway.

Example:

Код: Выделить всё

   http://myserver.com/my_content|||dune_params|||keep_pic:0
SDK

Re: Разработка плагинов

Добавлено: 11 апр 2020, 01:15
gusav
Спасибо) Это именно то, что я искал)