Pergunta

Compusei uma concordância AVMutable com vários clipes de vídeo e posso visualizá-lo e exportá-lo, e gostaria de poder fazer a transição entre eles usando um cruzamento, então quero usar o AvMutableVideocomposition. Não consigo encontrar nenhum exemplo de como organizar e reproduzir alguns vídeos de Avasset em sucessão. Alguém tem um exemplo de como adicionar faixas a uma videocomposição avmutable com o equivalente à inserção de composição da AvmutableComposition ou como configurar um cruzamento?

[self.composition insertTimeRange:CMTimeRangeMake(kCMTimeZero,asset.avAsset.duration)
                                         ofAsset:asset.avAsset
                                          atTime:self.composition.frameDuration
                                           error:nil]
Foi útil?

Solução

Encontrei um exemplo chamado AveditDemo, do código de exemplo do WWDC 2010 da Apple.

https://developer.apple.com/library/ios/samplecode/avcustomedit/introduction/intro.html

Há muitos detalhes na amostra, mas vou resumir: você precisa usar o AVMutableComposition e o AvmutableVideocomposition. Adicione as faixas individualmente à AVMutableComposition, em vez de com o insertTimerange mais simples, pois permite definir tempos de sobreposição nas faixas. As faixas também precisam ser adicionadas à videocomposição Avmutable como o AvmutableVideocompositionLayerInstructions com uma rampa de opacidade. Finalmente, para reproduzir um Avplayer, você precisa criar um AvPlayeritem usando a AvmutableComposition e o AvmutableVideocomition.

Parece que se aprofundar cada nível na API - neste caso do MPMoviePlayer com um ativo para o AvPlayer com uma avomposição e, finalmente, para uma avideocomposição - aumenta a codificação necessária exponencialmente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top