ffmpeg 推加密的 hls 流
时间: 2023-09-05 19:06:49 浏览: 289
要推加密的 HLS 流,需要先生成加密的密钥和向量,可以使用 openssl 命令生成:
```
openssl rand 16 > encryption.key
openssl rand -hex 16 > encryption.iv
```
然后使用 ffmpeg 命令推流,将加密的密钥和向量作为参数传递:
```
ffmpeg -i input.mp4 -c:v copy -c:a copy -hls_time 10 -hls_key_info_file key_info.txt -hls_flags encrypt_segments -hls_segment_filename "encrypted_%03d.ts" -hls_playlist_type vod -f hls output.m3u8
```
其中,`-hls_key_info_file key_info.txt` 表示将密钥信息写入文件 `key_info.txt` 中,该文件的格式如下:
```
#EXT-X-KEY:METHOD=AES-128,URI="encryption.key",IV=0xencryption_iv
```
`-hls_flags encrypt_segments` 表示对分片进行加密,`-hls_segment_filename "encrypted_%03d.ts"` 表示分片文件名以 `encrypted_` 开头,并使用三位数字作为序号,`-hls_playlist_type vod` 表示生成 VOD 类型的播放列表。
最后,使用 `nginx` 或其他支持加密的 HTTP 服务器来服务这个 HLS 流。在客户端播放时,需要使用相同的密钥和向量进行解密。
阅读全文