Domanda

Ho un AVMutableComposition con i seguenti segmenti di binario:

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}}

La fasatura è espresso come CMTimeRange, il primo CMTime è il tempo di inizio, il secondo è la durata. In altre parole, ci sono due pezzi + audio video con qualche spazio vuoto imbottitura prima e tra di loro.

Il problema è che quando esporto questa composizione e riprodurre il video esportato, il secondo segmento audio viene riprodotto troppo presto, come se il secondo segmento audio imbottitura vuoto è stato ignorato durante l'esportazione. Ottengo il primo segmento video con audio corretto, poi subito il secondo segmento audio e poi il secondo segmento video senza audio.

Cosa potrebbe esserci di sbagliato?

È stato utile?

Soluzione

Il problema era nell'esportazione. Stavo usando la modalità pass-through di esportazione che semplicemente copia i segmenti di traccia nel file risultante. Credo che il tempo francobolli sono semplicemente copiati, anche, che provoca un disastro nella timeline del filmato esportato. Impostare la modalità di esportazione a qualcosa d'altro rispetto al pass-through risolve il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top