Sortie audio synchronisé avec la vidéo en AVMutableComposition rendu
-
10-10-2019 - |
Question
I ai un AVMutableComposition
avec les segments de piste suivantes:
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}}
Le moment est exprimé en CMTimeRange
, la première CMTime
est l'heure de début, la seconde est la durée. Autrement dit, il y a deux morceaux vidéo audio + avec un espace de remplissage vide avant et entre eux.
Le problème est que quand j'exporter cette composition et lire la vidéo exportée, le deuxième segment audio joue trop tôt, comme si le deuxième segment audio de remplissage vide a été ignoré lors de l'exportation. Je reçois le premier segment vidéo avec audio correct, puis immédiatement le deuxième segment audio, puis plus tard, le deuxième segment vidéo sans audio.
Qu'est-ce qui pourrait être erroné?
La solution
Le problème était à l'exportation. J'utilisais le mode pass-through exportation qui est simplement une copie des segments de piste dans le fichier résultant. Je suppose que le temps timbres sont simplement copiés aussi, ce qui provoque un désordre dans la chronologie du film exporté. Réglage du mode d'exportation à quelque chose d'autre que le pass-through permet de résoudre le problème.