vdr-live-plugin HTML5 Web-Streaming

  • Hallo,

    Für jene die sich da mal damit versuchen wollen:

    https://github.com/REELcoder/vdr-plugin-live

    Es wird ein neueres ffmpeg benötigt. Ich habe ein static-build in /tmp/. Temporäre Streaming-Dateien werden in /tmp/live-hls-buffer/ angelegt.

    ffmpeg wandelt den 1. Audiostream auf AAC um. Der Video-Stream wird nur durchkopiert. Für die meisten Browser bedeutet das, dass nur HD Sender mit H264 Stream funktionieren.

    Viel Spass

    VDR: Zotac ZBOX EN860, 16GB RAM, 2 TB HDD, Debian Bookworm, vdr-2.7.3, softhdcuvid, satip

  • Es wird ein neueres ffmpeg benötigt.

    Reicht ffmpeg 3.4.4?

    ... anscheinend nicht, ich bekomme ein: hls:networkError_manifestLoadTimeOut

    Mein VDR

    Hartware: Gehäuse: Ahanix MCE 302, Mobo: Kontron 986LCD-M/mITX, CPU: Intel Core2 Duo Mobile T7400 2,16GHz, 2GB RAM, SAT: Digital Devices DuoFlex S2 miniPCIe, Graka: ASUS GeForce GT 1030 Silent, 2x4TB + 2x8TB 3,5" WD Red HD, 1x DVD-Brenner Pioneer, Atric IR-Einschalter+Empfänger, FB One-For-All URC-7960, SoundGraph iMON LCD ( MFP5I, 15c2:0038 )
    Weichware: Debian Stretch (x86_64), Kernel 4.15, NVidia v396.54, ffmpeg 3.4.4, VDR 2.4.0 gepatched

  • Ich hatte mir letzte Woche ein static build von https://johnvansickle.com/ffmpeg/ geholt. Es war die letzte git Version. Erst damit hat ffmpeg brauchbare master m3u8 Playlists mit der Option -master_pl_name erstellt.

    In /tmp/live-hls-buffer sollte eine Datei master_<Kanalnummer>.m3u8 erstellt werden die dann auf die ffmpeg_<Kanalnummer>_<timestamp>.m3u8 verweist.

    Beobachte mal was in /tmp/live-hls-buffer und syslog passiert.

    Gruss, Xcoder

    VDR: Zotac ZBOX EN860, 16GB RAM, 2 TB HDD, Debian Bookworm, vdr-2.7.3, softhdcuvid, satip

  • Bei mir mit ffmpeg 4.1 läuft es nicht:

    Mein VDR

    VDR1 Mediaportal mit QVT-Board, Intel 810 Chipsatz, Pentium III 1,1 Ghz, 256 Mb Ram, WDC WD5000AAKB, DVB-S TT 1.5, Nova-S, Digidish 33, Gentoo Kernel 2.6.31, VDR 1.4.7
    VDR2 Asrock M3N78D, AMD Phenom II X6 1055T, 8 Gb Ram, Geforce GTX 950, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    VDR3 MC-1200, GA-B85M-HD3, Celeron G1840, Quadro P400. 4G Ram, CineS2 6, DuoFlex S2, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    TV TX-37LZD85F, AV VSX-520D - Consono 35


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Hi,

    dann ist ffmpeg-3.3.0 wohl auch to Old!

    Code
    vdr: [22320] vdrlive::stream_data::f_worker(0x7f18d800dfe0)
    vdr: [25601] stream utility handler thread started (pid=17981, tid=25601, prio=high)
    vdr: [25601] Live: FFmpegTread::Action() started channel = 1
    vdr: [25601] Live: FFmpegTread::Action::Open(1) ffmpeg started
    vdr: [25601] Live: FFmpegTread::Action() ffmpeg starting... 0
    vdr: [21272] vdrlive::stream_data::f_worker(0x7f18d800dfe0)
    vdr: [21272] vdrlive::stream_data::mimetype(application/x-mpegURL)
    vdr: [21272] vdrlive::stream_data::session(3813e444ccf8da209042cd86682d7d57)
    vdr: [21272] vdrlive::stream_data::path(/tmp/live-hls-buffer/master_1.m3u8)
    vdr: [21272] vdrlive::stream_data::is_open(false) 50 /tmp/live-hls-buffer/master_1.m3u8

    Gruss

    Wolfgang

    Hard & Software

    DVB-S: Silverstone LC17 mit 8,4" TFT Display, ASRock ALiveNF6G, AMD X2 3800+ (35W),4GB, GT 630 - nVidia-387, SSD 64GB, 2TB, TeVii S470, SkyStar S2, Cinergy T RC USB, Kodi-18.0, FB X10 Medion-Scroll, "easyVDR 3.5 (14.04 LTS) - Kernel-4.8.12 - VDR 2.3.8"
    -----------------------------

    DVB-C: ATC-620, Asrock K7S41GX, AMD Geode NX 1750, 2GB, picoPSU, Samsung 500GB 1x 1TB, LDW-851S, DVB-C Fujitsu-Siemens FF, Cinergy 1200, Nova T USB, Atric Rev.4, "easyVDR 0.8 - 2.6.35.10 VDR 1.7.16 "
    -----------------------------

    Client_1: Evo N600c, "Puppy-Slacko 6.3" VDR 2.2.0 - FB X10 Medion_OR25V
    -----------------------------

    Client_2: Himbeere-P2 - MLD-5.4 / LibreELEC-9.0-Milhouse(Kodi-18.0) (PVR-VNSI)

    TT S2-6400 - saa716x kompilieren unter 20.04(Focal)

  • Bei mir mit ffmpeg 4.1 läuft es nicht:

    Code
    vdrlive::stream_data::mimetype(application/vnd.apple.mpegurl)
    vdrlive::stream_data::session(4244c557cc825d75f0293f21b349bf18)
    vdrlive::stream_data::path(/tmp/live-hls-buffer/master_20.m3u8)
    vdrlive::stream_data::is_open(false)  2 /tmp/live-hls-buffer/master_20.m3u8
    vdrlive::stream_data::is_open(false)  1 /tmp/live-hls-buffer/master_20.m3u8
    vdrlive::stream_data: DECLINED

    @jfsffm: Bei deinem System werden m3u8 Dateien als Mime-Type application/vnd.apple.mpegurl erkannt. Da hast du wohl eine andere /etc/mime<irgendwas>.

    Ich matche in stream_data.ecpp auf application/x-mpegURL und stelle den timeout für das erscheinen der master*.m3u8 auf 10 sekunden. Da es bei dir nicht application/x-mpegURL ist, wird nur ein Timeout von 400 ms genommen. So schnell ist ffmpeg aber nicht und wird vorzeitig totgeschlagen.

    Ich matche wohl besser auf die Dateiendung statt auf den Mime Type. Danke für den Hinweis.

    wolfi.m Vermutlich wir es schon 4.x sein müssen. Habe jetzt nicht genau nachgeprüfft ab wann da die ffmpeg Option -master_pl_name richtig funktioniert. Offenbar hat sich bei ffmpeg bei HLS kürzlich noch relativ viel getan.

    Gruss, Xcoder

    VDR: Zotac ZBOX EN860, 16GB RAM, 2 TB HDD, Debian Bookworm, vdr-2.7.3, softhdcuvid, satip

  • Hi,

    Offenbar hat sich bei ffmpeg bei HLS kürzlich noch relativ viel getan.

    so wird es sein! ...mit ffmpeg aus static-build funktioniert es, Merci!:tup

    P.S

    Build i386 läuft auf Launchpad(PPA) nicht durch,amd64 ist Ok.

    Build-Log dazu poste ich später!

    Gruss

    Wolfgang

    Hard & Software

    DVB-S: Silverstone LC17 mit 8,4" TFT Display, ASRock ALiveNF6G, AMD X2 3800+ (35W),4GB, GT 630 - nVidia-387, SSD 64GB, 2TB, TeVii S470, SkyStar S2, Cinergy T RC USB, Kodi-18.0, FB X10 Medion-Scroll, "easyVDR 3.5 (14.04 LTS) - Kernel-4.8.12 - VDR 2.3.8"
    -----------------------------

    DVB-C: ATC-620, Asrock K7S41GX, AMD Geode NX 1750, 2GB, picoPSU, Samsung 500GB 1x 1TB, LDW-851S, DVB-C Fujitsu-Siemens FF, Cinergy 1200, Nova T USB, Atric Rev.4, "easyVDR 0.8 - 2.6.35.10 VDR 1.7.16 "
    -----------------------------

    Client_1: Evo N600c, "Puppy-Slacko 6.3" VDR 2.2.0 - FB X10 Medion_OR25V
    -----------------------------

    Client_2: Himbeere-P2 - MLD-5.4 / LibreELEC-9.0-Milhouse(Kodi-18.0) (PVR-VNSI)

    TT S2-6400 - saa716x kompilieren unter 20.04(Focal)

    Edited once, last by wolfi.m (November 26, 2018 at 1:34 PM).

  • eine schöne Funktion :]

    Könnte man evtl. den alten Streaming-Button "Sendung im Browser zeigen" auch so konfigurieren, das das neue HTML5-Streaming damit gestartet würde?
    Nur so als Idee ohne Ahnung zu haben ;D

    Achso, bei mir hilft es meistens den gewünschten Sender nochmals zu starten, dann ist er garantiert zu sehen (timeout?)

    Gruß, jo01

    Wofür war die Signatur nochmal gedacht? *kopfkratz* :idee

  • jo01 Klar kommt sobald alles sauber funktioniert. Da gibt es schon noch einiges zu tun... Aufnahmen fehlen natürlich auch noch.

    Bei mir klemmt gelegentlich der streamdev-server. Dann hängt ffmpeg und wird durch das cPipe::Close() abgehängt und läuft aber weiter. Ich bin noch dabei den ffmepg Prozess besser zu steuern und nach Ablauf des Timout abzuschiessen wenn etwas am hängen ist.

    Eeleganter wäre es natürlich ohne streamdev-server zu arbeiten und selber cReceiver zu implementieren.

    Ob der clappr HTML5-Player die beste Lösung ist, kann man auch noch prüffen.

    Gruss, Xcoder

    VDR: Zotac ZBOX EN860, 16GB RAM, 2 TB HDD, Debian Bookworm, vdr-2.7.3, softhdcuvid, satip

  • jo01 Klar kommt sobald alles sauber funktioniert. Da gibt es schon noch einiges zu tun... Aufnahmen fehlen natürlich auch noch.

    Uih, der "Sabber"-Reflex setzt auf einmal schlagartig ein ;)

    Es ist schön wenn sich noch etwas am Live-Plugin tut:
    Auch im Jahr 2018 (bald 2019) ist das bei mir noch dauerhaft auf dem VDR-Serverlein im Einsatz.
    Daher freue ich mich über jede Neuerung :]

    jo01

    Wofür war die Signatur nochmal gedacht? *kopfkratz* :idee

  • M-Reimer eine native Playlist bietet doch streamdev-server schon selber an: http://<server>:3000/channels.m3u Oder was meinst Du genau?

    Die aktuelle Version auf github hat jezt einverbessertes Handling des ffmpeg Prozesses. Jetzt sollten keine toten ffmpeg's mehr hängenbleiben.

    Gruss

    VDR: Zotac ZBOX EN860, 16GB RAM, 2 TB HDD, Debian Bookworm, vdr-2.7.3, softhdcuvid, satip

  • Mein Gedanke war, eine M3U auszuliefern, die praktisch genau den Sender, bei dem im Webinterface auf "Play" geklickt wurde, extern in einem Viewer startet.

    Dann könnte man direkt aus dem Webinterface beliebige Streams "extern" starten. Zum Beispiel wieder in VLC.

    Zumindest für mich bringt halt reines HD-Streaming nichts. Und zumindest ich lege wenig Wert darauf, dass Streaming direkt im Browser läuft. Wenn vom Browser aus ein externes Programm gestartet wird ist OK.

    Nur die wenigsten Programme nutze ich in HD, da ich definitiv nie für HD+ zahlen werde. Wenn die Privaten wirklich SD abschalten, dann gibt's für mich halt keine Privatsender mehr. Kann ich gut mit leben.

  • Bei ffmpeg 4.1 bekomme ich folgendes:

    Mein VDR

    VDR1 Mediaportal mit QVT-Board, Intel 810 Chipsatz, Pentium III 1,1 Ghz, 256 Mb Ram, WDC WD5000AAKB, DVB-S TT 1.5, Nova-S, Digidish 33, Gentoo Kernel 2.6.31, VDR 1.4.7
    VDR2 Asrock M3N78D, AMD Phenom II X6 1055T, 8 Gb Ram, Geforce GTX 950, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    VDR3 MC-1200, GA-B85M-HD3, Celeron G1840, Quadro P400. 4G Ram, CineS2 6, DuoFlex S2, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    TV TX-37LZD85F, AV VSX-520D - Consono 35


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Bei Chrome sieht das anders aus:

    Code
    Nov 30 11:27:19 gentoo vdr[9841]: [10307] vdrlive::stream_data::f_worker(0x7f5f680107c0)
    Nov 30 11:27:19 gentoo vdr[9841]: [10307] vdrlive::stream_data::mimetype(application/vnd.apple.mpegurl)
    Nov 30 11:27:19 gentoo vdr[9841]: [10307] vdrlive::stream_data::session(0fd4c3c3542cd4ff01d932ab3e7d96cd)
    Nov 30 11:27:19 gentoo vdr[9841]: [10307] vdrlive::stream_data::path(/tmp/live-hls-buffer/master_1.m3u8)
    Nov 30 11:27:19 gentoo vdr[9841]: [10307] vdrlive::stream_data::is_open(false)  2 /tmp/live-hls-buffer/master_1.m3u8
    Nov 30 11:27:19 gentoo vdr[9841]: [10307] vdrlive::stream_data::is_open(false)  1 /tmp/live-hls-buffer/master_1.m3u8
    Nov 30 11:27:19 gentoo vdr[9841]: [10307] vdrlive::stream_data: DECLINED
    Mein VDR

    VDR1 Mediaportal mit QVT-Board, Intel 810 Chipsatz, Pentium III 1,1 Ghz, 256 Mb Ram, WDC WD5000AAKB, DVB-S TT 1.5, Nova-S, Digidish 33, Gentoo Kernel 2.6.31, VDR 1.4.7
    VDR2 Asrock M3N78D, AMD Phenom II X6 1055T, 8 Gb Ram, Geforce GTX 950, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    VDR3 MC-1200, GA-B85M-HD3, Celeron G1840, Quadro P400. 4G Ram, CineS2 6, DuoFlex S2, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    TV TX-37LZD85F, AV VSX-520D - Consono 35


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • jsffm Im ersten Fall ist einfach vom streamdev-server nichts gekommen und ffmpeg hat nicht zu arbeiten begonnen. Es werden maximal 2 Versuche gemacht. Offenbar gibt es beim streamdev-server noch irgend einen Bug. Manchmal kommt einfach beim ersten Versuch nichts. Habe ich gelegentlich auch, vor alle wenn der VDR Prozess gerade neu gestartet wurde.

    2 Fall: Korrigiere ich noch. Als Workaround kannst du in /etc/mime.types folgendes für m3u8 definieren:

    Code
    application/x-mpegURL                m3u8

    VDR: Zotac ZBOX EN860, 16GB RAM, 2 TB HDD, Debian Bookworm, vdr-2.7.3, softhdcuvid, satip

  • Der Eintrag ist bereits enthalten

    Mein VDR

    VDR1 Mediaportal mit QVT-Board, Intel 810 Chipsatz, Pentium III 1,1 Ghz, 256 Mb Ram, WDC WD5000AAKB, DVB-S TT 1.5, Nova-S, Digidish 33, Gentoo Kernel 2.6.31, VDR 1.4.7
    VDR2 Asrock M3N78D, AMD Phenom II X6 1055T, 8 Gb Ram, Geforce GTX 950, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    VDR3 MC-1200, GA-B85M-HD3, Celeron G1840, Quadro P400. 4G Ram, CineS2 6, DuoFlex S2, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    TV TX-37LZD85F, AV VSX-520D - Consono 35


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • jsffm

    hast du einen Test mit static-build gemacht um auszuschliessen das es nicht an

    dem installierten ffmpeg liegt?

    P.S

    Habe bei mir in der "ffmpeg.cpp" Zeile 64

    Code
    "exec /tmp/ffmpeg -loglevel warning "

    durch

    Code
    "exec /opt/ffmpeg -loglevel warning "

    ersetzt damit bleibt mir das File nach reboot erhalten.

    Gruss

    Wolfgang

    Hard & Software

    DVB-S: Silverstone LC17 mit 8,4" TFT Display, ASRock ALiveNF6G, AMD X2 3800+ (35W),4GB, GT 630 - nVidia-387, SSD 64GB, 2TB, TeVii S470, SkyStar S2, Cinergy T RC USB, Kodi-18.0, FB X10 Medion-Scroll, "easyVDR 3.5 (14.04 LTS) - Kernel-4.8.12 - VDR 2.3.8"
    -----------------------------

    DVB-C: ATC-620, Asrock K7S41GX, AMD Geode NX 1750, 2GB, picoPSU, Samsung 500GB 1x 1TB, LDW-851S, DVB-C Fujitsu-Siemens FF, Cinergy 1200, Nova T USB, Atric Rev.4, "easyVDR 0.8 - 2.6.35.10 VDR 1.7.16 "
    -----------------------------

    Client_1: Evo N600c, "Puppy-Slacko 6.3" VDR 2.2.0 - FB X10 Medion_OR25V
    -----------------------------

    Client_2: Himbeere-P2 - MLD-5.4 / LibreELEC-9.0-Milhouse(Kodi-18.0) (PVR-VNSI)

    TT S2-6400 - saa716x kompilieren unter 20.04(Focal)

  • hast du einen Test mit static-build gemacht um auszuschliessen das es nicht an

    dem installierten ffmpeg liegt?

    Nein, habe ich nicht.

    Mein VDR

    VDR1 Mediaportal mit QVT-Board, Intel 810 Chipsatz, Pentium III 1,1 Ghz, 256 Mb Ram, WDC WD5000AAKB, DVB-S TT 1.5, Nova-S, Digidish 33, Gentoo Kernel 2.6.31, VDR 1.4.7
    VDR2 Asrock M3N78D, AMD Phenom II X6 1055T, 8 Gb Ram, Geforce GTX 950, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    VDR3 MC-1200, GA-B85M-HD3, Celeron G1840, Quadro P400. 4G Ram, CineS2 6, DuoFlex S2, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    TV TX-37LZD85F, AV VSX-520D - Consono 35


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Spitzenmäßig, ich habe gerade meinen VDR headless auf reinen Streamingbetrieb umgestellt. Da kommt die neue Funktion wie gerufen.

    Davon abgesehen, dass ab und zu der Stream nicht beim ersten Versuch startet, läuft es schon ziemlich gut.

    Besten Dank für diese MEGA-sinnvolle Erweiterung und schon mal vorweg für die kommende bessere Integration. :)

    Dr. Brömme grübelt:
    Acht Wochen, nachdem man ihm beim Kölner Straßenkarneval einen Gratiskorn angeboten hatte,
    dämmert ihm langsam, dass er einem hinterlistigen Alaafisten aufgesessen ist.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!