(gelöst) Tonverzögerung bei zusammengesetztem Video
(gelöst) Tonverzögerung bei zusammengesetztem Video
Ich habe hier zwei MKV-Video-Schnipsel, die ich mit ffmpec concatentate aneinandergehägt habe. Vorher hatte ich die Schnipsel mit avidemux an einem gemeinsamen i-Frame zweier separater MKV-Videos erzeugt.
vlc spielt die zusammengesetzte Datei ohne Tonverzögerung ab. Bei smplayer ist der Ton ab dem zweiten Schnipsel nicht mehr synchron. Was kann man tun? Sollte ich was tun?
vlc spielt die zusammengesetzte Datei ohne Tonverzögerung ab. Bei smplayer ist der Ton ab dem zweiten Schnipsel nicht mehr synchron. Was kann man tun? Sollte ich was tun?
Zuletzt geändert von fischig am 26.11.2020 17:30:29, insgesamt 1-mal geändert.
- Lord_Carlos
- Beiträge: 5578
- Registriert: 30.04.2006 17:58:52
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Dänemark
Re: Tonverzögerung bei zusammengesetztem Video
Koennen wir den ffmpeg befehl sehen? Weil ffmpeg kann mehrere concat varianten. Man sollte gerne den concat demuxer verwenden. -f concat
Code: Alles auswählen
╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!
Re: Tonverzögerung bei zusammengesetztem Video
smplayer gibt im Terminal nichts aus. Das hier habe ich mal bei mpv mitverfolgt und nach nopaste gestellt.
Mich erhellt's nicht , aber vielleicht sonst jemand?
Die erste Zeile ist bis zur Schnittstelle praktisch unverändert (mal abgesehen davon, dass da vermutlich Zeiten heruntergezählt werden).
So etwa ab Zeile 60 wird's dann wieder eher konstant.
Nachtrag:
Mich erhellt's nicht , aber vielleicht sonst jemand?
Die erste Zeile ist bis zur Schnittstelle praktisch unverändert (mal abgesehen davon, dass da vermutlich Zeiten heruntergezählt werden).
So etwa ab Zeile 60 wird's dann wieder eher konstant.
Nachtrag:
Code: Alles auswählen
ffmpeg -f concat -safe 0 -i liste.txt -c copy [kompl].mkv
Re: Tonverzögerung bei zusammengesetztem Video
Die Meldungen würde ich so interpretieren, dass da Keyframes fehlen/nicht gefunden werden:
A: Der erste I-Frame des zweiten Schnipsels ist identisch mit dem letzten I-Frame des ersten Schnipsels.
B: Der erste I-Frame des zweiten Schnipsels ist derjenige I-Frame, der auf den letzten I-Frame des ersten Schnipsels folgt.
Bei beiden Varianten hast du eine Veränderung der GOP-Struktur mitten im Film.
Bei A hast du an der Schnittstelle zwei aufeinanderfolgende I-Frames obwohl laut GOP sicherlich zwischendurch P- und B-Frames erwartet würden.
Bei B hast du (zusätzlich) Datenverlust. Prinzipiell könnten vom ersten Schnipsel noch alle P-Frames nach dem letzten I-Frame vorhanden sein, aber du verlierst beim Schneiden die auf den letzten P-Frame folgenden B-Frames. Ich glaube Avidemux behebt das von selbst, wenn du Schneiden und Zusammenfügen in der selben Session machst (ohne das Programm zu schließen bzw. abgespeicherte Schnipsel in einer neuen Instanz zu öffnen).
Ich weiß nicht was die mpv-Meldung genau aussagt, aber ich könnte mir vorstellen, dass mpv von der GOP-Änderung nichts mitkriegt und an den falschen Stellen nach I-Frames sucht. Vielleicht ist vlc hier schlauer und erkennt die GOP-Änderung.
Code: Alles auswählen
[ffmpeg/video] h264: Missing reference picture, default is 65804
Zum Verständnis, eine dieser beiden Varianten trifft zu:fischic hat geschrieben:25.11.2020 21:27:51Vorher hatte ich die Schnipsel mit avidemux an einem gemeinsamen i-Frame zweier separater MKV-Videos erzeugt.
A: Der erste I-Frame des zweiten Schnipsels ist identisch mit dem letzten I-Frame des ersten Schnipsels.
B: Der erste I-Frame des zweiten Schnipsels ist derjenige I-Frame, der auf den letzten I-Frame des ersten Schnipsels folgt.
Bei beiden Varianten hast du eine Veränderung der GOP-Struktur mitten im Film.
Bei A hast du an der Schnittstelle zwei aufeinanderfolgende I-Frames obwohl laut GOP sicherlich zwischendurch P- und B-Frames erwartet würden.
Bei B hast du (zusätzlich) Datenverlust. Prinzipiell könnten vom ersten Schnipsel noch alle P-Frames nach dem letzten I-Frame vorhanden sein, aber du verlierst beim Schneiden die auf den letzten P-Frame folgenden B-Frames. Ich glaube Avidemux behebt das von selbst, wenn du Schneiden und Zusammenfügen in der selben Session machst (ohne das Programm zu schließen bzw. abgespeicherte Schnipsel in einer neuen Instanz zu öffnen).
Ich weiß nicht was die mpv-Meldung genau aussagt, aber ich könnte mir vorstellen, dass mpv von der GOP-Änderung nichts mitkriegt und an den falschen Stellen nach I-Frames sucht. Vielleicht ist vlc hier schlauer und erkennt die GOP-Änderung.
Re: Tonverzögerung bei zusammengesetztem Video
Ich hoffe doch A trifft zu. Jedenfalls war das der Plan. Avidemux meide ich wenn möglich. Zumindest beim Aneinanderhängen habe ich damit ziemlich durchgängig schlechte Erfahrungen gemacht. Das werde ich wohl auf keinen Fall versuchen. Ich weiß nicht, wie ich mit ffmpeg an i-frames schneiden soll/kann. Insofern glaube ich, bei sowas um avidemux nicht herumzukommen und bei länger zurückliegenden Tests schien mir das Schneiden gemäß A das einzig zielführende zu sein.
das erste Schnipsel stammt aus einem Komplett-Video, beim zweiten Schnipsel (aus anderer Quelle) fehlt dummerweise der Anfang des (kompletten)Videos, deswegen der Aufwand. In der vlc-Wiedergabe des Resultates ist vom Schneiden und Kleben nichts mehr zu bemerken. (ok, ganz geringe Video-Artefakte sind an der Klebestelle zu sehen, aber der Ton ist fehlerfrei.) Merkwürden und offenbar keine bessere Alternative.
das erste Schnipsel stammt aus einem Komplett-Video, beim zweiten Schnipsel (aus anderer Quelle) fehlt dummerweise der Anfang des (kompletten)Videos, deswegen der Aufwand. In der vlc-Wiedergabe des Resultates ist vom Schneiden und Kleben nichts mehr zu bemerken. (ok, ganz geringe Video-Artefakte sind an der Klebestelle zu sehen, aber der Ton ist fehlerfrei.) Merkwürden und offenbar keine bessere Alternative.
Re: Tonverzögerung bei zusammengesetztem Video
vlc kann doch selbst Videos reencodieren. Es gibt dafür im Menü den Punkt "Medien -> Konvertieren/Speichern". Wenn vlc das Video sauber abspielen kann, dann würde es vielleicht auch sauber neu codiert werden.
Re: Tonverzögerung bei zusammengesetztem Video
Das Programm hat dafür aber sehr spezielle, für mich undurchschaubare Dialoge. Das file war danach ein Drittel kleiner, obwohl ich dachte, nur copy gewählt zu haben. Und wozu der Ton dann passen sollte - keine Ahnung, jedenfalls nicht zum Video. Ich nutze diese Teile (vlc, smplayer, mpv, etc.) eigentlich nur zum Abspielen von Videos. rippen bevorzugt mit ffmpeg.hikaru hat geschrieben:Wenn vlc das Video sauber abspielen kann, dann würde es vielleicht auch sauber neu codiert werden.
Ich habe es jetzt so gelöst, dass ich avidemux einfach mit copy a und v nochmal über das mit ffmpeg zusammengesetzte Video habe drüber laufen lassen. smplayer hat's dann auch kapiert. Für's Abspielen kommt mir smplayer bedienungsmäßig halt am meisten entgegen. Leider kriege ich es bei dem nicht mit der synchronen Ton-Wiedergabe auf zwei BT-Lautsprechern geregelt, aber das ist ein anderes Thema, und da müsste sich wahrscheinlich smutbert nochmal einschalten mit Fokus auf mpv.