工作中的一个项目需要实现视频在线播放并防止下载。研究目前主流方案以后,决定采用HLS生成视频分片并手动加密的方案。这篇文章记录了研究过程中遇到的问题,以及最后的结果。仅供以后参考。
采用ffmpeg生成HLS原始视频分片
ffmpeg是一个强大的媒体文件处理工具,用它可以方便的生成HLS视频分片。
生成未加密的视频分片命令
ffmpeg -i demo.mp4 -codec copy -f segment -segment_list index.m3u8 -segment_time 30 segment_%d.ts
-i 输入文件
-codec 选择输入文件解码器或输出文件编码器。copy用于输出文件,表示保留输入文件编码无需重新编码。
-f 指定输入或输出文件格式。选择segment,表示视频切片。
-segment_list 指定视频切片索引文件。
-segment_time 指定视频切片时长。
segment_%d.ts 最后指定切片文件命名格式
参考代码,运行plain.sh即可完成视频分片
参考生成资源,可使用安装了Native HLS Playback插件的chrome直接播放。
生成加密的视频分片
未加密的视频分片可以直接播放,用户获得视频分片后可以

本文探讨了一个项目中实现在线视频播放并防止下载的需求,选择了通过HLS生成视频分片并加密的方案。详细介绍了如何使用ffmpeg生成原始分片,以及采用openssl手动加密视频分片的两种方法,包括默认IV和自定义IV。此外,还讨论了进一步防止下载的策略,如权限验证和索引文件与密钥文件的二次加密。
最低0.47元/天 解锁文章
5775

被折叠的 条评论
为什么被折叠?



