После долгого перерыва решил я, таки, продолжить цикл статей о Tvheadend.)
В пятой части обзора, поговорим о том, как добавить потоки, которые не работают в tvh с помощью добавления штатными средствами.
К примеру, потоки mpeg-dash или mp4 без предварительной обработки работать не будут. Помимо этого, приведенные ниже примеры, позволят добавлять относительные ссылки c youtube, twitch и не только, без предварительного их преобразования.
Все нижеописанные "фокусы", доступны, благодаря частичной поддержки pipe (конвейера) в tvh. В глобальном понимании pipe - это перенаправление ввода/вывода команд из одной в другую.
Добавление потока в tvheadend с помощью ffmpeg
pipe:///usr/bin/ffmpeg -loglevel warning -i ссылка_на_поток -map 0 -codec copy -f mpegts pipe:1
где, -map 0 - добавляем все потоки на видео и аудио, которые есть в потоке; -codec copy - копируем кодеки аудио и видео из входа на выход без изменений; -f mpegts - меняем контейнер (обертку) на mpeg-ts
Тоже самое, но для потока mp4
pipe:///usr/bin/ffmpeg -loglevel warning -i ссылка_на_поток -map 0 -codec copy -bsf:v h264_mp4toannexb,dump_extra -f mpegts pipe:1
где, -bsf:v h264_mp4toannexb,dump_extra - фильтр, позволяющий "ремуксировать" mp4 в mpegts.
Выше, я привел упрощенные примеры, нужные ключи комманд для каждого конкретного случая можно найти в man ffmpeg
Добавление потока в tvheadend с помощью vlc
pipe:///usr/bin/cvlc --quiet --no-drop-late-frames --no-skip-frames "ccылка_на_поток" --sout '#std{mux=ts,access=file,dst=-}'
где, usr/bin/cvlc - запускаем vlc без графического интерфейса, no-drop-late-frames - не отбрасывать опоздавшие кадры, no-skip-frames - не пропускать кадры.
Другие "ключи" командной строки для vlc, которые могут пригодится в вашем случае, можно найти здесь
Добавление ссылки с youtube, twitch в tvheadend с помощью youtube-dl или yt-dlp
pipe://yt-dlp -f best https://ссылка_на стрим_на_ютуб -o -
где, -f best - выбираем поток с лучшими характеристиками из всех доступных. yt-dlp - это форк youtube-dl, рекомендую использовать его, так как обновления компонентов там происходят гораздо чаще, нежели чем у "родителя".
Полный список источников и описание "ключей", которые могут пригодится - ищите в git`е youtube-dl
Излишне злоупотреблять данным способом не рекомендую, так как youtube может "выписать бан" на ip, где крутится tvheadend).
Помимо вышеприведенного способа, данную манипуляцию можно произвести с помощью streamlink, но, примеры, приводить не вижу смысла, так как, желающие могут найти всю информацию в интернете).
Добавить все вышеописанное "безобразие" в Tvheadend можно двумя способами: в ручном (помуксово) и автоматическом режиме.
В ручном режиме:
Просто добавляем конструкцию с pipe в поле url муксы
либо, заносим в поле Environment (окружение) - шаблон конструкции, а в поле url - добавляем ссылку.
В автоматическом режиме:
В этом случае приводим, загружаемый в tvheadend плейлист, к следующему виду:
#EXTM3U #EXTINF:-1,Имя_канала pipe:///usr/bin/ffmpeg -loglevel warning -i ссылка_на_поток -map 0 -codec copy -f mpegts pipe:1
На этом все... Всем - спасибо за внимание).
Надеюсь, что данный материал был полезен...
Комментарии ()