我有一个问题。 最近我需要为录制的视频添加自定义标签。设备上的本地视频不是流式视频。任务是在视频中添加一些特定于事件的标签,其位置可以通过向前/向后按下任何播放器中的按钮来设置。
电影文件是mov文件还是mp4格式并不重要。
我在论坛上搜索,发现几个示例如何使用AVExportSession&添加元数据。有效。
虽然,当我尝试使用AVAssetWriter
添加元数据时。我无法将属性附加到视频中。
我不明白的是,添加属性后,返回(时间和持续时间)属性始终无效。
例如,假设我有一段持续时间为2秒的视频。 我尝试过不同的密钥空间。我无法从ID3空间写出密钥。
IS ID3用于流视频? (据我所知,.mp3的ID3元数据)。因此,我无法将其写入MPEG-4文件
我还使用了QuickTimeUserData
& ISOUserData
但结果再次相同。
这是一个例子
AVMutableMetadataItem *item2 = [AVMutableMetadataItem new];
item2.keySpace = AVMetadataKeySpaceiTunes;
item2.key = AVMetadataiTunesMetadataKeyUserComment;
item2.value = @"One two three";
item2.duration =CMTimeMakeWithSeconds(1, 1);
item2.time = CMTimeMakeWithSeconds(0, 1);
阅读后我得到以下内容:
AVMutableMetadataItem: 0xa4301f0, keySpace=itsk, key=\U00a9cmt, commonKey=(null), locale= (null), value=One two three, time={INVALID}, duration={INVALID}, extras={\n dataType = 1;\n}
我想用时间&元数据的持续时间属性,而不是编写自定义数据并在此之后处理它。
理想情况下,使用time = t1,duration = d1,....(tn,dn)附加项目数组会很棒。
有谁知道如何实现这一目标?