Objective c 在视频结束时添加图像

Objective c 在视频结束时添加图像,objective-c,cocoa,macos,quicktime,qtkit,Objective C,Cocoa,Macos,Quicktime,Qtkit,我正在使用QTCaptureSession从iSight摄像机录制视频 我想在视频的末尾添加一个图像,所以我实现了didfinishRecordingToOutputFileAttribute委托方法。以下是我迄今为止所做的工作: - (void)captureOutput:(QTCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL forConnections:(

我正在使用QTCaptureSession从iSight摄像机录制视频

我想在视频的末尾添加一个图像,所以我实现了didfinishRecordingToOutputFileAttribute委托方法。以下是我迄今为止所做的工作:

- (void)captureOutput:(QTCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL forConnections:(NSArray *)connections dueToError:(NSError *)error
{

    // Prepare final video
    QTMovie *originalMovie = [QTMovie movieWithURL:outputFileURL error:nil];
    [originalMovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];

    NSImage *splashScreen = [NSImage imageNamed:@"video-ending.jpg"];

    NSImage *tiffImage = [[NSImage alloc] initWithData:[splashScreen TIFFRepresentation]];

    id attr = [NSDictionary dictionaryWithObjectsAndKeys:@"tiff",
               QTAddImageCodecType,
               [NSNumber numberWithLong:codecHighQuality], QTAddImageCodecQuality,
               nil];

    [originalMovie addImage:tiffImage forDuration:QTMakeTime(2, 1) withAttributes:attr];

    [tiffImage release];

    [originalMovie updateMovieFile];
}
这段代码的问题是,虽然quicktime玩得很好,但其他玩家却不行。我肯定我错过了一些基本的东西

在保存之前将图像添加到视频中也很酷(避免在保存过程中重复两次)。以下是我现在停止录音的方法:

- (void)stopRecording
{   
    // It would be cool to add an image here
    [mCaptureMovieFileOutput recordToOutputFileURL:nil];
}

虽然我使用了Cocoa touch,但这可能仍然适用。根据我在电影中写写图片的经验,我有两条建议。首先,虽然我敢打赌addImage:forDuration会处理AVAssetExportSessions无法处理的许多事情,但我必须确保图像的添加频率高于每秒几次,否则不会对所有玩家都有效。其次,如果有一个网络流选项,比如AVAssetExportSession
shouldOptimizationforNetworkUse
在电影中向前移动尽可能多的元数据和标题,我发现它也使视频与更多的播放器兼容。

不幸的是,使用不同的qttime,例如QTMakeTime(1200,600)似乎不起作用。VLC播放器没有显示图像,只是快速移动(就在打开包含图像的新窗口的十分之一秒之前)。我知道这已经晚了,这只是一个想法。。。添加图像时,您是否可以指定不同的压缩(例如,与电影使用的压缩相同)?