Получение .mov выбора времени и продолжительности - PullRequest
1 голос
/ 17 февраля 2020

В QuickTime 7 файлы .mov могут содержать метаданные, указывающие текущее начало и продолжительность выделения mov ie. exiftool может отобразить это:

$ exiftool movie.mov -SelectionDuration -SelectionTime -g1
---- QuickTime ----
Selection Time                  : 0:05:03
Selection Duration              : 0:00:53

Однако, используя AVAsset для просмотра метаданных, я не вижу ничего подходящего:

let avAsset = AVAsset(url: inPath.url)
let formatsKey = "availableMetadataFormats"
avAsset.loadValuesAsynchronously(forKeys: [formatsKey])
{
    var error: NSError? = nil
    let status = avAsset.statusOfValue(forKey: formatsKey, error: &error)
    if status == .loaded
    {
        for format in avAsset.availableMetadataFormats
        {
            let metadata = avAsset.metadata(forFormat: format)
            for md in metadata
            {
                debugLog("metadata \(format.rawValue)/\(md.identifier!.rawValue) (\(md.dataType ?? "<no dataType>")): \(md.stringValue ?? "<no value>")")
                if let d = md.value as? Data
                {
                    debugLog("Value is data of length \(d.count)")
                }
            }
        }
    }
}
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.movie.audio.gain (com.apple.metadata.datatype.float32): 0.0005918561
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.movie.audio.treble (com.apple.metadata.datatype.float32): 0
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.movie.audio.bass (com.apple.metadata.datatype.float32): 0
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.movie.audio.balance (com.apple.metadata.datatype.float32): 0
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.movie.audio.pitchshift (com.apple.metadata.datatype.float32): 0
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.movie.audio.mute (com.apple.metadata.datatype.raw-data): <no value>
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.movie.visual.brightness (com.apple.metadata.datatype.float32): 0
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.movie.visual.color (com.apple.metadata.datatype.float32): 1
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.movie.visual.tint (com.apple.metadata.datatype.float32): 0
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.movie.visual.contrast (com.apple.metadata.datatype.float32): 1
com.apple.quicktime.mdta/mdta/com.apple.quicktime.player.version (com.apple.metadata.datatype.UTF-8): 7.6.6 (7.6.6)
com.apple.quicktime.mdta/mdta/com.apple.quicktime.version (com.apple.metadata.datatype.UTF-8): 7.7.3 (3040) 0x7738000 (Mac OS X, 10.14.6, 18G103)
com.apple.itunes/itsk/%A9too (com.apple.metadata.datatype.UTF-8): Lavf56.40.101
com.apple.quicktime.udta/udta/WLOC (com.apple.metadata.datatype.raw-data): <no value>
com.apple.quicktime.udta/udta/LOOP (com.apple.metadata.datatype.raw-data): <no value>
com.apple.quicktime.udta/udta/SelO (com.apple.metadata.datatype.raw-data): <no value>
com.apple.quicktime.udta/udta/AllF (com.apple.metadata.datatype.raw-data): <no value>

Есть ли есть ли способ заставить AVAsset отказаться от товара с остальными метаданными в контейнере?

...