[h1] Tvheadend und m3u Erstellung[/h1]
An dieser Stelle möchte ich Step by Step erklären wie ihr eine m3u von eueren gemappten Channels aus Tvheadend erstellt, Ziel soll es sein diese auf mobilen Endgeräten (mit oder ohne Streaming Profile) verwenden zu können. Auch ist es möglich 2 Tvheadends über solch eine .m3u über 2 Standorte zu verbinden.
Wir müssen Dazu :
- Eigenes Streaming Profile für die .m3u erstellen
- Einen neuen Tvheadend User mit Speziellen Berechtigungen erstellen
- Auth Key für persistentes Login erstellen
- .m3u Abrufen
[h2]Eigenes Streaming Profile für die .m3u erstellen[/h2]
Einloggen auf Tvheadend Web UI
- Reiter Konfiguration ---> Stream ---> Codec Profiles
- Neues Profile mit "+ Hinzufügen" erstellen, Codec hevc_vaapi (für bandbreiten spaarendes h265 auswählen)
- Bitrate und Auflösung Beispiel 720P mit 3000kb/s, als Device muss euer DRI interface ausgewählt werden.
- Mit einem Klick auf "Anlegen" wird unser neuer Codec angelegt
- Als letzten Step müssen wir ein neues Streaming Profil erstellen welches unseren neuen Video Codec verwenden soll.
- Reiter Konfiguration ---> Stream ---> Streamprofile klick auf "+Hinzufügen" und "Transkodierung/av-lib auswählen"
- Hier jetzt bitte euer neuen Video Codec auswählen, Einstellungen wie aus Screenshot, ggf nach eigenen Wünschen anpassen.
[h2]Einen neuen Tvheadend User mit Speziellen Berechtigungen erstellen[/h2]
- Reiter Konfiguration ---> Benutzer ---> Zugriffseinträge
- "+ Hinzufügen" Berechtigungen anpassen :
- Reiter "Ändere Parameter" --> überall ein Haken Setzen
- "Weboberfläche" --> Haken
- "Streaming" --> Einfach, Erweitert, HTSP
- "Streamingprofil" ---> unser neu erstelltes "hevc_720"
- Kanalnummernbereich der für den User verfügbar sein Soll (Im Beispiel nur Kanal 1 bis 5) (Geht auch alternativ mit Kanaltags)
- ... Siehe Screen
[h2]Auth Key für persistentes Login erstellen[/h2]
- Reiter Konfiguration ---> Benutzer ---> Passwörter
- "+ Hinzufügen" Benutzername eintippen, Passwort einstellen und wichtig, Persistent Authentication auf Aktiviert !
[h2]m3u Abrufen[/h2]
Folgender Befehl dient zum Abrufen der m3u, funktioniert mindestens unter Linux !
curl -L --digest "http://Testuser:testpassword@Meinedomain.deOderIP:9981/playlist/auth/channels"
Um den Output direkt in eine Datei zu schreiben muss ein Ziel angegeben werden, beispielsweise >test.m3u
curl -L --digest "http://Testuser:testpassword@Meinedomain.deOderIP:9981/playlist/auth/channels" >test.m3u
Der Inhalt der M3U sollte eure freigegebene Kanalrange (oder ausgewählte Kanal Tags) beinhalten, sieht z.b so aus :
#EXTM3U
#EXTINF:-1 logo="http://meinedomain.deOderIP/imagecache/592091?auth=P5iKXMrtjhn1e0uHjYqzxoJ1Gj94" tvg-id="6a874f8af22b5961073a6b94163ee041" tvg-chno="1",Das Erste HD
http://meinedomain.deOderIP/stream/channelid/172984170?auth=P5iKXMrtjhn1e0uHjYqzxoJ1Gj94&profile=htsp
#EXTINF:-1 logo="http://meinedomain.deOderIP/imagecache/592162?auth=P5iKXMrtjhn1e0uHjYqzxoJ1Gj94" tvg-id="cec494d7008d04a939f095ee0d1039ff" tvg-chno="2",ZDF HD
http://meinedomain.deOderIP/stream/channelid/1469367502?auth=P5iKXMrtjhn1e0uHjYqzxoJ1Gj94&profile=htsp
#EXTINF:-1 logo="http://meinedomain.deOderIP/imagecache/591993?auth=P5iKXMrtjhn1e0uHjYqzxoJ1Gj94" tvg-id="8c39742c1e62c06e9999f35a76796e98" tvg-chno="3",hr-fernsehen HD
http://meinedomain.deOderIP/stream/channelid/745814412?auth=P5iKXMrtjhn1e0uHjYqzxoJ1Gj94&profile=htsp
#EXTINF:-1 logo="http://meinedomain.deOderIP/imagecache/591937?auth=P5iKXMrtjhn1e0uHjYqzxoJ1Gj94" tvg-id="bf5ca28206540e58ca935e91d468d307" tvg-chno="4",ONE HD
http://meinedomain.deOderIP/stream/channelid/44195007?auth=P5iKXMrtjhn1e0uHjYqzxoJ1Gj94&profile=htsp
#EXTINF:-1 logo="http://meinedomain.deOderIP/imagecache/592085?auth=P5iKXMrtjhn1e0uHjYqzxoJ1Gj94" tvg-id="a75425173dbba9e25108692c7ece088f" tvg-chno="5",RTL HD
http://meinedomain.deOderIP/stream/channelid/388322471?auth=P5iKXMrtjhn1e0uHjYqzxoJ1Gj94&profile=htsp
Alles anzeigen
Wie Ihr seht hat Tvheadends integrierte Option zum erstellen einer .m3u das "Problem" das hinter jedem Extinf das eingestellte Standart Profil verwendet wird, in meinem fall "htsp"
&profile=htsp
Da wir unser neues Profil (hevc_720) verwenden wollen, müssen wir alle "htsp" in "hevc_720" editieren.
Das geht auch einfacher mit einem SED ersetzen Befehl sed 's/htsp/hevc_720/g
als Abruf Oneliner geht das über PIPE |
curl -L --digest "http://Testuser:testpassword@Meinedomain.deOderIP:9981/playlist/auth/channels" |sed 's/htsp/hevc_720/g' >test.m3u
PS, wer 2 Tvheadends über eine M3U verbinden will, muss bzw sollte ffmpegs PIP verwenden pipe:///usr/bin/ffmpeg -i BLABLUB -c copy -f mpegts pipe:1
z.b
#EXTM3U
#EXTINF:-1 logo="http://Meinedomain.deOderIP:9981/imagecache/592091?auth=PnHjATPG7knemRy6gT-rcunPV9aY" tvg-id="6a874f8af22b5961073a6b94163ee041" tvg-chno="1",Das Erste HD
pipe:///usr/bin/ffmpeg -i "http://Meinedomain.deOderIP:9981/stream/channelid/172984170?auth=PnHjATPG7knemRy6gT-rcunPV9aY&profile=hevc_720" -c copy -f mpegts pipe:1