2010-11-24 19 views
11

Tengo un AVMutableComposition con una pista de video y me gustaría agregar una imagen fija en la pista de video, para mostrarla durante un tiempo determinado. La imagen fija es simplemente un PNG. Puedo cargar la imagen como un activo, pero eso es todo, porque el activo resultante no tiene ninguna pista y, por lo tanto, no se puede insertar simplemente con los métodos insertTimeRange….¿Cómo agrego una imagen estática a una composición AV?

¿Hay alguna manera de agregar imágenes fijas a una composición? Parece que la respuesta está en alguna parte de Core Animation, pero todo parece estar un poco sobre mi cabeza y agradecería una muestra de código o algunos punteros de información.

+0

¿Agregó rangos de tiempo vacíos a la pista donde entran las fotos? Al configurar las instrucciones, ¿todavía trata la pista como si hubiera contenido allí? (transición hacia y desde él) – box86rowh

+0

No elegí la composición del video + Ruta de animación principal al final, creé una clase para crear un video a partir de fotogramas y usar el video. – zoul

+0

Genial, estoy trabajando en un proyecto donde el usuario puede mezclar videos y fotos a su discreción, por lo que el código de compilación debe ser flexible. Ahora estoy trabajando el extremo de la foto en el código. – box86rowh

Respuesta

12

OK. Hay un gran video llamado Edición de medios con AV Foundation de WWDC que explica mucho. No puede insertar imágenes directamente en la línea de tiempo AVComposition, al menos no encontré ninguna manera de hacerlo. Pero al exportar o jugar un activo, puede consultar un AVVideoComposition. Quizás no sea un nombre perfecto para la clase, ya que te permite mezclar varias pistas de video en el activo, muy parecido al AVAudioMix para audio. Y el AVVideoComposition tiene una propiedad animationTool que le permite arrojar capas de Animación Núcleo (CALayer) en la mezcla. CALayer tiene una propiedad contents a la que se le puede asignar un CGImageRef. No ayuda en mi caso, podría ayudar a alguien más.

+0

. Estoy empezando con la edición de video. Según su respuesta, corríjanme si me equivoco, ¿está diciendo que arroja capas de imágenes entre la grabación de video en vivo o después de grabar el video? – Nil

+0

Después de grabar el video. 'AVVideoComposition' es algo así como una herramienta de edición de video, una especie de Final Cut Pro programable, si se quiere. De modo que puede unir algunos segmentos de video junto con algunas capas de animación principal. – zoul

+0

Sí, logré insertar una imagen en todo el video grabado. Pero esto está bien para editar/insertar objetos estáticos en el video. ¿Qué pasa si quiero jugar con el tono y la saturación y otras cosas? y, al mismo tiempo, el usuario verá el resultado mientras graba. Algo así como la aplicación Video Star en la tienda de aplicaciones. Creo que el procesamiento de video en tiempo real es la respuesta para eso, pero no estoy seguro de si la edición de fotogramas/entrada de cámara de un video antes de que el usuario pueda verlo, será una buena idea. QQQuite recursos intensivos. ¿Algún enlace que pueda señalar para este tema? – Nil

0

También necesito imágenes fijas en mi composición. Mi línea de pensamiento es un poco diferente. Inserte películas sobre la marcha de negro en lugar de cuando deberían aparecer las imágenes (posiblemente uno de esos videos sería suficiente). Agregue una referencia de diccionario a cada inserción, vinculando rangos de tiempo de composición a las imágenes deseadas de buena fe. Cuando llegue el intervalo de tiempo correcto en mi compositor personalizado a tiempo completo, extraiga la imagen deseada y pinte en el búfer de píxeles de salida, ignorando los marcos negros entrantes de la composición. Creo que esa sería otra forma de hacerlo.

Cuestiones relacionadas