php - 如何使用 AES 128 保护 HLS 视频

标签 php ios web-services encryption http-live-streaming

我必须使用 Http Live Streaming 从服务器为移动设备流式传输视频。 该文件包含 .m3u8,其中列出了 .ts 文件。那么如何保护此文件以仅访问授权用户。

最佳答案

基本上,您可以使用 AES-128 加密每个 block 。 AES-128 使用 128 位 key 、密码 block 链接 (CBC) 和 PKCS7 填充使用 AES 加密整个 block 。 CBC 将使用初始化向量 (IV) 重新启动每个段。

您可以通过创建包含以下内容的 key 文件来使用 ffmpeg 执行此操作:

Key URI
Path to Key File
IV (optional)

您可以使用 openssl 创建 key :

openssl rand 16 > video1.key

该文件将包含以下内容:

http://my-server.com/video1.key
video1.key

然后通过提供 key 文件的路径来使用 ffmpeg:

ffmpeg -i input.mp4 -hls_time 6 -hls_key_info_file keyFile playlist.m3u8

这将创建段和 list ,其中应包含 #EXT-X-KEY:METHOD=AES-128,URI 属性。

#EXT-X-KEY:METHOD=AES-128,URI="http://my-server.com/video1.key"

关于php - 如何使用 AES 128 保护 HLS 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41544071/

相关文章:

php - WordPress 侧面板

ios - UIActivityIndi​​catorView 未显示

ios - 保存超过100个ekevent后,应用程序崩溃且Iphone重新启动

java - 返回外部 ID Java RestFul WS

session 检查中的 PHP 5.4 错误

php - Opencart:CSS(基于路由维护)

ios - 我如何判断 SKEmitterNode 何时达到其最大粒子数?

java - Java 的 WS-Discovery 实现

c# - Asp.net 中的异步 Web 服务

php - 直接将数组插入MySQL数据库