gpt4 book ai didi

objective-c - QTMovie 添加图像 :forDuration:withAttributes: can't be played by QuickTime Player X

转载 作者:行者123 更新时间:2023-12-03 18:00:11 25 4
gpt4 key购买 nike

我有一个 mov 文件,我正在通过在电影开头添加带有图像的轨道(使用 QTMovie 的 -addImage 方法)来修改该文件。当我压平这样的电影时(使用 QTMovie 的 -writeToFile: 方法),我得到另一个开头带有此“水印”的 .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 方法中),但该水印图像仍然不被视为电影轨道,而是被视为使用电影编码器编码的图像轨道。

谢谢!

最佳答案

制作一个新电影并将属性设置为允许编辑:

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

尝试这个场景,请告诉我效果如何。

关于objective-c - QTMovie 添加图像 :forDuration:withAttributes: can't be played by QuickTime Player X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7781122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com