IPTV Stream aufnehmen
ralphi
- linux
- webserver
0 Jörg Reinholz0 Fiona Feige0 ralphi
Hi,
Ich möchte gerne einen Livestream aufnehmen.
also zB. ARD von: http://hls.tv.iptv.ink/daserstede@609281.m3u8|X-Forwarded-For=81.17.18.55 oder http://wownet.ro/str/0002.m3u8|X-Forwarded-For=81.17.18.50
(Nur) unter XBMC/Kodi nimmt er das Format.
mit
ffmpeg -i http://wownet.ro/str/0073.m3u8|X-Forwarded-For=81.17.18.50 -c copy test.mkv
bekomme ich den Fehler:
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
[http @ 0x250610] HTTP error 403 Forbidden
http://wownet.ro/str/0073.m3u8: Input/output error
unter tvheadend bekomm ich es leider auch nicht zum laufen.
Wer hat eine Idee?
Moin!
mit
> ffmpeg -i http://wownet.ro/str/0073.m3u8|X-Forwarded-For=81.17.18.50 -c copy test.mkv
bekomme ich den Fehler:
Ja, Klar. Du machst:
ffmpeg -i http://wownet.ro/str/0073.m3u8
leitest dann die Ausgaben durch den Pipe (|
) nach
X-Forwarded-For=81.17.18.50 -c
um und was das copy soll wüsste "X-Forwarded-For=81.17.18.50" dann auch nicht, wenn es das als Programm gäbe.
Wer hat eine Idee?
Jörg Reinholz
ffmpeg -i http://wownet.ro/str/0073.m3u8|X-Forwarded-For=81.17.18.50 -c copy test.mkv
Die Adresse, die du da zu verwenden versuchst, ist keine URL. Sie stammt aus einer m3u-Datei und der Teil hinter dem senkrechten Strich ist eine HTTP-Zeile, die der Anfrage hinzugefügt werden soll. (Dass der Strich obendrein eine besondere Bedeutung für die Shell hat, steht bereits bei Jörg. Dir fehlen die Anführungszeichen um das gesamte Argument.)
Zweitens wäre die Frage, ob ffmpeg überhaupt m3u-Dateien unterstützt; es sind Listen mehrerer abzuspielender Mediendateien, keine Mediendateien selbst.
[http @ 0x250610] HTTP error 403 Forbidden http://wownet.ro/str/0073.m3u8: Input/output error
Den 403 bekommst du, weil X-Forwarded-For in deiner Anfrage fehlt. So geht das:
wget --header="X-Forwarded-For: 81.17.18.50" "http://wownet.ro/str/0073.m3u8"
Damit erhältst du eine weitere m3u-Datei, aus der du dir wiederum den gewünschten Stream (in aller Regel: die Auflösung) des Senders raussuchen musst – und dessen Adresse kannst du dann direkt an ffmpeg, vlc oder sonstwen verfüttern:
vlc "http://ndr_fs-lh.akamaihd.net/i/ndrfs_hh@119223/index_184_av-p.m3u8?sd=10&rebase=on"
Das funktioniert aber auch nicht immer, weil manche Sender ihre Lizenzen nur für bestimmte Länder bezahlt haben. Deinen ORF wirst du zum Beispiel nur mit einer österreichischen IP sehen können.
Hi,
danke für eure Antworten - entschuldigt meine Späte.
also der Link aus der Playlist von Kodi führt zu einer 2. Playlist mit Auflösungen.
Der Proxy ist wichtig wegen Berechtigung und wahrscheinlich Bandbreite.
wget --header="X-Forwarded-For: 81.17.18.55" "http://hls.tv.iptv.ink/daserstede@609281.m3u8"
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=908000,RESOLUTION=720x404,CODECS="avc1.640028, mp4a.40.2"
http://c001.p112.edgesuite.net/i/c001/daserste_1@97481/index_900_av-p.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=908000,RESOLUTION=720x404,CODECS="avc1.640028, mp4a.40.2"
http://c001.p112.edgesuite.net/i/c001/daserste_1@97481/index_900_av-b.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1428000,RESOLUTION=1024x576,CODECS="avc1.640028, mp4a.40.2"
http://c001.p112.edgesuite.net/i/c001/daserste_1@97481/index_1300_av-p.m3u8
usw..
und zu einer 3. Playlist
wget --header="X-Forwarded-For: 81.17.18.55" "http://c001.p112.edgesuite.net/i/c001/daserste_1@97481/index_900_av-p.m3u8"
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-ALLOW-CACHE:YES
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:7834066
#EXTINF:10.000,
http://c001.p112.edgesuite.net/i/c001/daserste_1@97481/segment7834066_900_av-p.ts?sd=10
#EXTINF:10.000,
http://c001.p112.edgesuite.net/i/c001/daserste_1@97481/segment7834067_900_av-p.ts?sd=10
#EXTINF:10.000,
usw ..
Jetzt komm ich nicht mehr weiter.
Unter win-VLC spielt er mir den .ts-link nicht ab.
wie kann ich ffmpeg dazu bringen mir den Stream zB. 10 min aufzunehmen?
Moin!
Unter win-VLC spielt er mir den .ts-link nicht ab.
Ich erhalte beim Abruf lustige Fehlermeldungen, die zuletzt behaupten, es läge ein DNS-Fehler vor (was nicht der Fall sein kann)
wie kann ich ffmpeg dazu bringen mir den Stream zB. 10 min aufzunehmen?
Tja. Wenn es direkt ffmpeg sein soll, dann musst Du wohl den Teil gehörig umschreiben, der dafür sorgt, dass die Quelle eine via HTTP erreichbare Ressource sein kann. Du musst wahrscheinlich an den Headern rumbasteln.
Hilfreich könnte es auch sein, den loglevel höher zu setzen (ffmpeg -loglevel debug) um zu sehen, was passiert. Mangels Studium des Quelltextes weiß ich aber nicht, ob das zielführend sein kann.
Jörg Reinholz