Question

Il suffit de regarder pour savoir comment ajouter un filigrane ou programme une sorte de superposition à la vidéo en utilisant le cacao. Vous ne cherchez pas une étape par étape (bien que ce serait génial), mais plus ou moins à la recherche d'où je devrais commencer à chercher à apprendre. Y at-il des cadres élaborés pour travailler pour cela. Aimeriez-vous quelque chose originaire de cacao ou Objective-C ou c parce que je voudrais donner à ce terme aller sur l'iPhone. Toute aide serait grande.

Était-ce utile?

La solution

Je ne sais pas si vous voulez dire juste pour la lecture, ou si vous souhaitez exporter une vidéo avec un filigrane qui va apparaître sur d'autres joueurs.

Si vous voulez dire que pour la lecture, vous pouvez probablement ajouter juste une vue au-dessus de la vue des joueurs sur Mac et iPhone qui contient le filigrane.

Si vous souhaitez un filigrane sur la vidéo elle-même, cela est difficile sur le Mac et probablement impossible sur l'iPhone sans réécriture essentiellement QuickTime.

Sur le Mac, le code pourrait ressembler à ceci (vous devez importer QTKit):

// 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);

... Et voilà! Votre film a maintenant un filigrane, et vous pouvez l'exporter vers un fichier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top