M3U8直播,视频切片 AES加密,多码流自适应

FFMPEG

切片命令:

复制代码
ffmpeg -i 1.mp4 -fflags flush_packets -max_delay 2 -flags -global_header -hls_time 5 -hls_list_size 0 -vcodec libx264 -acodec aac -r 30 -g 60 -y index.m3u8

播放m3u8文件,必须依靠web服务器

在服务器上,流媒体文件被切割成一个个小分片,有相同的长度,没一个小分片是一个ts文件,同时生成一个索引文件m3u8,索引里放了ts文件的URL,

客户端请求,有两种方式,一种是点播vod(Video on demand),一种是直播live

以上命令是把本地文件生成m3u8,index.m3u8中的内容:

复制代码
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:6.000000,
index0.ts
#EXTINF:4.000000,
index1.ts
#EXTINF:6.000000,
index2.ts
#EXTINF:4.000000,
index3.ts
#EXTINF:6.000000,
index4.ts
#EXTINF:4.000000,
index5.ts
#EXTINF:6.000000,
index6.ts
#EXTINF:4.000000,
index7.ts
#EXTINF:5.966667,
index8.ts
#EXTINF:6.000000,
index9.ts
#EXTINF:2.066667,
index10.ts
#EXT-X-ENDLIST

最后一句是#EXT-X-ENDLIST,表示结束,但是在直播的时候,就没有这句了,并且里面的切片内容是时时更新的

直播的原理就是动态更新这个索引文件,用户,无论什么时候打开这个文件,都是最新的

索引文件是可以嵌套的,一般嵌套一级索引,二级索引,比如分成高清,标清,超清

优点:跨平台、易分发,CND接入完善

SRS支持HLS主要是作为输出的分发协议,直播以RTMP+HLS分发,满足各种场景,点播以HLS为主


HLS提供一个m3u8地址,Apple的Safari浏览器可以直接打开m3u8地址,比如:http://demo.srs.com/live/livestream.m3u8,Android不能直接打开,要使用html的video标签,

html 复制代码
<video width="640" height="360"
    autoplay controls autobuffer
    src="http://demo.srs.com/live/livestream.m3u8"
    type="application/vnd.apple.mpegurl">
</video>
相关推荐
mit6.8249 小时前
[solution] 关闭硬件加速解决导出视频绿屏
音视频
Minilinux201812 小时前
Android音频系列(09)-AudioPolicyManager代码解析
android·音视频·apm·audiopolicy·音频策略
听麟13 小时前
HarmonyOS 6.0+ 个性化音乐播放器APP开发实战:音频可视化与场景化推荐落地
华为·音视频·harmonyos
博客zhu虎康13 小时前
音视频处理:视频时间轴在指定时间处添加音频并展示可视化拖拽条
音视频
大学生小郑13 小时前
亮度噪声和色度噪声
图像处理·音视频·视频
星海之恋99213 小时前
便宜又好用的移动 4G 蜂窝代理快来看看!
音视频
传说故事14 小时前
【论文自动阅读】视频生成模型的Inference-time物理对齐 with Latent World Model
人工智能·深度学习·音视频·视频生成
Bits to Atoms14 小时前
宇树G1语音助手完整开发指南(下)——从零构建智能知识库对话系统
人工智能·机器人·音视频·语音识别
行业探路者15 小时前
2026年热销榜单:富媒体展示二维码推荐,助力信息传递新风尚
大数据·音视频·二维码
大学生小郑15 小时前
影像测评知识分享
图像处理·音视频·视频