Audio out of sync mit Video in übertragenem AVMutableComposition
-
10-10-2019 - |
Frage
Ich habe eine AVMutableComposition
mit den folgenden Spursegmenten:
video:
empty: Y, {{0/1 = 0.000}, {48/100 = 0.480}}
empty: N, {{48/100 = 0.480}, {600/600 = 1.000}}
empty: Y, {{888/600 = 1.480}, {900/600 = 1.500}}
empty: N, {{894/300 = 2.980}, {1040/600 = 1.733}}
audio:
empty: Y, {{0/1 = 0.000}, {48/100 = 0.480}}
empty: N, {{48/100 = 0.480}, {45056/44100 = 1.022}}
empty: Y, {{66224/44100 = 1.502}, {65194/44100 = 1.478}}
empty: N, {{894/300 = 2.980}, {77824/44100 = 1.765}}
Der Zeitpunkt als CMTimeRange
ausgedrückt wird, die erste CMTime
ist die Startzeit ist die zweite Dauer. Mit anderen Worten gibt es zwei Audio + Video Stücke mit einigem leeren padding Raum vor und zwischen ihnen.
Das Problem ist, dass, wenn ich diese Komposition exportieren und die exportierte Video abspielen, das zweite Audiosegment zu früh spielt, als ob die zweite leere Polsterung Audio-Segment beim Export ignoriert wurde. Ich erhalte das erste Video-Segment mit richtigen Audio, dann sofort das zweiten Audio-Segment und dann später das zweite Video-Segment ohne Ton.
Was könnte falsch sein?
Lösung
Das Problem war in den Export. Ich war mit dem Pass-Through-Export-Modus, dass nur kopiert die Spursegmente in die resultierende Datei. Ich denke, den Zeitstempel einfach kopiert werden, auch, was ein Chaos in der Zeitleiste des exportierten Films verursacht. Einstellen des Exportmodus auf etwas anderes als das Pass-Through löst das Problem.