Ich versuche, Kapitel zu einer AVMutableComposition
hinzuzufügen. Das Video wird wie erwartet erstellt und an die gesendet. Wie auch immer, ich möchte Kapitelmarken hinzufügen (um die Kapitelmarkeroption in AVplayer
zu verwenden).Hinzufügen von AVTimedMetadataGroup zu AVMutableComposition zum Erstellen von Kapitelmarkierungen in (temporärem) Video
Ich habe Folgendes versucht, um die zeitgesteuerte Metadaten zu erstellen ... aber was zu tun?
Beim Versuch, Metadaten zu AVMutableComposition
hinzuzufügen, werden alle Elemente für Metadaten nur abgerufen.
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)
Wenn dies zu tun, ohne wirklich unmöglich auf der Festplatte zu schreiben ist (was seltsam fühlt) Hilfe mit dem Video mit den Kapiteln Speicher und wäre toll. Da kann ich nur normale Metadaten speichern.
Mit AVAssetExportSession
ist es möglich, die Metadaten festzulegen und die neue Komposition in eine Datei zu schreiben, aber es ist nicht möglich, eine AVTimedMetadataGroup
zu schreiben?
let export = AVAssetExportSession(asset: mutableComposition, presetName: AVAssetExportPresetPassthrough)