可可 - 添加视频水印一般信息 [英] Cocoa - Add Video Watermark General Info
问题描述
只是寻找如何以编程方式使用可可添加水印或某种覆盖到视频。不是一步一步寻找(虽然这将真棒),但或多或少寻找在哪里我应该开始寻找学习如何。是否有框架为此工作。想要一些本地的可可或目标c或c,因为我想最终把这一点在iPhone上。任何帮助将是巨大的。
Just looking for how to programmatically add a watermark or some sort of overlay to video using cocoa. Not looking for a step by step ( although that would awesome ), but more or less looking for where I should start looking to learn how. Are there frameworks developed to work for this. Would like something native to cocoa or objective-c or c because I would like to eventually give this a go on the iPhone. Any help would be great.
推荐答案
我不知道你是否意味着只是为了播放,导出带有将显示在其他播放器上的水印的视频。
I'm not sure if you mean just for playback, or if you'd like to export a video with a watermark that'll show up on other players.
如果您只是想播放,您可以在Mac和iPhone上的播放器视图顶部添加一个视图,其中包含水印。
If you mean just for playback, you can probably just add a view on top of the player view on Mac and iPhone that contains the watermark.
如果你想在视频上添加一个水印,这在Mac上是很难的,在iPhone上可能是不可能的,基本上没有重写QuickTime。
If you'd like a watermark on the video itself, this is hard on the Mac and probably impossible on the iPhone without essentially rewriting QuickTime.
在Mac上,代码可能如下所示(您需要导入QTKit):
On the Mac, the code might look like this (you need to import 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);
...就是这样!您的电影现在有一个水印,您可以将其导出到文件。
... And that's it! Your movie now has a watermark, and you can export it to file.
这篇关于可可 - 添加视频水印一般信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!