Beiträge von niwi

    Vor ein paar Tagen ging es hier ja um die Frage, ob sich die Untertitel der Anbieter in der Telerising-API an TVHeadend durchreichen lassen. Wir (das heißt ganz besonders fds97AVVS) kamen leider zu dem Ergebnis, dass dies mit aktuellen Tools nicht geht. Selbst die Aufnahme außerhalb von TVHeadend ist schwierig, wenn die Untertitel mit im Video enthalten sein können. Genialerweise schrieb fds97AVVS aber dann ein Script, mit dem man zumindest Audio, Video und Untertitel separat aufnehmen kann und dann über eine automatisch generierte m3u8-Datei abspielen kann. Bei mir funktioniert dies bereits mit Waipu, nicht aber mit dem Anbieter Blue (und ggf. weiteren Anbietern). Sobald ich länger am Sück wieder Zeit habe, schaue ich mir das einmal gründlicher an.

    Nun gibt es eine neu Entwicklung, über die heise.de und LinuxNews berichten:

    FFmpeg 8.0 integriert Whisper: Lokale Audio-Transkription ohne Cloud
    Die kommende Version 8.0 von FFmpeg erhält optional Whisper. OpenAIs KI-Transkription werden sich flexibel einsetzen lassen.
    www.heise.de
    FFmpeg 8.0 integriert Whisper-AI
    Immer häufiger wird – mehr oder weniger sinnvoll – KI in Anwendungen integriert. Das nächste Woche erwartete Release von FFmpeg 8.0 integriert die Whisper-KI…
    linuxnews.de

    Wird es damit möglich werden, ein Live-TV-Signal on-the-fly mit einem Untertitel auszustatten? Im Ergebnis würde ich so etwas wie die automatisch generierten Untertitel bei Youtube & Co erwarten. Die sind zwar immer mal wieder fehlerhaft, aber dennoch eine nützliche Sache. Vielleicht wäre dann ja sogar eine Live-Übersetzung möglich: Also z.B. folgendes Szenario:
    Man guckt einen polnischen Fernsehsende rund bekommt passende deutschsprachige Unteritel direkt unten eingeblendet.

    Wie schätzt ihr dies ein?

    dann hast du definitiv ein anderes problem auf deiner seite. niemand hat solch ein problem.

    Mag sein. Allerdings kenne ich das Problem schon länger mit unterschiedlichen Systemen.

    du solltest dich erstmal darauf konzentrieren auf dem einfachsten weg eine stabile verbindung zu bekommen. ohne dns4me, mal mit vpn.

    Diesen Ratschlag verstehe ich nicht. Ich habe doch klar geschrieben, dass ich einen stabilen Empfang habe, wenn ich streamlink in die pipe aufnehme. Warum soll ich dann auf dns4me verzichten?

    ohne ein docker, direkt auf einem host.

    Ich nutze kein Docker. Ich nutze Proxmox.


    an deiner leitung wirds wohl nicht liegen wenn waipu rund laeuft.

    Korrekt.

    oben nutzt du zc2 zattoo und dan tby teleboy. hast du bei zattoo ein abo oder ist das alles free? wuerde sicher auch ein grund sein.

    Ich bin nicht sicher, was du meinst. Ich nutze alle Schweizer Dienste im Moment kostenlos. Ich habe mein Zattoo-CH-Abo im Februar gekündigt, weil ich in den Monaten davor immer wieder Unterbrechungen hatte. Besonders gravierend war es rund um große Sportereignisse. Da ich lange zahlender Kunde war, finde ich es ok, nun erst einmal eine Weile nur kostenlos unterwegs zu sein.

    niwi ffmpeg faengt irgendwann nach einer minute an die segmente zu skippen. das ist vielleicht einfach zuviel fuer zattoo. jede verbindung 1 stream. maximal 4 aber hier haben wir 7. oder zattoo drosselt die verbindung weil ihnen das zuviel ist und ffmpeg fast der timestamp nicht mehr. normal tut der client ja 1 video, 1 audio und 1 subtitle auswaehlen.

    Ich beobachte das Problem aber schon innerhalb der ersten Sekunden, nicht erst nach einer Minute. Und das Problem tritt auch auf, wenn ich gar nicht alle Streams auswähle. Ich kann auch nicht ganz traditionell (ohne Eintrag von custom ffmpeg pipe command) einen Schweizer Zattoo-Clone in TVHeadend einbinden, ohne dass es zu ständigem Stocken kommt.

    gehts den mit nur 1 spur ohne ruckeln? ist vielleicht dns4me einfach nur kacke? wir haben 20 uhr durch, die ihre server duerften wohl grad an ihre grenzen kommen.

    Das dachte ich früher auch. Ist aber nicht so. Betroffen sind nur die Zattoo-Klone aus der Schweiz. Und auch nur, wenn nicht Streamlink zwischengeschaltet ist.

    Wie genau sieht deine streamlink pipe aus?

    Zumindest bei HLS sollte --hls-audio-select "*" alle Audiospuren berücksichtigen. Achtung, die Gänsefüßchen sind nicht immer einfach in die Kommandozeile zu kriegen. Ich nutzte das aus C++ Quelltext, da geht es ganz normal mit Backslash \"*\" und in einer Unix Shell reicht es vermutlich den ganzen Ausdruck in einfache Hochkommata zu setzen. Wie genau es bei tvh aussehen muss, weiß ich jetzt nicht und hängt davon ab, wie tvh das Kommando startet (z.B. über die shell mit system() oder ...)

    Wenn ich die von dir genannten Parameter versuche, passiert folgendes:

    Code
    streamlink --hls-audio-select "*" --hls-subtitles --hls-subtitles-lang "*" http://192.168.1.5:5000/api/zc2/live/sf-1.m3u8 best
    
    usage: streamlink [OPTIONS] <URL> [STREAM]
    streamlink: error: unrecognized arguments: --hls-subtitles --hls-subtitles-lang best

    Funktionieren die Parameter bei dir tatsächlich? Welche Version hast du? Bei mir ist es 7.3.0.

    Meine funktionierende Streamlink-Lösung (aber halt ohne mehrere Audiospuren) sieht so aus, dass ich folgendes Bashscript angelegt habe:

    Bash
    #!/bin/bash
    /usr/bin/streamlink --mux-subtitles --stdout "$1" best  | ffmpeg -i pipe:0 -vcodec copy -acodec copy -mpegts_service_type advanced_codec_digital_hdtv -f mpegts pipe:1

    Ein Zeile mit Pipe in einer M3U-Datei sieht dann so aus:

    Code
    pipe:///opt/streamlink.sh http://192.168.1.5:5000/api/tby/live/303.m3u8

    Die M3U-Dateien lasse ich mir durch ein Python3-Script automatisch erstellen:

    OK. Bei einem großen Teil der Telerising-Quellen gelingt mir das Durchreichen aller Audio-Spuren. Probleme machen aber die Anbieter aus der Schweiz, die die Infrastruktur von Zattoo nutzen (Zattoo CH, Yallo, Teleboy). Bei diesen wird der Stream nicht (fast alle) oder nur stockend (Spiegel TV Konflikte) abgespielt. Mit diesen Anbietern hatte ich aber auch schon mit den früheren Telerising-Quellen Probleme mit ffmpeg. Die Lösung für mich war, Streamlink in die Pipe zu nehmen. Das funktioiert, führt aber dazu, dass es nur noch eine Tonspur gibt. Mir geht es aktuell aber ja gerade darum, die Tonspuren zu behalten. Ist hier eine Lösung möglich?

    Mein Verdacht ist, dass bei diesen Quellen dieselbe Problematik wie bei Sweez vorliegt. Wir hatten das Thema hier:
    Telerising API - Zattoo, waipu.tv, blue TV & Sky CH für tvHeadend und VLC [Web App]

    Untertitel für Schweizer Streams? Lernst du damit Schweizerdeutsch? :) Cheers aus dem Seenland.

    Bitte korrekt zitieren: "Schweizer", also in Anführungszeichen, sprich Streams von Schweizer Anbietern. Bei mir im Haushalt werden mehrere Sprachen gesprochen, aber nicht von allen gleich gut und dieselben. Die Schweizer Anbieter haben ein großes europäisches Fernsehangebot und viele Kanäle haben Untertitel. Für eine Person ist es tatsächlich auch allgemein hilfreich, sich nicht allein auf das Hörverstehen verlassen zu müssen.

    niwi

    ja allowed_segment_extensions gibs noch nicht in der 7.1.1. haette ich mal checken sollen. gibs nur in git atm. wurde vor 3 monaten erst eingefuegt.

    kannzt dir dort ein aktuelles git release laden.

    Danke. Brauche ich die Funktion denn? Im Kurztest funktioniert es ja ohne. Wichtig wäre mir, dass ich auch mit Untertiteln aufnehmen kann (mit deinem Script). Das habe ich noch nicht gestestet, weil ich erst einmal alles sauber auf eine TVHeadend-Instanz umziehen wollte (noch liegen die "Schweizer" Streams bei mir auf einer eigenen TVHeadend-Instanz und werden an die Hauptinstanz regestreamt.

    Ich verstehe noch nicht so richtig, wie ich das anwenden soll. Ich habe folgendes versucht:

    Eintrag in der API auf der Maschine mit dns4me unter 192.168.1.5:
    FFMPEG_PATH -extension_picky 0 -allowed_segment_extensions ALL -i CHANNEL_URL -map 0 -c copy -copy_unknown -f mpegts pipe:1

    Wenn ich dann http://192.168.1.5:5000/api/ntv/file/c…m3u?ffmpeg=true aufrufe, sehe ich Einträge wie:

    pipe:///usr/bin/ffmpeg -extension_picky 0 -allowed_segment_extensions ALL -i http://192.168.1.5:5000/api/ntv/live/1009.m3u8 -map 0 -c copy -copy_unknown -f mpegts pipe:1

    Ich habe mit der Adresse http://192.168.1.5:5000/api/ntv/file/c…m3u?ffmpeg=true dann zum Anlegen eines IPTV Automated Network auf meiner TVHeadend-Instanz (ohne dns4me) unter 192.168.2.4 wie üblich eingebunden und den Kanal srf2 gemappt. Wenn ich diesen nun in Kodi öffne, kann SRF2 nicht geöffnet werden. Hier die Logmeldung:


    Nachtrag:
    Mit:

    Code
    pipe:///usr/bin/ffmpeg -extension_picky 0 -i http://192.168.1.5:5000/api/ntv/live/1009.m3u8 -map 0 -c copy -copy_unknown -f mpegts pipe:1

    würde es gehen - also wenn ich "-allowed_segment_extensions ALL" weglasse. Ist aber nur oberflächlich getestet.

    Ich möchte in TVHeadend Kanäle der Telerising-API integrieren. Dabei sollen auch alle Audiospuren durchgegeben werden. Solange die Telerising-API und TVHeadend auf demselben Server liegen, funktioniert dies prima. In der API nutze ich hierfür unter custom ffmpeg command:
    FFMPEG_PATH -i CHANNEL_URL -map 0 -c copy -copy_unknown -f mpegts pipe:1

    Nun habe ich allerdings eine zweite Instanz der Telerising-API auf einem zweiten Server. Dieser nutzt dns4me, sodass ich dort auch Anbieter aus der Schweiz einbinden kann. Wie kann ich von dort nun die Kanäle in TVHeadend einbinden? Meine Erwartung wäre, dass es ausreicht, dass ich in der API die Proxy-Funktion aktiviere und ansonsten genau vorgehe, wie bei der Instanz vom Hauptserver. Allerdings klappt dies nicht. Hier der TVHeadend-Log, wenn ich SRF1 von Netstream auf diese Weise öffnen möchte: https://pastebin.com/Q6gpxK6w

    Es funktioniert hingegen, wenn ich auf der dns4me-Instanz mit denselben Einstellungen (außer natürlich für Proxy) den Anbieter einbinde. Es funktioniert auch, wenn ich lediglich auf die ungepipete M3U-Datei (http://192.168.1.5:5000/api/ntv/file/channels.m3u) auf der Hauptinstanz öffne und dann selbst manuell pipe. Probleme treten also auf, sobald ich die url mit ffmpeg-Zusatz abrufe (http://192.168.1.5:5000/api/ntv/file/c…m3u?ffmpeg=true). Dabei spielt es auch keine Rolle, ob ich unter custom ffmpeg pipe command etwas eingetragen habe oder nicht.

    Wie gesagt: Mein Ziel ist es, dass ich auf der Hauptinstanz ohne dns4me die Kanäle der Schweizer Anbieter mit allen Ton-Spuren einbinden kann. Wie kann dies gelingen?

    Na, dann:
    Das Instalaltionsverfahren ist unter https://tvheadend.org/p/downloads beschrieben. Für Ubuntu ist der erste Schritt auf der Konsole:
    curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.deb.sh' | sudo -E bash
    Damit wird das eigene Repository von TVHeadend dem Ubuntusystem hinzugefügt.

    Für die eigentliche Installation bzw. in deinem Fall die Aktualisierung:
    apt update
    apt install tvheadend

    Bei Problemen möglichst die Fehlermeldung mit angeben.

    ja so sieht es bei der eingabe aus. ausgabe ist da das problem.

    libav ist ueberall der unterbau also was ffmpeg nicht kann zaubert auch kein vlc.

    • ttml kein encoder/decoder nur mux. sinnlos
    • mpegts specs nur dvbsub
    • webvtt seit 7.1.1, hab ich grad getestet. geht nicht. wo wir wieder beim naechsten gedanken sind. geht nur bei vollstaendiger subtitle file im stream und nicht bei chunks.
    • eigender dowloader basteln und dann subtitles kalkulieren und dann alle chunks decrypted bei cenc/muxen.

    Das heißt, ich brauche es gar nicht weiter zu probieren, weil alle Wege derzeit verbaut sind, außer etwas selbst zu programmieren? Wäre vielleicht noch GStreamer eine Option?

    fuer hls mit webvtt brauchste ne neuere ffmpeg version. der stream hat laut ffprobe auch keine subtitles.

    Danke. Ich probiere es dann demnächst noch einmal mit einer neueren Version. In kürze kommt ohnehin eine neue Debian stable heraus.

    Zu den fehlendende Untertiteln laut ffprobe: Ja, stimmt. Ich kann sie auch tatsächlich nicht sehen, wenn ich die http://192.168.1.5:5000/api/swc/live/39.m3u8 mit einem Texteditor öffne. VLC kümmert dies aber nicht und zeigt sie dennoch an...

    Ich habe gerade in VLC unter Codeninformationen nachgesehen. Dort wird als Format WEBVTT genannt. Dann hätte ich sie aber doch im Texteditor sehen müssen, oder...

    Liefert Telerising die Untertitelspur vielleicht erst verzögert aus, wenn die 39.m3u8 bereits abgespeichert ist und ffprobe mit dem Test schon durch ist?

    wenn das geht, dan geht auch ffmpeg -re -i http://192.168.1.5:5000/api/swc/live/39.m3u8 -map 0 -c copy aufnahme.mp4

    Naja, eben nicht...

    was sagst den ffprobe http://192.168.1.5:5000/api/swc/live/39.m3u8

    blub - Pastebin.com
    Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
    pastebin.com

    das ist nur ein externer input, da muss die sub schon exitieren um sie mit zu muxen

    Ich habe vesehentlich den falschen Befehl für cvlc eingefügt. Ich hatte mir verschiedene. Varianten von der KI vorschlagen lassen, nachdem iche selbst nicht hinbekommen hatte. Das tat aber nichts zur Sache, da mir ja anders als zu ffmpeg hier auch kein konkreter Befehl genannt wurde. Ich hatte easy4me (und indirekt buers) aber so verstanden, dass es gehen würde.

    Zumindest mit VLC kannst du durchaus aufnehmen.

    • cvlc brauchst du dafuer nicht, ffmpeg -re -i telelala -map 0 -c copy aufnahme.mp4

    Ich habe mittlerweile sowohl mit cvlc wie mit ffmpeg versucht, einen Stream mit Untertiteln aufzunehmen. Mir gelingt es aber nicht. Die Untertitel fehlen. Wie müsste der korrekte Befehl lauten?

    Das habe ich versucht:

    Streamadresse: BBC 2 vom Anbieter Blue über Telerising. Der Stream kann erfolgreich auf dem VLC auf meinem MacBooc mit vlc abgespielt werden. Untertitel sind in VLC nutzbar.

    mit ffmpeg:
    ffmpeg -re -i http://192.168.1.5:5000/api/swc/live/39.m3u8 -map 0 -c copy aufnahme.mp4
    -> die fertige Datei hat keine Untertitel

    mit cvlc:
    cvlc http://192.168.1.5:5000/api/swc/live/39.m3u8 --sub-file untertitel.srt --sout="#std{mux=mkv,access=file,dst=aufnahme.mkv}" --run-time=3600 vlc://quit

    Ich nutze auch Proxmox und speichere die Aufnahmen auf meiner Synology-NAS. Früher war mein TVHeadend-Server auf Ubuntu. Damit war die Einbindung der Synology relativ einfach. Dann bin ich auf Debian Bookworm gewechselt und mein vorheriger fstab-Eintrag funktionierte nicht mehr. Mit etwas rumfrickeln habe ich es dann aber hinbekommen. Vielleicht hast du ja auch Bookworm. Hier einmal meine Zeile in der fstab:

    //192.168.1.7/tvheadend/recordings /var/lib/tvheadend/recordings cifs rw,uid=1011
    ,gid=109,username=USER,password=PASSWORT,vers=3.0,sec=ntlmssp,nounix,,
    iocharset=utf8,_netdev,auto

    Ich meine, dass bei mir das Hinzufügen von ",vers=3.0" den Unterschied gebracht hat. Die Angaben zu uid und gid müssen passend zum System sein.

    waipu ueber telerising kann nur 1 sender. du kannzt aber 1 sender auf meheren clients gleichzeitig laufen haben. (4x hab ich schon getestest)

    Waipu ist nicht mein eigentliches Interesse beim Thema Untertitel. Mir geht es vor allem um die fremdsprachigen Sender der Anbieter aus der Schweiz. Ich habe es aber zum Testen genommen, damit das Thema Geoblocking nicht als zusätzlicher Faktor beim Herumprobieren zu berücksichtigen ist.

    was spricht dagegen alle deine anbieter direkt in kodi zu nutzen (pvr.waipu etc) die aufnahmen sind ja an jedem client sichtbar, nur das aufnahme limit ist hier hinderlich.

    Du meinst Cloud-Aufnahmen zu nutzen? Das habe ich schon einmal bei Yallo erwogen. Dort hätte ich ja die Schweizer TV-Auswahl kombiniert mit einer eingeschränkten Aufnahmeoption. Leider ist die Aufnahmeoption dort aber nicht nur begrenzt in Hinblick auf den Umfang. Es gibt auch keine Serienaufnahmen kostenlos. Bei Zattoo-Schweiz war ich deswegen lange zahlender Kunde. Aber im letzten Jahr war der Service zu instabil bei mir, um dies fortzusetzen. Ich nutze zudem ziemlich viel die Autoaufnahme-Funktion von TVHeadend. Diese gibt es meines Wissens so nicht direkt über Kodi.

    telerising proxy mode ist das beste was du da nutzen kannzt, ersparrt dir viel arbeit wenns auch um deine dns4me etc geht

    Naja, so viel Arbeit macht die zusätzliche Instanz gar nicht. In Proxmox kann man den ohnehin eingerichteten TVHeadend-Server mit wenigen Mausclicks klonen. Dann muss man nur noch ein paar Dinge anpassen und schon hat man eine zweite Instanz. Mir ist umgekehrt nicht so richtig klar, wie der telerising proxy mode funktioniert. Aber er würde dann ja auch nur mit Anbietern laufen, die in Telerising integriert sind. Aktuell brauche ich tatsächlich auch nicht mehr. Aber vor ein paar Monaten konnte ich über die Schweizer Anbieter die BBC-Kanäle nicht ausreichend verlässlich nutzen. Da konnte ich dann über meine Dns4me-Instanz von TVHeadend die BBC-Kanäle über Streamlink einbinden.

    warum nicht tvheadend aufnehmen lassen, und wen er fertig ist durch deine aufnahme ersetzen. (geht alles mit der api, mach ich hier nach jeder aufnahmen um alles in mkv zu wandeln und zu schneiden)

    cvlc brauchst du dafuer nicht, ffmpeg -re -i telelala -map 0 -c copy aufnahme.mp4

    edit: noch ein kleiner nachtrag. am besten fuer dein vorhaben ist die tvheadend.log zu beobachten, und genau dann zu starten/stoppen wenn tv headend dies tut, und du weist dann auch gleich welchen der 5 streams du in telerising amsprechen musst.

    Danke für die tollen Ideen. Ich werde das versuchen umzusetzen (-:

    niwi

    es tut mir echt leid, aber der speichert die aufnahmen als ts und ohne untertitel. also ist dvbviewer nur in der lage abzuspielen mit untertiteln.

    Arrrgghh! Dann werde ich und meine KI halt was Schönes basteln, um Aufnahmen mit cvlc anzulegen. Mir schwebt da so etwas vor, dass über die TVHeadend-API die Aufnahmetime-Zeiten abgegriffen werden, dann für cvlc genutzt werden und dann (wenn es die TVHeadend-API zulässt), die Aufnahme-Time rentfernt werden.

    habs soebend getestet mit dem mediaserver den sie anbieten. upnp oder rtsp.. gibt kein untertitel weiter.

    Verfluchter Mist. Danke. Kann man aber von Kodi aus Aufnahmen im DVBViewer einrichten und haben die dann Untertitel? Aus Sicht der Familie wäre es dann ja dennoch einheitlicher Ort, von wo aus alles bedient wird, auch wenn ich einen sonst unnötigen Server und eher fehleranfälligen Server im Hintergrund vorhalten müsste...