一种能够跨平台浏览器的视频直播方法技术

技术编号:16400916 阅读:88 留言:0更新日期:2017-10-17 21:03
本发明专利技术公开了一种能够跨平台浏览器的视频直播方法,所述方法采用ffmpeg以及J2EE技术手段通过对摄像头采集的视频进行实时动态转码,最终使用户在前端能流畅地看到摄像头的直播,解决了资源利用率的问题和摄像头视频流多种协议兼容性问题,能使单台服务器能管理成千上百摄像头的直播,极大的降低了用户硬件成本和服务器能耗。

A video live broadcast method capable of Cross Platform Browser

The invention discloses a cross platform browser video broadcast method, the method of using ffmpeg and J2EE technology by means of real-time transcoding of the video camera collection, end users can see the camera live smoothly in front, solve the resource utilization problem of video camera and multi protocol compatibility issues that can make a single server management can live hundreds of thousands of cameras, greatly reducing the user cost of hardware and server power consumption.

【技术实现步骤摘要】
一种能够跨平台浏览器的视频直播方法
本专利技术涉及视频直播领域,具体地,涉及一种可以跨平台浏览器上经动态转码的视频直播方法。
技术介绍
随着科技的进步和发展,视频直播逐渐成为热门对象,视频直播产品、平台等不断涌现,而现有的视频直播存在如下技术问题:1、传统的移动监控需要特殊的手机应用才能支持,无法满足现代社交网络的要求(如微信、微博分享等);2、传统的直播路径是固定的,网络资源浪费;3、传统的摄像头直播将摄像头访问地址直接暴露在外网,无法保证隐私安全性;4、传统的摄像头直播系统与具体的厂家相关,兼容性差。
技术实现思路
本专利技术提供了一种能够跨平台浏览器的视频直播方法,解决了现有视频直播存在资源利用率的问题和摄像头视频流多种协议兼容性问题,实现了能使单台服务器能管理成千上百摄像头的直播,极大的降低了用户硬件成本和服务器能耗的技术效果。为解决上述技术问题,本申请提供了一种能够跨平台浏览器的视频直播方法,所述方法包括:步骤1:用户通过终端请求需要访问的直播路径,并传递参数摄像头id;步骤2:服务器将用户id和初始时间组成的一个键值对并放入一个用户信息字典内;步骤3:服务器根据用户请求的摄像头id所对应的摄像头源地址采集视频信息;对采集到的视频流进行HLS协议转码,并将该转码进程信息和步骤2的字典一起封装为一个转码对象,再将摄像头id和该转码对象组成的键值对放入一个全局字典里;步骤4:服务器将转码后的地址返回给用户,用户根据返回地址访问直播;步骤5:用户在观看直播时,定期发送请求到服务器,服务器根据请求参数中的摄像头id从全局字段中找到对应的转码对象,再通过请求参数中的用户id从转码对象中的用户信息字典中找到该用户对应的时间剩余值,并将时间剩余值加上一个时间常量,以此来确保该视频继续转码;步骤6:服务器创建一个定时任务,定期访问全局字典里的键值对,从键值对中取出转码对象,再从转码对象中取出用户信息字典,若发现该用户信息字典为空,则将该键值对从全局字典里移除;否则继续轮询用户信息字典里的所有时间剩余值,将时间剩余值减去一个时间常量,若减去之后的值大于0,则保留,若小于0,则将该键值对从用户信息字典里移除。本方案采用ffmpeg以及J2EE技术手段通过对摄像头采集的视频进行实时动态转码,最终使用户在前端能流畅地看到摄像头的直播。解决了资源利用率的问题和摄像头视频流多种协议兼容性问题,能使单台服务器能管理成千上百摄像头的直播,极大的降低了用户硬件成本和服务器能耗。进一步的,所述步骤2具体为:当用户1访问摄像头时,用户1id为user1,摄像头id为camera1,设定用户初始时间剩余值为C0,将<user1,C0>键值对存入一个用户信息字典users1。该步骤主要用于存放某一摄像头的所有用户信息。进一步的,所述步骤3具体包括:声明一个java类HLS,该类包含以下属性:{cameraId:摄像头id;users:映射键值对集合;process:转码进程;start:开始时间;uuid:唯一码};使用java运行ffmpeg将转码摄像头rstp协议视频流为hls协议得到转码进程process1,转码后的访问路径为path1;创建并初始化一个HLS对象hls1{process=process1;start=当前时间;path=path1;camerId=camera1;users=users1};并将<camera1,hls1>键值对存入全局字典hlSmap;再将访问路径path1返回给用户,用户即可通过该路径观看直播。该步骤主要用于存放所有摄像头的转码信息及其用户信息集合。进一步的,所述步骤5具体包括:用户user1在观看直播的同时每隔C1时间向服务器发出请求,并传递用户id和摄像头id,分别为user1和camera1;服务器根据键camera1从全局字典hLSmap找到对应的值hls1,再根据user1从hls1的用户信息字典users1中找到键值对<user1,CX>;最终以<user1,CX+C1>覆盖掉<user1,CX>。以此方式增加了用户的时间剩余值,用户即可继续观看该直播。该步骤主要用于更新用户在某一摄像头用户信息集合中的剩余时间值,以表示该用户仍在观看直播。进一步的,所述步骤6具体包括:创建一个定时任务每隔C1时间轮询全局字典hLSMap中的值hlsX,其中C1<C0;若hlsX的users的键值对数量为0,则将该hlsX的转码进程processX终结释放资源并将该hlsX从全局字典hlSMap中移除;否则将hlsX的用户信息字典usersX里的值减去C1,若减去后的值小于0,则将该键值对从usersX中移除。该步骤主要用于定时轮询某一摄像头的用户信息,及时释放没有任何用户观看的转码进程,最大化利用服务器资源。本申请提供的一个或多个技术方案,至少具有如下技术效果或优点:本申请中的技术方案转码为HLS(HLS(HTTPLiveStreaming),Apple的动态码率自适应技术,主要用于PC和Apple终端的音视频服务,包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件)协议的视频流,在跨平台浏览器直播浏览,无需特殊控件。本申请中的技术方案提高服务器资源利用率,服务器会根据前端用户对某一个摄像头的访问来动态对该摄像头视频流进行转码,而不是一开始就进行转码静待用户来访问,因此可以合理的利用服务器资源,仅对用户访问的摄像头视频流进行转码,当用户离开访问某一摄像头时,也可以快速释放掉该资源。附图说明此处所说明的附图用来提供对本专利技术实施例的进一步理解,构成本申请的一部分,并不构成对本专利技术实施例的限定;图1是本申请中能够跨平台浏览器的视频直播方法的流程示意图。具体实施方式本专利技术提供了一种能够跨平台浏览器的视频直播方法,解决了现有视频直播存在资源利用率的问题和摄像头视频流多种协议兼容性问题,实现了能使单台服务器能管理成千上百摄像头的直播,极大的降低了用户硬件成本和服务器能耗的技术效果。为了能够更清楚地理解本专利技术的上述目的、特征和优点,下面结合附图和具体实施方式对本专利技术进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本专利技术,但是,本专利技术还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本专利技术的保护范围并不受下面公开的具体实施例的限制。请参考图1,本申请提供了一种能够跨平台浏览器的视频直播方法,所述方法包括:步骤1:用户通过终端请求需要访问的直播路径,并传递参数摄像头id。步骤2:服务器将用户id和初始时间组成的一个键值对并放入一个用户信息字典内。步骤3:服务器根据用户请求的摄像头id所对应的摄像头源地址采集视频信息;对采集到的视频流进行HLS协议转码,并将该转码进程信息和步骤2的字典一起封装为一个转码对象。再将摄像头id和该转码对象组成的键值对放入一个全局字典里。步骤4:服务器将转码后的地址返回给用户,用户根据返回地址访问直播。步骤5:用户在观看直播时,会定期发送请求到服务器,服务器根据请求参数中的摄像头id从全局字段中找本文档来自技高网...
一种能够跨平台浏览器的视频直播方法

【技术保护点】
一种能够跨平台浏览器的视频直播方法,其特征在于,所述方法包括:步骤1:用户通过终端请求需要访问的直播路径,并传递参数摄像头id;步骤2:服务器将用户id和初始时间组成的一个键值对并放入一个用户信息字典内;步骤3:服务器根据用户请求的摄像头id所对应的摄像头源地址采集视频信息;对采集到的视频流进行HLS协议转码,并将该转码进程信息和步骤2的字典一起封装为一个转码对象,再将摄像头id和该转码对象组成的键值对放入一个全局字典里;步骤4:服务器将转码后的地址返回给用户,用户根据返回地址访问直播;步骤5:用户在观看直播时,定期发送请求到服务器,服务器根据请求参数中的摄像头id从全局字典中找到对应的转码对象,再通过请求参数中的用户id从转码对象中的用户信息字典中找到该用户对应的时间剩余值,并将时间剩余值加上一个时间常量,以此来确保该视频继续转码;步骤6:服务器创建一个定时任务,定期访问全局字典里的键值对,从键值对中取出转码对象,再从转码对象中取出用户信息字典,若发现该用户信息字典为空,则将该键值对从全局字典里移除;否则继续轮询用户信息字典里的所有时间剩余值,将时间剩余值减去一个时间常量,若减去之后的值大于0,则保留,若小于0,则将该键值对从用户信息字典里移除。...

【技术特征摘要】
1.一种能够跨平台浏览器的视频直播方法,其特征在于,所述方法包括:步骤1:用户通过终端请求需要访问的直播路径,并传递参数摄像头id;步骤2:服务器将用户id和初始时间组成的一个键值对并放入一个用户信息字典内;步骤3:服务器根据用户请求的摄像头id所对应的摄像头源地址采集视频信息;对采集到的视频流进行HLS协议转码,并将该转码进程信息和步骤2的字典一起封装为一个转码对象,再将摄像头id和该转码对象组成的键值对放入一个全局字典里;步骤4:服务器将转码后的地址返回给用户,用户根据返回地址访问直播;步骤5:用户在观看直播时,定期发送请求到服务器,服务器根据请求参数中的摄像头id从全局字典中找到对应的转码对象,再通过请求参数中的用户id从转码对象中的用户信息字典中找到该用户对应的时间剩余值,并将时间剩余值加上一个时间常量,以此来确保该视频继续转码;步骤6:服务器创建一个定时任务,定期访问全局字典里的键值对,从键值对中取出转码对象,再从转码对象中取出用户信息字典,若发现该用户信息字典为空,则将该键值对从全局字典里移除;否则继续轮询用户信息字典里的所有时间剩余值,将时间剩余值减去一个时间常量,若减去之后的值大于0,则保留,若小于0,则将该键值对从用户信息字典里移除。2.根据权利要求1所述的能够跨平台浏览器的视频直播方法,其特征在于,所述步骤2具体为:当用户1访问摄像头时,用户1id为user1,摄像头id为camera1,设定用户初始时间剩余值为C0,将<user1,C0>键值对存入一个用户信息字典users1。3.根据权利要求1所述的能够跨平台浏览器的视频直播方法,其特征在于,所述步骤3具体包括:声明一个java类HLS,该类包含以下属...

【专利技术属性】
技术研发人员:熊维军陈欢
申请(专利权)人:成都市知用科技有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1