2010-11-24 2 views
11

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

Есть ли способ добавить неподвижные изображения в композицию? Похоже, что ответ находится где-то в Core Animation, но все это кажется немного выше моей головы, и я был бы признателен за образец кода или некоторые указатели информации.

+0

Вы добавили пустые диапазоны времени на дорожку, в которую вошли фотографии? При настройке инструкций вы все еще относитесь к треку так, как будто там есть контент? (переход к нему и от него) – box86rowh 2012-08-22 18:13:39

+0

В конце концов, я не пошел в видеокомпозицию + маршрут Core Animation, я создал класс для создания видео из неподвижных кадров и использования видео. – zoul 2012-08-22 18:22:13

ответ

12

OK. Есть отличное видео под названием Редактирование медиа с AV Foundation от WWDC, что объясняет многое. Вы не можете вставлять изображения прямо на временную шкалу AVComposition, по крайней мере, я не нашел способа сделать это. Но при экспорте или игре актива вы можете обратиться к AVVideoComposition. Это, возможно, не идеальное название для класса, поскольку оно позволяет вам смешивать различные видеодорожки в актив, очень похоже на AVAudioMix для аудио. И у AVVideoComposition есть свойство animationTool, которое позволяет вам вставлять слои Core Animation (CALayer) в микс. CALayer имеет свойство contents, которому может быть присвоен CGImageRef. Не помогает в моем случае, может помочь кому-то другому.

0

Мне также нужны неподвижные изображения в моей композиции. Моя линия мышления немного отличается. Вставляйте на лету фильмы черного цвета вместо того, чтобы появляться изображения (возможно, одного такого видео было бы достаточно). Добавьте ссылку на словарь для каждой такой вставки, связывая временные диапазоны композиций с желаемыми изображениями с помощью bona-fide. Когда правильный временной диапазон поступает в мой штатный пользовательский компоновщик, вытащите желаемое изображение и нарисуйте его в буфер выходного пикселя, игнорируя входящие черные кадры из композиции. Я думаю, что это был бы другой способ сделать это.

Смежные вопросы