2019
Есть два решения
- Сделайте это «вручную», что означает использование AVFoundation и, в частности, VideoToolbox.
Чтобы начать, вы начинаете с https://developer.apple.com/videos/play/wwdc2014/513/ Наслаждайтесь!
Я должен сказать, что это действительно «правильное и лучшее» решение.
- Если вы можете заставить ffmpeg-api работать внутри вашего приложения для iOS, вы можете использовать ffmpeg, FFmpeg выполнит аппаратное декодирование после некоторой путаницы.
Есть несколько способов начать с этого. (Одна совершенно новая вещь - SWIFT ffmpeg от Sunlubo: https://github.com/sunlubo/SwiftFFmpeg)
При использовании подхода "ffmpeg" следует помнить, что вкратце существует ряд юридических / лицензионных проблем с ffmpeg / iOS . Об этих проблемах можно искать и читать.
Однако, с технической точки зрения, в наши дни действительно возможно скомпилировать ffmpeg прямо в iOS и использовать его в коде iOS. (Использование библиотеки C может быть самым простым.)
Мы только что выполнили грандиозный проект, занимаясь именно этим, а также другими подходами. (Я больше никогда не хочу видеть FFmpeg!)
Вы фактически можете добиться реального аппаратного декодирования в iOS, используя FFmpeg .
Мы обнаружили, что это невероятно сложно. И пару ошибок нужно исправить в FFmpeg. (Надеюсь, я больше никогда не увижу videotoolbox.c
: /)
Итак, еще раз ваши два варианта аппаратного декодирования в iOS:
Сделайте это "вручную" AVFoundation / VideoToolbox.
Использовать FFmpeg.
Пункт 2 невероятно сложен и занимает много времени. Пункт 1 использует огромное количество времени. Трудный выбор: /