29.7.2024, 10:20
(Tento příspěvek byl naposledy změněn: 29.7.2024, 10:26 uživatelem JiRo.
Důvod úpravy: Překlepy
)
Výběr streamu
Někdy se při použití streamlink v konstrukci pro pipe:// v Tvheadend může hodit výběr konkrétní kvality/rozlišení video streamu. V takovém případě v typickém volání streamlink:
můžeme paramer best nahradit konkrétní identifikací rozlišení streamu nebo lépe, seznamem rozlišení. Seznam je třeba uzavřít do uvozovek, např. "180p, 360p, 540p, 720p, 1080p", a streamlik ho použije tak, že ho odleva porovnává s nabídkou kvality v program streamu a pokud tam najde uvedenou kvalitu, tak ji použije, pokud ne, tak v prohledávání pokračuje. Seznam je samozřejmě možné libovolně upravit, aby začal s prohledáváním od kvality, kterou jako nejnižší možnou chcete použít. Seznam nemusí být setříděný, tzn. kvality můžeme libovolně proházet. I v seznamu je možné použít metakódy worst a best, které mohou zaručit, že v případě, pokud konkrétní kvality v seznamu streamlink nenajde, použije tyto. Typicky:
Výpis z logu scriptu streamer.sh, který je konstrukcí pipe:// volán z playlistu pro Tvheadend pak může, při spuštění přehrávání Live TV kanálu, vypadat takto:
kde řádky začínající 2024-07-29 jsou zápisem klíčových infromací ze scriptu a řádky začínající [cli][info] nebo [utils.named_pipe][info] do logu zapisuje právě streamlink díky 2>> ${log_file}.
V případě, pokud by streamlink odpovídající kvalitu zapsanou v parametrch volání nenašel, tedy pokud by ve volání bylo např. pouze "480p", v logu se to projeví následovně:
Někdy se při použití streamlink v konstrukci pro pipe:// v Tvheadend může hodit výběr konkrétní kvality/rozlišení video streamu. V takovém případě v typickém volání streamlink:
Kód:
streamlink --locale cs_CZ dash://${url} best --stdout --ffmpeg-ffmpeg "${ffmpeg}ffmpeg" --ffmpeg-fout "mpegts"můžeme paramer best nahradit konkrétní identifikací rozlišení streamu nebo lépe, seznamem rozlišení. Seznam je třeba uzavřít do uvozovek, např. "180p, 360p, 540p, 720p, 1080p", a streamlik ho použije tak, že ho odleva porovnává s nabídkou kvality v program streamu a pokud tam najde uvedenou kvalitu, tak ji použije, pokud ne, tak v prohledávání pokračuje. Seznam je samozřejmě možné libovolně upravit, aby začal s prohledáváním od kvality, kterou jako nejnižší možnou chcete použít. Seznam nemusí být setříděný, tzn. kvality můžeme libovolně proházet. I v seznamu je možné použít metakódy worst a best, které mohou zaručit, že v případě, pokud konkrétní kvality v seznamu streamlink nenajde, použije tyto. Typicky:
- "360p, 540p, best" - znamená, že streamlink použije 360p, pokud v program streamu není, tak 540p a pokud tam není ani tato kvalita, použije tu nejlepší dostupnou,
- "360p, 540p, worst" - znamená, že streamlink použije 360p, pokud v program streamu není, tak 540p a pokud tam není ani tato kvalita, použije tu nejhorší dostupnou.
Kód:
streamlink --locale cs_CZ dash://${url} best --stdout --ffmpeg-ffmpeg "ffmpeg" --ffmpeg-fout "mpegts" 2>> ${log_file}Výpis z logu scriptu streamer.sh, který je konstrukcí pipe:// volán z playlistu pro Tvheadend pak může, při spuštění přehrávání Live TV kanálu, vypadat takto:
Kód:
2024-07-29 09:38:55.509417940 id: 2346807 service: ...
2024-07-29 09:38:55.991365470 Streamlink url: https://...
[cli][info] Found matching plugin dash for URL dash://https://....
[cli][info] Available streams: 180p (worst), 360p, 540p, 720p, 1080p (best)
[cli][info] Opening stream: 1080p (dash)
[utils.named_pipe][info] Creating pipe streamlinkpipe-1153057-1-6735
[utils.named_pipe][info] Creating pipe streamlinkpipe-1153057-2-927kde řádky začínající 2024-07-29 jsou zápisem klíčových infromací ze scriptu a řádky začínající [cli][info] nebo [utils.named_pipe][info] do logu zapisuje právě streamlink díky 2>> ${log_file}.
V případě, pokud by streamlink odpovídající kvalitu zapsanou v parametrch volání nenašel, tedy pokud by ve volání bylo např. pouze "480p", v logu se to projeví následovně:
Kód:
error: The specified stream(s) '480p' could not be found.
Available streams: 180p (worst), 360p, 540p, 720p, 1080p (best)
