ralphi: IPTV Stream aufnehmen

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?

--
Viele Grüße aus LA
ralphi
"Nicht alles was einfach ist, ist genial, aber alles was genial ist, ist einfach" - Albert E.
  1. 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?

    1. Bei der Shell aufpassen.
    2. Die Daten mit wget abholen, Client und Forwarder (Proxy) vortäuschen und dem ffmpeg "hinten rein schieben".

    Jörg Reinholz

  2. 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.

    1. 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?

      --
      Viele Grüße aus LA
      ralphi
      "Nicht alles was einfach ist, ist genial, aber alles was genial ist, ist einfach" - Albert E.
      1. 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