工作中的一个项目需要实现视频在线播放并防止下载。研究目前主流方案以后,决定采用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直接播放。