Не удалось выполнить операцию при использовании AVAsset?

Я пытаюсь захватить кадр из видео.

Но copyCGImageAtTime (в AVAssetImageGenerator) завершается с ошибкой:

Операция не может быть завершена

Когда я указываю неверный путь, он выдает другую ошибку, поэтому похоже, что проблема не в пути.

Я пытаюсь с файлом MP4. Может быть, это проблема?

import Cocoa
import AVFoundation

var asset = AVAsset.init(URL: NSURL.init(fileURLWithPath: "/Users/gippeumi/test.mp4"))
var assetGen = AVAssetImageGenerator(asset: asset)
assetGen.appliesPreferredTrackTransform = true
var tim = CMTimeMakeWithSeconds(0.0, 1)
do {
    var img = try assetGen.copyCGImageAtTime(tim, actualTime: nil)
} catch let error as NSError {
    // (Printing error here...)
}

person Gippeumi    schedule 26.11.2016    source источник


Ответы (1)


"Ошибка, вероятно, связана с использованием URLWithString. Я думаю, вам следует использовать -fileURLWithPath вместо URLWithString."

Вы можете проверить эту ссылку, возможно, это поможет вам.

Извлечь миниатюру из URL-адреса видео

person Sososo    schedule 26.11.2016
comment
Это не сработало на игровой площадке, но в реальном проекте это работает. Я пытался много раз, но это никогда не подводило. - person Gippeumi; 26.11.2016