如何使用 AES 128 保护 HLS 视频
How to secure HLS videos, with AES 128
我必须使用 Http Live Streaming 从服务器为移动设备流式传输视频。
该文件包含 .m3u8,其中列出了 .ts 文件。那么如何保护此文件以仅访问授权用户。
基本上您可以使用 AES-128 加密每个块。 AES-128 使用 128 位密钥、密码块链接 (CBC) 和 PKCS7 填充使用 AES 加密整个块。 CBC 将使用初始化向量 (IV) 重新启动每个段。
您可以通过创建包含以下内容的密钥文件来使用 ffmpeg 执行此操作:
Key URI
Path to Key File
IV (optional)
您可以使用 openssl 创建密钥:
openssl rand 16 > video1.key
文件将包含以下内容:
http://my-server.com/video1.key
video1.key
然后通过提供密钥文件的路径使用 ffmpeg:
ffmpeg -i input.mp4 -hls_time 6 -hls_key_info_file keyFile playlist.m3u8
这将创建段和清单,其中应包含 #EXT-X-KEY:METHOD=AES-128,URI 属性。
#EXT-X-KEY:METHOD=AES-128,URI="http://my-server.com/video1.key"
我已经实现了类似的模块来保护使用 AES-128 加密的 .ts 文件并在服务器上对其进行解密。希望这会有所帮助:
我必须使用 Http Live Streaming 从服务器为移动设备流式传输视频。 该文件包含 .m3u8,其中列出了 .ts 文件。那么如何保护此文件以仅访问授权用户。
基本上您可以使用 AES-128 加密每个块。 AES-128 使用 128 位密钥、密码块链接 (CBC) 和 PKCS7 填充使用 AES 加密整个块。 CBC 将使用初始化向量 (IV) 重新启动每个段。
您可以通过创建包含以下内容的密钥文件来使用 ffmpeg 执行此操作:
Key URI
Path to Key File
IV (optional)
您可以使用 openssl 创建密钥:
openssl rand 16 > video1.key
文件将包含以下内容:
http://my-server.com/video1.key
video1.key
然后通过提供密钥文件的路径使用 ffmpeg:
ffmpeg -i input.mp4 -hls_time 6 -hls_key_info_file keyFile playlist.m3u8
这将创建段和清单,其中应包含 #EXT-X-KEY:METHOD=AES-128,URI 属性。
#EXT-X-KEY:METHOD=AES-128,URI="http://my-server.com/video1.key"
我已经实现了类似的模块来保护使用 AES-128 加密的 .ts 文件并在服务器上对其进行解密。希望这会有所帮助: