Перекрестное затухание в AVMutableVideoComposition - PullRequest
3 голосов
/ 30 сентября 2010

Я успешно создал AVMutableComposition с несколькими видеоклипами и могу просматривать его и экспортировать, и я хотел бы иметь возможность переходить между ними с помощью перекрестного затухания, поэтому я хочу использовать AVMutableVideoComposition. Я не могу найти примеров того, как организовать и воспроизвести пару видео AVAsset подряд. У кого-нибудь есть пример, как добавить дорожки в AVMutableVideoComposition с эквивалентом insertTimeRange AVMutableComposition, или как установить перекрестное затухание?

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

1 Ответ

11 голосов
/ 30 сентября 2010

Я нашел пример под названием AVEditDemo из образца кода Apple WWDC 2010.

https://developer.apple.com/library/ios/samplecode/AVCustomEdit/Introduction/Intro.html

В примере много деталей, но я подведу итог: вам нужно использовать как AVMutableComposition, так и AVMutableVideoComposition. Добавляйте дорожки по отдельности в AVMutableComposition, а не с помощью более простого insertTimeRange, поскольку он позволяет вам устанавливать время перекрытия дорожек. Треки также должны быть добавлены в AVMutableVideoComposition как AVMutableVideoCompositionLayerInstructions с линейкой непрозрачности. Наконец, для воспроизведения в AVPlayer необходимо создать AVPlayerItem, используя AVMutableComposition и AVMutableVideoComposition.

Кажется, что переход на каждый уровень глубже в API - в данном случае от MPMoviePlayer с активом до AVPlayer с AVComposition и, наконец, до AVVideoComposition - увеличивает необходимое кодирование в геометрической прогрессии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...