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é?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top