TVLINK - 3.2.2

  • 27 Ответов
  • 4984 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн Alex

  • Администратор
  • Ветеран
  • *****
  • 1455
  • +14/-0
TVLINK - 3.2.2
« : 24 Октября 2022, 19:42:43 »

TVLINK: настройка и использование (инструкция обновляется и дополняется).


Телеграм чат по вопросам TVLINK.


Отдельный релиз для MIPSEL (MediaTek MT7621AT, OpenWrt 22.03, Python 3.10 ) собранный под Python-3.10:
Код
http://addons.alexelec.tv/TVLINK-3.2.2-mipsel-py3.10.tar.bz2

- обновлена утилита "picons" (синхронизация имен каналов с программой)
- добавлен модуль преобразования потоков в реальном времени через FFMPEG (transcoding)

FFmpeg transcode stream.

Основное назначение этого модуля - обеспечить нормальное переключение разных потоков одного и того же канала в KODI. Имеется ввиду, когда TVLINK автоматически переключает переставший работать поток на следующий.
Как я уже упоминал, если аудио-параметры нового потока отличаются от предыдущего -  плеер в KODI не сможет проиграть такой (новый) поток.
Модуль "FFmpeg transcode stream" решает проблему, преобразовывая все потоки к одному и тому же аудио формату.

Также, модуль можно использовать для передачи потоков в "Tvheadend" или просто для перекодировки потоков в нужный формат...

Если в Вашей системе установлен FFmpeg, на странице "Settings" веб-интерфейса TVLINK, будет возможность включить модуль "FFmpeg transcode stream".

***В системах AlexELEC (для PC/Amlogic) FFmpeg встроен в систему. В CoreELEC ae-fork нужно установить плагин "FFmpeg-tools".



Опции - это параметры командной строки FFmpeg. Назначение полей:

  • Before input - для параметров аппаратного транскодинга
  • Video encoder - параметры видео энкодера
  • Audio encoder - параметры видео энкодера
Чтобы было понятно, какая опция куда будет вставлена - строка параметров FFmpeg  по умолчанию  выглядит так (упрощенная схема):

Цитировать
/usr/bin/ffmpeg -err_detect ignore_err -stream_loop -1 [Before input] -i http://channel.stream -c:v [Video encoder] -c:a [Audio encoder] -ignore_unknown -map 0:v -map 0:a -f mpegts

Video/Audio encoder по умолчанию содержат параметр "copy". Если эти строки пусты в веб-интерфейсе - будет установлено значение "copy" (пропускать поток без перекодирования).

Для основного своего назначения (преобразования аудио для KODI) , установите значение для "Audio encoder" например так - "aac -b:a 96k".



Это означает, что аудио всех потоков будет выдаваться в формате "AAC (Advanced Audio Coding)" с битрейтом 96 kbit.

Перед тем как устанавливать значения - убедитесь, что ffmpeg в Вашей системе поддерживает те или иные параметры. Например, дайте команду
Код
ffmpeg -hide_banner -encoders
чтобы посмотреть доступные Вам аудио/видео энкодеры.
Вот вывод этой команды в системе AlexELEC-PC:
Код
Encoders:
 V..... = Video
 A..... = Audio
...
 ------
 V..... h263                 H.263 / H.263-1996
 V....D h264_vaapi           H.264/AVC (VAAPI) (codec h264)
 V....D hevc_vaapi           H.265/HEVC (VAAPI) (codec hevc)
 VFS... mjpeg                MJPEG (Motion JPEG)
 V.S... mpeg2video           MPEG-2 video
 V.S... mpeg4                MPEG-4 part 2
 VF.... png                  PNG (Portable Network Graphics) image
 A..... aac                  AAC (Advanced Audio Coding)
 A..... ac3                  ATSC A/52A (AC-3)
 A..... wmav2                Windows Media Audio 2

Если процессор в Вашей системе (например Intel Pentium N5000 в моем боксе) поддерживает аппаратное преобразование потоков - можно сделать такие настройки:

Before input
Код
 -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_device /dev/dri/renderD128
Video encoder
Код
h264_vaapi -r 50
Audio encoder
Код
aac -b:a 96k

Before input - здесь говорит о том, что мы будем использовать аппаратные возможности видео-адаптера Intel UHD Graphics 605 для преобразования потока.
Video encoder - указываем encoder "h264_vaapi" (в H.264) и задаем частоту обновления выходного потока (frame rate) 50 кадров/сек.

К слову, на моем Intel Pentium N5000 я подключал 4 клиента к TVLINK c включенными настройками выше (аппаратное кодирование h264) без особой нагрузки на процессор (примерно 30%).
А вот если включить кодек "hevc_vaapi" (H.265/HEVC) - больше одного клиента не обработать. При этом процессор не загружен, просто ограничение в самой графике.
Хочу предупредить, что FFmpeg не всегда может нормально перейти от одного потока на другой, при аппаратном кодировании видео (речь идет именно о кодировании видео, если Вы его включили). Например, если первый поток канала был обычный h264 с частотой 25 кадров, то переход на Youtube-поток этого канала с частотой 30 кадров - вызывает падение FFmpeg и TVLINK переключает дальше. Хотя, в обратном порядке (сначала Youtube 30, потом обычный 25) - проблем не возникает.

После применения настроек (Apply Settings) на странице "About" появиться ссылка на "M3U FFmpeg Playlist" (формат: http://ip-address:port/ffmpeglist).



Включение "FFmpeg transcode stream" не влияет на основной модуль вешания. Они работают параллельно. Вы можете одновременно подключить одних клиентов к обычному плейлисту (playlist), а других к "FFmpeg transcode stream" плейлисту (ffmpeglist).
По ссылке "http://ip-address:port/ffmpeglist" - Вы всегда можете получить плейлист, даже если "FFmpeg transcode stream" отключен и в системе нет FFmpeg. Поэтому будьте внимательны.

Если включить "Debug Streams" и запустить TVLINK из командной строки
Код
/storage/.config/tvlink/tvlink
при остановке потока будет выведена информация FFmpeg (кодирование, ошибки и тп). Например преобразование аудио/видео потоков:



PVR TVLINK Client - 2.2.1

Во всех системах будет обновлен "PVR TVLINK Client". Будет добавлена опция "FFmpeg плейлист", которая служит для работы с модулем "FFmpeg transcode stream".

« Последнее редактирование: 22 Ноября 2022, 17:19:47 от Alex »
Alex@ELEC

*

Оффлайн pimlab22

  • Пользователь
  • **
  • 89
  • +0/-0
Re: TVLINK - 3.2.2
« Ответ #1 : 25 Октября 2022, 09:02:11 »
может сразу сделать выбор потока ffmpeg или нет в TVLINK simple control в стандартном плайлисте с запоминанием для канала и было бы супер если это завелось под kodi19 тоже :)
сегодня попробую пробросить в виртуалку с твлинк аппаратный ваапи

*

Оффлайн Alex

  • Администратор
  • Ветеран
  • *****
  • 1455
  • +14/-0
Re: TVLINK - 3.2.2
« Ответ #2 : 25 Октября 2022, 10:44:10 »
может сразу сделать выбор потока ffmpeg или нет в TVLINK simple control в стандартном плайлисте с запоминанием для канала
На данный момент так не получиться. PVR TVLINK получает либо обычный, либо ffmpeg плейлист. Может в будущем я это обдумаю.
Alex@ELEC

*

Оффлайн vigera

  • Пользователь
  • **
  • 25
  • +1/-0
Re: TVLINK - 3.2.2
« Ответ #3 : 25 Октября 2022, 13:33:11 »
Установил на KII Pro S905 c AE 3.3.4. С дефолтными установками FFmpeg transcode stream, тремя моими плейлистами (основной из которых tsn-full) и большинством Ваших аддонов  сеть из ffmpeglist в Tvheadend работает отлично!
Спасибо большое! :)

*

Оффлайн Alex

  • Администратор
  • Ветеран
  • *****
  • 1455
  • +14/-0
Re: TVLINK - 3.2.2
« Ответ #4 : 25 Октября 2022, 13:46:04 »
Спасибо большое!
Пожалуйста )
Alex@ELEC

*

Оффлайн vigera

  • Пользователь
  • **
  • 25
  • +1/-0
Re: TVLINK - 3.2.2
« Ответ #5 : 25 Октября 2022, 14:16:31 »
Alex, ещё одна небольшая хотелка. Нельзя ли в следующих релизах сделать объединение групп каналов по типу как это сейчас реализовано с отдельными сервисами?Чтобы все каналы из одной группы скопом переносились в другую выбранную.

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



*

Оффлайн Alex

  • Администратор
  • Ветеран
  • *****
  • 1455
  • +14/-0
Re: TVLINK - 3.2.2
« Ответ #6 : 25 Октября 2022, 15:01:09 »
Alex, ещё одна небольшая хотелка. Нельзя ли в следующих релизах сделать объединение групп каналов по типу как это сейчас реализовано с отдельными сервисами?Чтобы все каналы из одной группы скопом переносились в другую выбранную.
Подумаю...
Alex@ELEC

*

Оффлайн pimlab22

  • Пользователь
  • **
  • 89
  • +0/-0
Re: TVLINK - 3.2.2
« Ответ #7 : 26 Октября 2022, 09:09:36 »
Возможно будет кому полезно нормализовать весь звук силами ffmpeg со всех каналов к определенному значению, правда не знаю как с этим справятся коробочки.
aac -vbr 3 -ac 2 -ar 44100 -af loudnorm=I=-18:TP=-1:LRA=15

*

Оффлайн vigera

  • Пользователь
  • **
  • 25
  • +1/-0
Re: TVLINK - 3.2.2
« Ответ #8 : 28 Октября 2022, 11:31:24 »
Alex, ещё из хотелок. В веб-интерфейсе Tvlink возле ссылки на источник было бы неплохо видеть количество непромапленных каналов, а также число вновь добавленных (удалённых) после последнего обновления источника.

*

Оффлайн Alex

  • Администратор
  • Ветеран
  • *****
  • 1455
  • +14/-0
Re: TVLINK - 3.2.2
« Ответ #9 : 28 Октября 2022, 12:03:14 »
Alex, ещё из хотелок. В веб-интерфейсе Tvlink возле ссылки на источник было бы неплохо видеть количество непромапленных каналов, а также число вновь добавленных (удалённых) после последнего обновления источника.
Сделать не проблема, но это не рационально. Вывод этих циферок в несколько раз (кратно количеству источников) замедлит открытие страницы. Но может я что-то придумаю...
Alex@ELEC

*

Оффлайн vigera

  • Пользователь
  • **
  • 25
  • +1/-0
Re: TVLINK - 3.2.2
« Ответ #10 : 29 Октября 2022, 15:08:04 »
Вывод этих циферок в несколько раз (кратно количеству источников) замедлит открытие страницы. Но может я что-то придумаю...
Как вариант - вместо подсчёта и вывода цифр организовать цветной индикатор типа зелёный кружок - в источнике добавились новые каналы, красный - какие-то пропали. И удалить кликабельность по ссылке на источник, если в нем все каналы промаплены.

*

Оффлайн Alex

  • Администратор
  • Ветеран
  • *****
  • 1455
  • +14/-0
Re: TVLINK - 3.2.2
« Ответ #11 : 29 Октября 2022, 16:35:45 »
Как вариант - вместо подсчёта и вывода цифр организовать цветной индикатор типа зелёный кружок - в источнике добавились новые каналы, красный - какие-то пропали.
Без разницы, будут это цифры или кружочки - время будет тоже самое. Поясню: сейчас при открытии страницы делается всего один запрос к базе данных, где уже есть все нужные данные.
То, что Вы просите - потребует дополнительно делать запросы для каждого источника, плюс в цикле перебирать ссылки (тоже для каждого источника).
Если найду способ сделать это быстро - тогда решу вопрос.
Alex@ELEC

*

Оффлайн pimlab22

  • Пользователь
  • **
  • 89
  • +0/-0
Re: TVLINK - 3.2.2
« Ответ #12 : 04 Ноября 2022, 09:11:56 »
Добрый день.На "CoreELEC (ae-fork) 19.5-Matrix_ae-03" следуя "В CoreELEC ae-fork нужно установить плагин "FFmpeg-tools" по ssh ffmpeg -encoders вижу ,что есть , но заветной галочки в твлинк "FFmpeg transcode stream" не появилось  :(

*

Оффлайн vigera

  • Пользователь
  • **
  • 25
  • +1/-0
Re: TVLINK - 3.2.2
« Ответ #13 : 04 Ноября 2022, 12:01:15 »
Alex, а как правильно добавлять плейлисты, чтобы одноимённые с уже имеющимися из других источниками промапленными  каналы автоматически не связывались с ними?
А то добавил новый плейлист со 155-ю каналами, из которого вручную собирался промапить лишь 3-4, а из него около половины автоматом связались с ранее имевшимися, а незамапленными остались лишь 81.
Галки с "Add channels" и "New channels", естественно, сняты.
Также вручную отмапил два нужных мне канала из незамапленных автоматом и теперь не могу их найти в общем списке. В алфавитном списке отсутствуют, соединённые с похожим названием пересмотрел - там тоже их нет. Группа в которой они должны бы оказаться - "СПОРТ", почему-то тоже не создалась (но давно имеется группа "Спорт, в которой их не вижу").
Кстати, непонятки и с удалением групп. У меня их расплодилось некоторое количество устаревших пустых от предыдущих уже удалённых источников, но некоторые удалить почему-то не получается.
P.S. Открыл sql-редактором channels.db. В нём видно что нужные каналы добавились и находятся в группе "СПОРТ", которую, почему-то из веб-интерфейса не вижу.
« Последнее редактирование: 04 Ноября 2022, 12:20:19 от vigera »

*

Оффлайн Alex

  • Администратор
  • Ветеран
  • *****
  • 1455
  • +14/-0
Re: TVLINK - 3.2.2
« Ответ #14 : 04 Ноября 2022, 15:54:23 »
Добрый день.На "CoreELEC (ae-fork) 19.5-Matrix_ae-03" следуя "В CoreELEC ae-fork нужно установить плагин "FFmpeg-tools" по ssh ffmpeg -encoders вижу ,что есть , но заветной галочки в твлинк "FFmpeg transcode stream" не появилось  :(
Добрый. Я проверял на двух приставках - все было нормально. Когда появиться возможность, еще раз проверю.
Alex@ELEC