Pregunta

Con sólo mirar para ver cómo agregar mediante programación una marca de agua o algún tipo de superposición de vídeo utilizando cacao. No en busca de un paso a paso (aunque eso sería impresionante), pero más o menos en busca de donde debería empezar a buscar para saber cómo. ¿Existen marcos desarrollados para el trabajo para esto. ¿Le gustaría algo nativo de cacao u Objective-C o C porque me gustaría dar tiempo a esto un ir en el iPhone. Cualquier ayuda sería grande.

¿Fue útil?

Solución

No estoy seguro de si se refiere sólo para la reproducción, o si desea exportar un vídeo con una marca de agua que va a aparecer en otros reproductores.

Si usted quiere decir sólo para la reproducción, puede probablemente sólo tiene que añadir una vista en la parte superior de la vista del reproductor de Mac y iPhone que contiene la marca de agua.

Si desea una marca de agua en el vídeo en sí, esto es difícil en el Mac y probablemente imposible en el iPhone sin tener que reescribir esencialmente QuickTime.

En el Mac, el código podría tener este aspecto (es necesario QTKit importación):

// Make a new movie so we don't destroy the existing one
QTMovie* movie = [[QTMovie alloc] initWithMovie:currentMovie 
                                      timeRange:QTMakeTimeRange(QTMakeTime(0,1000), [currentMovie duration]) 
                                          error:nil];

// Make it editable
[movie setAttribute:[NSNumber numberWithBool:YES] 
             forKey:QTMovieEditableAttribute];

//Get the size
NSValue *value = [movie attributeForKey:QTMovieNaturalSizeAttribute];
NSSize size = [value sizeValue];

// Add a new track to the movie and make it the frontmost layer
QTTrack *track = [movie addVideoTrackWithSize:size];
[track setAttribute:[NSNumber numberWithShort:-1] forKey:QTTrackLayerAttribute];        

// Create a codec dictionary for the image we're about to add
NSDictionary *imageDict = [NSDictionary dictionaryWithObjectsAndKeys:
        @"tiff", QTAddImageCodecType,
        [NSNumber numberWithLong:codecHighQuality], QTAddImageCodecQuality, nil];


// Get the video length in QT speak

QTTime qttime = [currentMovie duration];
NSTimeInterval reftime;

QTGetTimeInterval(qttime, &reftime);

//Add the image for the entire duration of the video 

[track addImage:image forDuration:qttime withAttributes:imageDict];

// Finally, tell the track that it should use its alpha correctly

MediaHandler media = GetMediaHandler([[track media] quickTimeMedia]);
MediaSetGraphicsMode(media, graphicsModeStraightAlpha, NULL);

... Y eso es todo! La película tiene ahora una marca de agua, y se puede exportar a archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top