ios - 在 iOS 中使用解密流式传输分段数据

标签 ios streaming avplayer

我正在创建一个应用程序,其中我需要下载加密的 Mpeg 片段并在使用从服务器下载的 key 解密后在播放器中播放视频。我不知道从哪里开始。我从 here 得到了一些帮助并致力于它,如果有人曾经构建或创建过此类功能,请告诉我。

最佳答案

如果您需要 DRM 级别的保护,在 iOS 设备上执行此操作的常用方法是使用 Apple 的 FairPlay DRM 解决方案。

如果您有 Apple 开发者 ID:https://developer.apple.com/streaming/fps/,则可以使用文档、SDK 和示例应用程序。

但请注意,要实际部署它,您必须是“许可内容所有者”,我认为这主要针对较大的运营商和内容所有者,因此首先检查您是否符合他们的定义非常重要:

Request Deployment Package

If you're a licensed content owner ready to deploy your implementation of FairPlay Streaming to a production environment, request the FPS Deployment Package. Please note that you must be the Team Agent of a development team that is a licensed content owner. The FPS Deployment Package is not available to third parties acting on behalf of licensed content owners.

如果您可以接受较低级别的保护,那么 AES 加密的 HLS 可能就足够了 - 实际的视频加密与 DRM 几乎相同,但 key 本身并未加密。

您可以使用 ffmpeg 和 openssl 创建 AES 加密的 HLS 流 - ffmpeg 文档 ( http://ffmpeg.org/ffmpeg-all.html#Options-34 ) 包含以下示例脚本:

#!/bin/sh
BASE_URL=${1:-'.'}
openssl rand 16 > file.key
echo $BASE_URL/file.key > file.keyinfo
echo file.key >> file.keyinfo
echo $(openssl rand -hex 16) >> file.keyinfo
ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \
  -hls_key_info_file file.keyinfo out.m3u8

关于ios - 在 iOS 中使用解密流式传输分段数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44941616/

相关文章:

ios - Xcode项目的模拟器是空白的

ios - 将 NSData 转换为 NSString

android - 在android中流式传输音频.pls

java - 用于 Java 的增量流式 JSON 库

快速 avplayer Controller 获取全屏按钮

ios - 使用 AFNetworking 进行 SSL 证书验证

ios - 如何向 UICollectionView 添加单独的行

iOS AVPlayer 与 MPMusicPlayerController

ruby-on-rails - Heroku:在没有本地文件系统的情况下为大型动态生成的 Assets 提供服务

ios - iOS 中的背景音频