gpt4 book ai didi

ios - 使用 AVFoundation 将章节信息添加到现有视频

转载 作者:行者123 更新时间:2023-11-29 12:37:43 25 4
gpt4 key购买 nike

我正在尝试向 iOS 中的现有视频添加章节标记(文本 + 图像)。使用内置函数阅读它们非常容易:

NSLocale * locale = [chapterLocalications lastObject];
NSLog(@"Locale: %@", [locale localeIdentifier]);
NSArray *keys = @[AVMetadataCommonKeyTitle, AVMetadataCommonKeyArtwork];
NSArray *chapters = [asset chapterMetadataGroupsWithTitleLocale:locale containingItemsWithCommonKeys:keys];
for (AVTimedMetadataGroup * metadataGroup in chapters) {
NSArray * items = metadataGroup.items;
CMTimeRange timeRange = metadataGroup.timeRange;
NSLog(@"time: %@", CMTimeCopyDescription(NULL, timeRange.start));
for (AVMetadataItem * metadataItem in items) {
NSLog(@"key: %@", metadataItem.commonKey);
NSLog(@"value: %@", metadataItem.value);
}
}

到目前为止,我还没有找到将定时元数据写入文件的方法。我可以使用 AVAssetExportSession 和 AVMutableMetadataItem 轻松编写普通元数据(如标题文本或图片)。有一个 AVMutableTimedMetadataGroup,但令人沮丧的是似乎没有办法将它们实际写入轨道。

我目前的想法是,我需要将章节信息写入一个临时文件,然后使用AVMutableComposition将章节轨道合并到现有视频中。当然,这就剩下章节信息的编写问题了。我可以手动或使用第三方库(我想避免)编写 MP4 容器,或者我可以尝试说服 AVAssetWriter 以某种方式编写定时元数据轨道,尽管也没有记录。然后我仍然不知道 AVMutableComposition 是否能够合并章节轨道。

在我发疯之前,有没有人找到办法做到这一点?我很想放弃这一整章的想法,只保存一个引用该视频的特定于应用程序的文件。

最佳答案

在 Apple 的 WWDC 2014 上有一个名为 Harnessing Metadata in Audiovisual Media 的 session 。在此处查看视频:https://developer.apple.com/videos/wwdc/2014/

另外,查看名为 AVTimedAnnotationWriter 的示例代码

关于ios - 使用 AVFoundation 将章节信息添加到现有视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25831207/

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