Как реализовать видео DRM в iOS
Я надеюсь внедрить DRM в видеоплеер iOS, но не знаю, как это реализовать. Чтобы реализовать DRM для видео (все еще используя аппаратное ускорение декодирования H264 от Apple), мне нужен способ подачи расшифрованного потока H264 в стандартные API-интерфейсы воспроизведения видео iOS.
Согласно этому вопросу, в сентябре 2010 года было невозможно внедрить стороннюю технологию управления цифровыми правами. В форумах разработчиков Apple есть тема, которая никуда не денется. Однако на сегодняшний день существует ряд сторонних библиотек DRM: Widevine, Irdeto (PDF), Marlin. Они явно нашли способ передать пользовательский поток в медиаплеер в одобренных Apple приложениях.
Я нашел два отведения. Одним из них является предложение создать собственный протокол URL, но люди, похоже, не добились успеха, используя это с видео. Другой способ заключается в создании потока локального HTTP-сервера и предоставлении содержимого посредством потоковой передачи по HTTP на 127.0.0.1 внутри iDevice. Я хотел бы быть очень уверен, что Apple одобрит, прежде чем идти по этому пути.
Итак, какие утвержденные Apple API используют сторонние реализации DRM для передачи расшифрованных видеоданных в видеоплеер?
Редактировать: последняя версия BBC iPlayer для iOS позволяет загружать программы для последующего просмотра. Либо они хранят контент в открытом виде, либо они взломали эту проблему.
2 ответа
Вы можете начать дешифрование файла в другой файл и воспроизводить его, как вы расшифровываете. Вам нужно будет разрешить буферизировать видео на несколько секунд, но это будет работать.
Кроме того, вам необходимо убедиться, что moov
атом ДО mdat
атом в файле, иначе он не будет работать. (AVFoundation, например, создает MP4, где moov
атом приходит после mdat
атом, и поэтому их нужно будет модифицировать для работы)
Рабочим решением является локальный http-сервер. Но заявка на патент была подана Authentec.