AVMutableComposition
에 챕터를 추가하려고합니다. 동영상이 예상대로 생성되어 AVPlayer
으로 전송됩니다. (chapter marker 옵션을 AVplayer
에 사용하려면) 챕터 마크를 포함하고 싶습니다.AVMutableComposition에 AVTimedMetadataGroup을 추가하여 (임시) 비디오에 챕터 표시 만들기
나는 timed 메타 데이터를 만들기 위해 다음을 시도했다. 그러나 무엇을해야 하는가?
AVMutableComposition
에 메타 데이터를 추가하려고하면 모든 메타 데이터 항목이 표시됩니다.
let someAsset:AVURLAsset = AVURLAsset(url:URL(fileURLWithPath: "/tmp/temp.mov"))
let mutableComposition:AVMutableComposition = AVMutableComposition()
let start: Int64 = 0
let duration: Int64 = 500
let timeRange:CMTimeRange = CMTimeRange(start: CMTime(value: CMTimeValue(start), timescale: 1), end: CMTime(value: CMTimeValue(duration), timescale: 1));
var timedMetadataItems: [AVTimedMetadataGroup] = []
do {
try mutableComposition.insertTimeRange(timeRange, of: someAsset, at: mutableComposition.duration)
let metadata = AVMutableMetadataItem()
metadata.key = AVMetadataQuickTimeUserDataKeyChapter as NSCopying & NSObjectProtocol
metadata.value = "Test" as NSCopying & NSObjectProtocol
let timedMetadata = AVTimedMetadataGroup(items: [metadata], timeRange: timeRange)
timedMetadataItems.append(timedMetadata)
} catch let error as NSError {
Swift.print(error.localizedDescription)
}
return AVPlayerItem(asset: mutableComposition)
디스크에 작성하지 않고이 일을하는 것이 아니라 좋은 것 장과 함께 동영상을 저장에 도움이 (이상한 느낌인지) 정말 불가능합니다. 나는 정상적인 메타 데이터 만 저장할 수 있습니다.
AVAssetExportSession
으로 메타 데이터를 설정하고 파일에 새 컴포지션을 쓸 수는 있지만 AVTimedMetadataGroup
을 쓸 수 없습니까?
let export = AVAssetExportSession(asset: mutableComposition, presetName: AVAssetExportPresetPassthrough)