ZDF neo Livestream - Trennung von Bild und Ton
-
@gerdd Die Mühe, die du dir gegeben hast, ist anerkennenswert, aber in diesem Fall (und mit der entsprechenden Anpassung auch in anderen) geht es einfacher, wenn du diese URL nimmst (r-klick und “speichern unter”): https://rodlzdf-a.akamaihd.net/none/zdf/20/01/200130_1925_sendung_nhk/3/200130_1925_sendung_nhk_a1a2_3328k_p36v14.mp4.
Mir würde helfen, wenn ich mich zum Aufzeichnen des ZDFNeo-Livestreams nicht mit ffmpeg und der Kommandozeile, für die ich zu doof bin, rumschlagen müsste. -
@gerdd sagte: Nur daß meine Video-Datei auch die bildbeschreibende Tonspur beinhaltete und ich so genau den auch in meiner Output-Datei wiederfand.
So habe ich ein wenig über die Stream-Auswahl bei ffmpeg recherchiert.Das hier vorliegende Problem ist ein anderes als deines. Und deines wird üblicherweise anders gelöst (und zwar mit der Stream-Auswahl via “map”-Option).
Und diese Option kann möglichweise auch für das Problem des OP verwendet werden (ich kenne die map-Option nur im Zusammenhang mit lokalen Files):
ffmpeg -i [URL_masterfile-aus-MV.m3u8] -c copy -bsf:a aac_adtstoasc -map 0:3 -map 0:0 [filename.mp4]
Die Nummerierung der Input-File(s) und der Video-/Tonspuren beginnt bei “0”: “0:3” bedeutet somit: vom 1. Input-File (= Masterfile) der 4. Stream (im Masterfile).
Oder vielleicht transparenter (v = Videospur; a = Audiospur):
-map 0:v:3 -map 0:a:0
Evtl. geht für die Video- und Tonspurselektion auch (m = Metadaten):
-map 0:m:CODECS="avc1.640020,mp4a.40.2" -map 0:m:name:"TV Ton"
-
@styroll Das liest sich sehr vielversprechend. Du bist also der Ansicht, dass das so für den Neo-Livestream funktionieren könnte? Käme diese Syntax denn so in die Kommandozeile? Meinst du das kriegt auch ein Dummy mit pröbeln hin, oder ist das zu kompliziert?
-
@sunrise sagte: Du bist also der Ansicht, dass das so für den Neo-Livestream funktionieren könnte?
Vom Prinzip her schon (hab wie gesagt nur Erfahrung damit im Zusammenhang mit lokalen Videodateien).
Der grosse Vorteil dieser Variante ist, dass man die (wechselnde) Video- und Tonspur-URL nicht zu wissen braucht, solange die Streamreihenfolge oder deren Bezeichnung gleich bleibt. Das heisst, man könnte ein eigenes Set erstellen (und dann dieses z.B. via Button oder Rechtsklick aufrufen) und zwar mit folgendem FFmpeg-Schalter (macOS, Linux):
-user_agent "Mozilla" -i %f -c copy -bsf:a aac_adtstoasc -map 0:v:3 -map 0:a:0 **
Vielleicht probiert das mal jemand im Forum, der nicht geogeblockt ist, mit dem ZDF.neo-Livestream aus. Allenfalls alle 3 Varianten testen.
-
@MenchenSued Ich habe heute morgen um 6 Uhr den ZDFNeo-Livestream aus dem cmd starten und das File aufnehmen können. Leider ist im mp4-Container der Ton zwar vorhanden, aber stark asynchron. Das liesse sich mit Avidemux zwar ausbügeln, ist aber bei einer grösseren Anzahl Files sehr zeitraubend.
Also habe ich mp4 durch m2ts ersetzt, analog VDH (HLS Stream als M2TS streamen). Resultat: Kein Ton mehr und im cmd wiederholt die Fehlermeldung: [mpegts @ 000001d9e39a7e40] AAC bitstream not in ADTS format and extradata missing. Gibt’s für diese Zwickmühle vielleicht eine Lösung? Vielen Dank im Voraus. -
@sunrise sagte: Also habe ich mp4 durch m2ts ersetzt […] Resultat: Kein Ton mehr und im cmd wiederholt die Fehlermeldung: [mpegts @ 000001d9e39a7e40] AAC bitstream not in ADTS format and extradata missing.
Das Audio-Bitstream-Format in Transport-Streams muss im ADTS-Format sein, d.h. für das Packen der Streams in TS-Containern ist keine Umwandlung nötig (d.h. “-bsf:a aac_adtstoasc” weglassen).
-
@styroll Good news, bad news. Die Aufnahme als m2ts funktioniert mit dieser Syntax einwandfrei, aber der Ton ist LEIDER genauso verschoben wie bei mp4. Dank Avidemux - hoffe ich wenigstens, da ich dieses Feature noch nie benutzen musste - sollten sich Bild und Ton im verlustfreien copy-Verfahren relativ einfach synchronisieren lassen. Aber selbst wenn das so gelöst werden könnte, wäre eine synchrone Livestreamaufzeichnung eleganter. Ich habe die Hoffnung jedenfalls noch nicht aufgegeben, dass dies möglich sein könnte.
-
@sunrise
Ich habe heute zwei Aufzeichnungen vorgenommen und keinen Versatz festgestellt. Leider waren es Dokus mit dem Sprecher im Off. Mein Befehl war:ffmpeg -i https://zdf-hls-02.akamaized.net/hls/live/2002461/de/db2a160db8fa0578f9d55391f18d47c1/5/5.m3u8 -i https://zdf-hls-02.akamaized.net/hls/live/2002461/de/db2a160db8fa0578f9d55391f18d47c1/6/6.m3u8 -c copy -bsf:a aac_adtstoasc x1.mp4
-
@sunrise sagte: wäre eine synchrone Livestreamaufzeichnung eleganter
Versuch’s mal mit (weiss nicht, ob das bei Streams funktioniert):
-async 1
(Sync beim Start) oder:
-async 0
(Sync beim ersten Timestamp) oder:
-async 48000
(Sync beim jedem Timestamp; “44100”, falls die Audiospur eine Sample Rate von 44100 kHz aufweist) -
@sunrise sagte in ZDF neo Livestream - Trennung von Bild und Ton:
Leider ist im mp4-Container der Ton zwar vorhanden, aber stark asynchron.
Das habe ich bei Livestreams immer wieder. Ich habe noch kein System herausgefunden, wann es klappt und wann nicht. Ich hatte einmal die Vermutung, dass es Senderabhängig ist. Das hat sich nicht bestätigt.
@styroll hat damals die Vermutung …
Könnte möglicherweise auch auf eine unzuverlässige Verbindung zurückzuführen sein.
… geäußert.
Mittlerweile halte ich das auch für die wahrscheinlicheste Lösung.
Nachdem ich meine Livestreammitschnitte “automatisiert” laufen lasse, starte ich immer etwas mit Vor- und Nachspann, so dass ich Aufnahmen eh immer manuell nachbearbeite, da mach ich dann gleich den Tonversatz gleich mit. (eh auch mit avidemus)
Nichtsdestotrotz ists lästiger Mehraufwand, wenns also Lösungsvorschläge gibt, würd ich mich da gerne anhängen.
-
@DaDirnbocher sagte in ZDF neo Livestream - Trennung von Bild und Ton:
Ich hatte einmal die Vermutung, dass es Senderabhängig ist. Das hat sich nicht bestätigt.
Ich präzisiere. Wenn mein Rechner im Heimatland bleibt und ich heimische Livestreams mitschneide, hatte ich noch nie einen asynchronen Ton.
Erst wenn ich den Rechner über die Grenze schicke und Streams aus dem Ausland mitschneide, kann es zur Asynchronität kommen. Aber auch nicht immer.
-
@DaDirnbocher sagte in ZDF neo Livestream - Trennung von Bild und Ton:
starte ich immer etwas mit Vor- und Nachspann
Bei den ÖR ist das doch eh nötig. Insbesondere ARD und ZDF überziehen gern mal eine viertel oder halbe Stunde. Ich hatte früher ständig Versatz, seit vielen Wochen aber kein einziges Mal mehr. Vielleicht einfach Glück gehabt.
-
@MenchenSued Hab’s natürlich sofort in cmd mit diesem String “C:\Users\Username\Downloads\MediathekView13.5.1\bin\ffmpeg.exe” -i https://zdf-hls-02.akamaized.net/hls/live/2002461/de/db2a160db8fa0578f9d55391f18d47c1/5/5.m3u8 -i https://zdf-hls-02.akamaized.net/hls/live/2002461/de/db2a160db8fa0578f9d55391f18d47c1/6/6.m3u8 -c copy -bsf:a aac_adtstoasc x1 “D:\VIDEO\Mediatheken\Movies & Serials\Livestream-ZDF.neo Livestream-2121904285.mp4” getestet. Leider glücklos, sauber gestartet, dann leider mit folgender Fehlermeldung abortet:
[NULL @ 00000121acae7b40] Unable to find a suitable output format for ‘x1’
x1: Invalid argument -
@sunrise sagte: Unable to find a suitable output format for ‘x1’
Das mit der Kommandozeile hast du noch nicht wirklich verstanden. “x1.mp4” war ja bloss der Name der Output-Datei; und du hast ja einen anderen Namen und Pfad gewählt.
Lass also das “x1” einfach weg – wobei ich jetzt eh nicht weiss, was das soll, denn an den Optionen beim Kommandozeilenaufruf hat sich nichts geändert.…
Wieso sollte dann das AV-Sync-Problem weg sein? -
@styroll Einerseits hast du voll recht, mit der Kommandozeile bin ich leider noch nicht so richtig vertraut. Selbst schuld, da ich mich stets darum gedrückt und immer entweder die GUI-Alternative gewählt, oder die Finger davon gelassen habe (Schwellenangst halt). In diesem Fall habe ich aber echt gedacht das x1 sei ein ffmpeg Befehl. Dass ein Kommentar im off nicht mit den Bildern synchron ist, scheint mir logisch.
-
@sunrise sagte in ZDF neo Livestream - Trennung von Bild und Ton:
das x1 sei ein ffmpeg Befehl
mea culpa. Ich bin zu faul zum Schreiben und nenne temporäre Dateien so, damit ich sie schnell wieder löschen kann.
Du könntest mal den Befehl mit async ausprobieren, wenn Du den aufgezeichneten Stream mit dem Versatz noch hast.
Müsste wie folgt lauten:ffmpeg -i [Input.mp4] -c copy -async 1 [output.mp4]
Dateinamen input.mp4 und output.mp4 bitte anpassen.
-
@MenchenSued Sorry, dass ich erst jetzt reagiere. Ich habe versucht “-async 1” in die Aufnahme einzubauen, was zwar soweit funktioniert hat, aber leider ohne merkliche Verbesserung der Synchronität. Nachdem ich deinen Post nochmals gelesen habe, scheint mir , dass ich was falsch verstanden habe: Nicht während der Aufnahme, sondern den fertigen Stream mit “-async 1” bearbeiten, so wie mit Avidemux? Hat’s Doofmann jetzt kapiert?