之前是通过nginx进行 hls 直播,现在尝试自己去实现hls服务,以方便后续需求的更改。
实时的h264视频流封装为一段一段的ts流并生成一个动态更新的 m3u8文件。目前 h264 直接封装为ts流还有点问题,暂时采用下面的方案:
h264 封装为 mp4文件 再通过ffmpeg 转码为ts文件
m3u8 文件格式如下
#EXTM3U
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:912
http://10.10.2.167/t00000000000086/test912.ts
http://10.10.2.167/t00000000000086/test913.ts
http://10.10.2.167/t00000000000086/test914.ts
由于是实时视频,因此不需要加 endlist
文件中总是保存最新三个ts文件,以滑动窗口的方式进行更新,序号如下
1,2,3
2,3,4
4,5,6
效果:
后续需要做的工作:
1. h264直接封装为ts文件,提高效率
2. 在hls服务器上 实现一个http 服务