QTMovie addImage:forDuration:withAttributes: 不能由 QuickTime Player X 播放



我有一个mov文件,我通过在电影的开头添加带有图像的轨道来修改(使用QTMovie的- addmage方法)。当我平放这样一个电影时(使用QTMovie的-writeToFile:方法),我得到了另一个带有这个"水印"的.mov文件。但是当我尝试播放它时,我最终得到的消息是需要安装QuickTime 7才能播放这样的文件(原始未处理的mov文件不需要QuickTime Player 7,可以在QT Player X中播放,其中包括雪豹和狮子)。

我想知道是否有可能使这个文件能够在QuickTime播放器X上播放?我不希望我的应用程序的用户被迫安装这个旧版本的播放器。此外,一些应用程序,如Final Cut Pro 7, Telestream Episode Engine编码器,Autodesk Smoke -只是不能正确理解这种"文件格式",在添加图像轨道后。

是否有可能将图像添加为电影轨道,而不是作为图像轨道,以某种方式?也许使用旧的QT API?(无论如何,QTKit似乎仍然是原始的)。

我指定"mpv4"作为一个图像编码器(在- addmage方法),但仍然这个水印图像不被认为是一个电影轨道,而是作为一个图像轨道编码与电影编码器。

谢谢!

创建一个新影片并设置属性以允许编辑:

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]]

试试这个场景,请让我知道效果如何

相关内容

  • 没有找到相关文章