一种实时视频的hls快速分享的方法

文档序号:1675892 发布日期:2019-12-31 浏览:9次 >En<

阅读说明:本技术 一种实时视频的hls快速分享的方法 (HLS (HTTP live streaming) quick sharing method for real-time video ) 是由 吴俊杰 季金辉 杜春花 周伟 侯凝冰 于 2019-09-24 设计创作,主要内容包括:本发明公开了一种实时视频的HLS快速分享的方法,IP摄像机和服务器准备就绪,服务器周期获取IP摄像机的当前截图或者IP摄像机周期向服务器上传截图;服务器定时使用截图素材生成视频片段;服务器收到客户端的HLS媒体请求后,立即使用步骤2的视频片段生成HLS播放地址M3U8,并记为地址A,返回地址A给客户端;客户端播放该播放地址A,同时服务器开始获取该摄像机视频,开启正常的HLS转码过程。本发明即时生成播放地址,用户即时可播,无需等待。(The invention discloses a method for quickly sharing HLS of a real-time video, wherein an IP camera and a server are ready, and the server periodically acquires the current screenshot of the IP camera or uploads the screenshot to the server; the server regularly uses the screenshot material to generate a video clip; after receiving the HLS media request of the client, the server immediately generates an HLS playing address M3U8 by using the video clip in the step 2, records the HLS playing address as an address A, and returns the address A to the client; and the client plays the playing address A, and simultaneously the server starts to acquire the video of the camera and starts a normal HLS transcoding process. The invention generates the playing address instantly, and the user can play instantly without waiting.)

一种实时视频的HLS快速分享的方法

技术领域

本发明涉及一种分享方法,特别是一种实时视频的HLS快速分享的方法,属于流媒体技术领域。

背景技术

实时视频的HLS分享是指基于HLS协议,分发实时视频数据。针对实时视频,一般持续采集视频,然后按HLS协议规范,对视频进行分片、同时生成索引文件(.M3U8)。在广播电视等领域,这种方式比较适合。

但在视频监控等领域,由于视频源数量庞大,同时受前端限制,这个HLS的处理一般在后端服务器来做。如果仍然采用上述“持续”处理的方式,则服务器和带宽需求巨大。因此一般采取需要观看的时候服务器端临时启动转码的过程。但是这样在用户触发观看后,需要等待一定的时间播放地址才能生成、播放,影响用户体验。从触发到能播放这个等待的时间却是无法去除的——服务器获取媒体数据,服务器产生媒体片段,待片段产生一定数量后产生索引文件(.M3U8)均需要时间。

同时,上述的等待该流媒体备好的这个等待时长对于各播放端来说是不可确知的,也给播放端的开发制造了一定的困难——不可播放需要再试等。

发明内容

本发明所要解决的技术问题是提供一种实时视频的HLS快速分享的方法,即时生成播放地址,用户即时可播。

为解决上述技术问题,本发明所采用的技术方案是:

一种实时视频的HLS快速分享的方法,其特征在于包含以下步骤:

步骤一:IP摄像机和服务器准备就绪,服务器周期获取IP摄像机的当前截图或者IP摄像机周期向服务器上传截图;

步骤二:服务器定时使用截图素材生成视频片段;

步骤三:服务器收到客户端的HLS媒体请求后,立即使用步骤二的视频片段,按照hls规范将其分片,同时生成HLS的M3U8索引文件,记为播放地址A,返回给客户端;

步骤四:客户端播放该播放地址A,同时服务器开始获取该摄像机视频,开启正常的HLS转码过程。

进一步地,所述步骤二中生成视频片段的具体过程为

2.1视频片段的帧率为f,视频片段的时长为r,则一段视频片段共计有f*r幅图片;

2.2设定截图周期为T1,那么至少需要T1*(f*r+1)秒才能准备好一个视频片段的全部照片;由于HLS的视频片段的帧率和时长一般是一定的,因此制作视频片段的周期T2>= T1*(f*r+1);

2.3视频片段生成:按照图片生成的时间,顺序读取图片,并解码为编码器可以利用的图像数据,然后使用视频压缩算法按一定的帧率将上述图片数据作为视频帧进行编码压缩,进一步地按Mp4格式存成文件,形成视频片段。

进一步地,所述2.3中编码器可以利用的图像数据格式为YUV。

进一步地,所述2.3中视频压缩算法采用H.264。

进一步地,所述2.3中视频片段生成的过程代码为

定义一个文件8128CD2002D_0_1.m3u8 :

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-MEDIA-SEQUENCE:3

#EXT-X-TARGETDURATION:8

#EXTINF:5.089,

8128CD2002D_0_1-3.ts

#EXTINF:4.255,

8128CD2002D_0_1-4.ts

#EXTINF:4.547,

8128CD2002D_0_1-5.ts

#EXT-X-DISCONTINUITY

#EXTINF:7.770,

8128CD2002D_0_1-6.ts

#EXTINF:6.000,

8128CD2002D_0_1-7.ts

8128CD2002D_0_1-6.ts和8128CD2002D_0_1-7.ts为新媒体片,上部为预先生成的媒体片,#EXT-X-DISCONTINUITY为按HLS协议规范。

进一步地,所述步骤四中的客户端为专用的客户端软件或者浏览器。

进一步地,所述步骤四中,服务器开启正常的HLS转码过程,产生正常HLS播放地址M3U8,并记为地址B,按HLS协议规范,将新文件片加入到A地址的M3U8文件后。

本发明与现有技术相比,具有以下优点和效果:本发明提供了一种实时视频的HLS快速分享的方法,即时生成播放地址,用户即时可播,无需等待。

附图说明

图1是本发明的一种实时视频的HLS快速分享的方法的流程图。

具体实施方式

下面通过实施例对本发明作进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。

如图1所示,本发明的一种实时视频的HLS快速分享的方法,其特征在于包含以下步骤:

步骤一:IP摄像机和服务器准备就绪,服务器周期获取IP摄像机的当前截图或者IP摄像机周期向服务器上传截图;

步骤二:服务器定时使用截图素材生成视频片段;其具体过程为:

2.1视频片段的帧率为f,视频片段的时长为r,则一段视频片段共计有f*r幅图片;

2.2设定截图周期为T1,那么至少需要T1*(f*r+1)秒才能准备好一个视频片段的全部照片;由于HLS的视频片段的帧率和时长一般是一定的,因此制作视频片段的周期T2>= T1*(f*r+1);

2.3视频片段生成:按照图片生成的时间,顺序读取图片,并解码为编码器可以利用的图像数据,然后使用视频压缩算法按一定的帧率将上述图片数据作为视频帧进行编码压缩,进一步地按Mp4格式存成文件,形成视频片段。

其中,2.3实现的代码为:

定义一个文件8128CD2002D_0_1.m3u8 :

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-MEDIA-SEQUENCE:3

#EXT-X-TARGETDURATION:8

#EXTINF:5.089,

8128CD2002D_0_1-3.ts

#EXTINF:4.255,

8128CD2002D_0_1-4.ts

#EXTINF:4.547,

8128CD2002D_0_1-5.ts

#EXT-X-DISCONTINUITY

#EXTINF:7.770,

8128CD2002D_0_1-6.ts

#EXTINF:6.000,

8128CD2002D_0_1-7.ts

8128CD2002D_0_1-6.ts和8128CD2002D_0_1-7.ts为新媒体片,上部为预先生成的媒体片,#EXT-X-DISCONTINUITY为按HLS协议规范。

在本实施例中,视频片段的帧率f一般取值为25,时长r为5秒钟,则一段视频片段共计有f*r=25*5=125幅画片。设截图周期T1为2则至少需要T1*(f*r+1)=2*(25*5+1)=252秒方能准备好一个视频片段的全部照片;HLS的视频片段的帧率和时长一般是一定的,更多数量的的截图显然是可以制作更多的视频片段。基于以上条件,则制作视频片段的周期T2>=T1*(f*r+1)。

步骤三:服务器收到客户端的HLS媒体请求后,立即使用步骤2的视频片段生成HLS播放地址M3U8,并记为地址A,返回地址A给客户端;

视频分片是将步骤二生成的视频片段按HLS规范所要求进行分片——将较长时间(一般为30s以上)的一段视频分成一定时长(比如5s钟)的视频片段。

步骤四:客户端播放该播放地址A,同时服务器开始获取该摄像机视频,开启正常的HLS转码过程。客户端为专用的客户端软件或者浏览器。服务器开启正常的HLS转码过程,产生正常HLS播放地址M3U8,并记为地址B,按HLS协议规范,将新文件片加入到A地址的M3U8文件后。

本发明提供了一种实时视频的HLS快速分享的方法,即时生成播放地址,用户即时可播,无需等待。本发明以HLS流媒体协议而做,解决问题的思路应该不限应用于此一种协议。本发明使用IP摄像机和后端服务器的监控系统为例,并不限定为此一种应用领域。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:发送装置及方法、接收装置及方法及计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类