我有一个mov文件,我通过在影片的开头添加带图像的轨道来修改(使用QTMovie的-addImage方法)。当我展平这样一部电影时(使用-writeToFile:QTMovie的方法),我得到另一个带有这个“水印”的.mov文件。 但是当我尝试播放它时,我最终得到了需要安装QuickTime 7以便播放这样一个文件的消息(原始未处理的mov文件不需要QuickTime Player 7并且可以在QT Player中正常播放X带雪豹和狮子)。
我想知道是否可以让这个文件能够在QuickTime Player X上播放?我不希望我的应用程序的用户有义务安装这个旧版本的播放器。此外,一些应用程序,如Final Cut Pro 7,Telestream Episode Engine编码器,Autodesk Smoke - 在向其添加图像轨道后,无法正确理解这种“文件格式”。
是否可以将图像添加为电影曲目,而不是以图像曲目的形式添加?也许使用旧的QT API? (无论如何,QTKit似乎仍然是原始的。)
我指定“mpv4”作为图像编码器(在-addImage方法中),但这个水印图像仍然不被视为电影轨道,而是被视为用电影编码器编码的图像轨道。
谢谢!
答案 0 :(得分:1)
制作新电影并设置属性以允许编辑:
QTMovie* trailerMovie = [QTMovie movie];
[trailerMovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
选择原始影片中的时间范围并将其附加到新影片中:
QTTimeRange selectionRange = QTMakeTimeRange(QTMakeTime(...), QTMakeTime(...));
[originalMovie setSelection:selectionRange];
[trailerMovie appendSelectionFromMovie:originalMovie];
添加图片:
[trailerMovie addImage:image forDuration:duration withAttributes:nil];
使用QTMovieFlatten属性将影片保存到文件中:
[trailerMovie writeToFile:@"trailer.mov" withAttributes:[NSDictionary dictionaryWithObj:[NSNumber numberWithBool:YES] forKey:QTMovieFlatten]]
试试这个场景,请告诉我它是怎么回事。