首页 > 其他分享 >基于M3u8的视频加密及播放

基于M3u8的视频加密及播放

时间:2024-07-17 10:23:06浏览次数:13  
标签:www enc 加密 https M3u8 hls ts key 播放

准备工作

  安装ffmpeg   mac安装 brew install ffmpeg

 

加密准备

  生成enc.key

openssl rand 16 > enc.key ( 生成一个enc.key文件 )

  生成 iv

openssl rand -hex 16 ( 生成一段字符串,记下来)

  新建一个文件 enc.keyinfo 内容格式如下:

Key URI # enc.key的路径,使用http形式 
Path to key file # enc.key文件 
IV # openssl rand -hex 16生成的字符串

  示例:

https://www.xxx.com/video/enc.key
/Users/path/enc.key
65da35f98302e8e0f480e92d0dbde5d3

  其中 https://xxx/enc.key 你需要提供对外的接口,可以通过接口访问到enc.key文件的内容,你可以放到自己的web项目中,

视频分片

ffmpeg -y \
-i "/Users/bukesu/test/test.mp4" \
-hls_time "10" \
-hls_key_info_file "/Users/path/enc.keyinfo" \
-hls_playlist_type "vod" \
-hls_list_size "0" \
-hls_segment_filename "/Users/path/ts/file%d.ts" \
"/Users/path/playlist.m3u8"
 
 
hls_time:指定生成 ts 视频切片的时间长度s
hls_key_info_file:enc.keyinfo文件的位置
hls_list_size: 索引播放列表的最大列数 默认5,0 为不限制
hls_segment_filename:生成ts和m3u8文件的路径及文件名

  将分片后的视频文件是部署到服务器  

  验证:在浏览器输入 https://www.m3u8play.com/ 网址,输入https://www.xxx.com/ts/playlist.m3u8

   x.m3u8文件示例

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:25
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="https://www.xxx.com/video/enc.key",IV=0x65da35f98302e8e0f480e92d0dbde5d3
#EXTINF:13.600000,
video/ts/file0.ts
#EXTINF:10.600000,
video/ts/file1.ts
#EXTINF:15.666667,
video/ts/file2.ts
#EXT-X-ENDLIST

  

前端交互

  后端增加一个获取token的api:https://www.xxx.com/getSecret?id=1   并对返回的token进行加密

      在访问https://www.xxx.com/ts/playlist.m3u8及https://www.xxx.com/video/enc.key不直接访问文件,使用路由进行token验证,每个token仅可使用一次(token有前端解密获得)

流程图

 

 

标签:www,enc,加密,https,M3u8,hls,ts,key,播放
From: https://www.cnblogs.com/shenxiaobin/p/18306569

相关文章

  • 新版网页无插件H.265播放器EasyPlayer.js如何测试demo视频?
    H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,支持H.264与H.265编码格式,性能稳定、播放流畅;支持WebSocket-FLV、HTTP-FLV,HLS(m3u8)、WebRTC、WS-FMP4、HTTP-FMP4等格式的视频流,并且已实现网页端实时录像、在iOS上实现低延时......
  • uniApp 接入微信短剧播放器
    短剧播放器是微信官方为微短剧类目小程序提供的播放器插件。开发者可引入短剧播放器插件后,基于自身需求快速进行开发上线。 小程序中使用短剧播放器需要以下几个条件小程序已有短剧类目(文娱->微短剧),并且将该类目设为主类目小程序引入短剧播放器插件   微信官方短剧......
  • 加密办法 Ras 国密 Spring Security
    rsa的用法:后端生成秘钥对,吧私钥存redis,并且把key和公钥返回给前端前端加密之后吧密文和key传过来,后端通过key获取私钥解密Redis的配置:  1.配置pom.xml文件pom.xml <!--Redis依赖--><dependency><groupId>org.springframework.boot</grou......
  • 非对称加密(RSA)
    非对称加密(RSA)非对称加密.加密和解密的秘钥不是同一个秘钥.这里需要两把钥匙.一个公钥,一个私钥.公钥发送给客户端.发送端用公钥对数据进行加密.再发送给接收端,接收端使用私钥来对数据解密.由于私钥只存放在接受端这边.所以即使数据被截获了.也是无法进行解密的.公钥和私钥......
  • AES加密
    对称加密(AES)AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个。常见的对称加密:AES,DES,3DES.我们这里讨论AES。安装:pip install pycryptodomeAES加密最常用的模式就是CBC模式和ECB模式,当然还有很多其它模式,他们都属于AES加密。ECB模式和CBC模式俩者区别就......
  • 安防视频监控EasyCVR平台浏览器http可以播放,https不能播放,如何解决?
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构,兼容性强、支持多协议接入,包括国标GB/T28181协议、部标JT808、GA/T1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SDK等。平台能对外分发RTMP、RT......
  • webrtc-streamer实时播放监控
    公司要做web端监控实时播放,经过调研,webrtc-streamer的方式对前后端项目侵入最少,且没有延迟卡钝的现象。一、准备工作一个摄像头,摄像头对应的rtsp流链接,一台电脑,一个vue项目。二、Webrtc-streamer安装及启动教程 1、下载安装包下载地址:https://github.com/m......
  • 写真图片视频打赏系统源码全开源无加密
    这是一款开源的写真图片及视频打赏系统源码,顾名思义他可以做写真图片打赏站也可以做视频打赏站,支付对接了易支付,拥有独立代理后台,全部源码无加密,另外也可以配合付费进群使用。支付扣量、域名防洪这些基本的就不介绍了,看图吧!留给有需要的人!源码下载:图片视频打赏系统源码.zip可......
  • Python学习笔记36:进阶篇(二十五)pygame的使用之事件监听控制切歌和暂停,继续播放
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • idea 出现[08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全
    目录1.问题所示2.原理分析3.解决方法1.问题所示idea配置Database的时候,出现如下问题:Failed  Copy SearchError Troubleshooting[08S01]驱动程序无法通过使用安全套接字层(SSL)加密与SQLServer建立安全连接。错误:“Theserverselectedprotoco......