我試圖將章節添加到AVMutableComposition
。該視頻按預期創建併發送至AVPlayer
。我多麼想包含章節標記(使用AVplayer
中的章節標記選項)。將AVTimedMetadataGroup添加到AVMutableComposition以在(臨時)視頻中創建章節標記
我試過以下內容來創建定時元數據......但比做什麼?
當試圖將元數據添加到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)