一种基于WebRTC的录像存储和回放的系统和方法

文档序号:1802430 发布日期:2021-11-05 浏览:30次 >En<

阅读说明:本技术 一种基于WebRTC的录像存储和回放的系统和方法 (WebRTC-based video storage and playback system and method ) 是由 方辉 谈鸿韬 于 2021-06-28 设计创作,主要内容包括:一种基于WebRTC的录像存储和回放的系统,其特征在于,包括:WebRTCServer服务器、MediaServer服务器和VASU服务器;其中:WebRTCServer服务器,用于WebRTC协议服务端的实现,包括但不限于ICE、SFU以及通话房间管理功能;MediaServer服务器,用于监听WebRTC服务器的行为,包括但不限于用户的加入和媒体流的发布,用户的离开和媒体流的发布取消;它还用于管理其它媒体处理服务器,包括但不限于媒体存储服务、视频分发服务以及视频算法服务;VASU服务器,用于从WebRTCServer服务器订阅媒体和存储媒体。本发明较于传统存储模式更加即时高效,也更加适合实时通话的存储需求。于此同时VASU可以支持集群部署,当用户量过大时候支持横向拓展系统的并发额能力。(A system for WebRTC-based video storage and playback, comprising: WebRTCServer server, MediaServer server and VASU server; wherein: the WebRTCServer server is used for realizing a WebRTC protocol server, and comprises but is not limited to ICE, SFU and call room management functions; the MediaServer is used for monitoring the behaviors of the WebRTC server, including but not limited to joining of a user and publishing of a media stream, leaving of the user and cancelling publishing of the media stream; it is also used to manage other media processing servers including, but not limited to, media storage services, video distribution services, and video algorithm services; and the VASU server is used for subscribing media and storing media from the WebRTCServer server. Compared with the traditional storage mode, the invention is more immediate and efficient, and is more suitable for the storage requirement of real-time communication. Meanwhile, the VASU can support cluster deployment and support the concurrency capability of a horizontal expansion system when the number of users is too large.)

一种基于WebRTC的录像存储和回放的系统和方法

技术领域

本发明涉及的是通讯领域,特别涉及一种基于WebRTC的录像存储和回放的系统和方法。

背景技术

随着目前移动互联网技术的快速发展,公安、交通等行业对智能化移动终端的应用日趋成熟,传统的数字对讲及模拟对讲等系统虽然在指挥调度工作中仍占有一席之地,但其提供的单一语音信息调度功能与指挥工作对信息的多样性需求已不能相适宜。2010年谷歌开源WebRTC后,视频通话技术门槛被大幅降低,使得更多的人愿意参与到这项功能的开发,但随之而来也又新的问题出现,WebRTC虽然是一项主要使用P2P的实时通讯技术,本应该是无中心化节点的,但是在一些大型多人通讯场景,如果都使用端对端直连,端上会遇到的带宽和性能的问题,与此同时国家对视频的安全及监管更加严格,在特定应用场景下,必须要求通话录像的存储和查阅功能,显然有悖于现阶段WebRTC的P2P模式。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于WebRTC的录像存储和回放的系统和方法。

为了解决上述技术问题,本申请实施例公开了如下技术方案:

一种基于WebRTC的录像存储和回放的系统,包括:WebRTCServer服务器、MediaServer服务器、VASU服务器;其中:

WebRTCServer服务器,用于WebRTC协议服务端的实现,包括但不限于ICE、SFU以及通话房间管理功能;

MediaServer服务器,用于监听WebRTC服务器的行为,包括但不限于用户的加入和媒体流的发布,用户的离开和媒体流的发布取消;它还用于管理其它媒体处理服务器,包括但不限于媒体存储服务、视频分发服务以及视频算法服务

VASU服务器,用于从WebRTCServer服务器订阅媒体和存储媒体。

进一步地,VASU服务器包括MediaSession媒体会话模块,Transcode转码模块以及Database适配层;其中:

MediaSession媒体会话模块用于监听来自MediaServer模块的通知消息,包含媒体发布及取消,同时创建或更新M3U8索引文件,并可通过HTTP接口订阅WebRTCServer通话房间的内的媒体流;

Transcode转码模块,用于转码从WebRTCServer服务器房间内订阅到的音视频流;

Database数据库适配层,用于封装数据库操作,写入或更新HLS播放连接,并提供对外查询接口。

进一步地,当Transcode转码模块转码从WebRTCServer服务器房间内订阅到的音视频流如果是H264+AAC直接使用TS容器封装,如果其它音视频格式则会转码成H264+AAC后,再用TS容器格式封装。

本发明还公开了一种基于WebRTC的录像存储和回放的方法,包括:

S100.当终端收到用户加入房间请求时,对录像进行开始储存;

S200.当终端收到用户离开房间请求时,对用户进行结束储存;

S300.当终端接收到用户录像查询请求时,对查询的录像进行回放。

进一步地,S100具体包括:

S101.从终端收到的加入房间请求,加入房间请求中至少包含房间号,用户名密码等相关的鉴权信息,以及STUN/TURN的地址;

S102.加入房间成功后开始发布本地的媒体流,此步骤完成后同时执行S103和S104;

S103.通知媒体服务器及MediaServer服务器有媒体发布,并携带媒体相关信息,用户ID以及媒体ID;

S104.用户发布完成本地媒体流至WebServer服务器后,判断房间内是否存在其它用户发布的媒体流,如若存在进入S107,否则通话流程结束;

S105.判断是否有可用的存储服务器VASU,如果存在,即进入S106,否则进入S108;

S106.通知可用的VASU服务器有新的媒体流发布;

S107.订阅其它用户的媒体流,完成通话流程;

S108.存储子流程结束;

S109.存储服务器向WebRTCServer订阅媒体流。

进一步地,当用户发布完成本地媒体流时,WebServer服务器会判断媒体流的编码格式是否为H264+AAC,如果是直接将媒体流封装成TS格式的文件;如果不是将其它音视频编码格式专门成H264+AAC后,将媒体流封装成TS格式的文件。

进一步地,当媒体流封装成TS格式的文件后,判断M3U8索引文件是否存在,如果存在,将新增的TS文件更新到M3U8文件当中;如果不存在,采用预设切片方式,创建M3U8文件,将新增的TS文件更新到M3U8文件当中。

进一步地,S200具体包括:

S201.用户离开房间,后面进入S202;

S202.取消发布本地媒体流,同时进入两个S204和S203;

S203.通知媒体服务器,有用户离开了房间,并取消了媒体发布,并携带媒体相关信息,后面进入S207;

S204.此判断房间内是否存在其它用户,如果存在进入S205,不存在进入S206。

S205.将用户离开房间消息,通知给房间内的其它用户,其它用户收到该消息后会取消该用户的媒体订阅,进入S206;

S206.通话流程结束;

S207.存储服务器VASU有媒体取消了发布,然后进入S208;

S208.存储服务器VASU取消订阅该媒体服务,并释放本地接收媒体端口;

S209.存储子流程结束。

进一步地,S300具体包括:

S301.收到来自客户端的录像查询请求。进入S302;

S302.通过用户ID和流ID查询HLS播放地址,进入S303;

S303.判断录像是否存在,如果存在进入S304,否则进入S306;

S304.返回HLS播放地址,即可播放;

S305.是否需要查看最新通话内容,如果是需要重新进入S302,否则继续播放当前地址;

S306.若录像不存在,返回错误提示信息,播放结束。

本发明实施例提供的上述技术方案的有益效果至少包括:

本发明公开的一种基于WebRTC的录像存储和回放的系统和方法,在程序和架构方面提供了综合的解决方案,如果多人会话发生时,各客户端会将媒体流发布至WebRTCServer服务器当中,由服务器集中管理,同一房间内用户即可以相互订阅媒体流,相比较于传统P2P模式,虽然服务器压力增大,但更适用多人通话场景,无需担心客户端的解码压力,也避免媒体流在客户端之间的重复传输。此种方式也可以更加方便的针对通话内容存储和查阅;VASU即实现了录像的存储功能,它会实时从WebRTC服务器中获取媒体流,并转码成TS文件格式,此种存储方式,可以即时查看房间内的通话状态,不必等到通话结束,较于传统存储模式更加即时高效,也更加适合实时通话的存储需求。于此同时VASU可以支持集群部署,当用户量过大时候支持横向拓展系统的并发额能力。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例1中,一种基于WebRTC的录像存储和回放的系统的结构图;

图2为本发明实施例1中,一种基于WebRTC的录像存储和回放的方法的流程图;

图3为本发明实施例1中,一种基于WebRTC的录像存储和回放的方法中存储开始的流程图;

图4为本发明实施例2中,一种基于WebRTC的录像存储和回放的方法中存储结束的流程图;

图5为本发明实施例2中,一种基于WebRTC的录像存储和回放的方法中录像回放的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

为了解决现有技术中存在的问题,本发明实施例提供一种基于WebRTC的录像存储和回放的系统和方法。

实施例1

本实施例公开了一种基于WebRTC的录像存储和回放的系统,如图1,包括:WebRTCServer服务器、MediaServer服务器、VASU服务器;其中:

WebRTCServer服务器,用于WebRTC协议服务端的实现,包括但不限于ICE、SFU以及通话房间管理功能;具体的,ebRTCServer服务器用于房间管理和SFU,以及包含底层的WebRTC协议实现。具体可以为收到来自终端用户的加入房间请求,用户加入房间后,即可以发布直接的媒体流,同时会获取到房间内其它用户的媒体信息,用户可以选择订阅或不订阅其它用户的媒体,至此简单的房间管理和SFU流程完成。用户发布完媒体之后,WebRTCServer会立即通知MediaServer服务器;同时也会提供HTTP接口方便第三方服务订阅房间内的媒体流。

MediaServer服务器,用于监听WebRTC服务器的行为,包括但不限于用户的加入和媒体流的发布,用户的离开和媒体流的发布取消;它还用于管理其它媒体处理服务器,包括但不限于媒体存储服务、视频分发服务以及视频算法服务。具体的,MediaServer服务器专门用于监听WebRTCServer的消息,同时将消息通知转发给第三发服务器,它会管理多台服务,从中选取合适的转发。比如VASU录像存储服务。

VASU服务器,用于从WebRTCServer服务器订阅媒体和存储媒体。在本实施例中,VASU服务器,是录像存储的实现。可以从WebRTCServer订阅到通话的媒体流并将其转换成HLS格式播放地址,支持客户查询及回放。提供HTTP即时回放服务。

在一些优选实施例中,VASU服务器包括MediaSession媒体会话模块,Transcode转码模块以及Database适配层;其中:

MediaSession媒体会话模块用于监听来自MediaServer模块的通知消息,包含媒体发布及取消,同时创建或更新M3U8索引文件,并可通过HTTP接口订阅WebRTCServer通话房间的内的媒体流;

Transcode转码模块,用于转码从WebRTCServer服务器房间内订阅到的音视频流;

Database数据库适配层,用于封装数据库操作,写入或更新HLS播放连接,并提供对外查询接口。

本实施例还公开了一种基于WebRTC的录像存储和回放的方法,如图2,包括:

S100.当终端收到用户加入房间请求时,对录像进行开始储存;具体的,如图3,S100具体包括:

S101.从终端收到的加入房间请求,加入房间请求中至少包含房间号,用户名密码等相关的鉴权信息,以及STUN/TURN的地址;

S102.加入房间成功后开始发布本地的媒体流,此步骤完成后同时执行S103和S104;

S103.通知媒体服务器及MediaServer服务器有媒体发布,并携带媒体相关信息,用户ID以及媒体ID;

S104.用户发布完成本地媒体流至WebServer服务器后,判断房间内是否存在其它用户发布的媒体流,如若存在进入S107,否则通话流程结束;

S105.判断是否有可用的存储服务器VASU,如果存在,即进入S106,否则进入S108;

S106.通知可用的VASU服务器有新的媒体流发布;

S107.订阅其它用户的媒体流,完成通话流程;

S108.存储子流程结束;

S109.存储服务器向WebRTCServer订阅媒体流。

在本实施例中,当用户发布完成本地媒体流时,WebServer服务器会判断媒体流的编码格式是否为H264+AAC,如果是直接将媒体流封装成TS格式的文件;如果不是将其它音视频编码格式专门成H264+AAC后,将媒体流封装成TS格式的文件。

S200.当终端收到用户离开房间请求时,对用户进行结束储存;在本实施例中,如图4,S200具体包括:

S201.用户离开房间,后面进入S202;

S202.取消发布本地媒体流,同时进入两个S204和S203;

S203.通知媒体服务器,有用户离开了房间,并取消了媒体发布,并携带媒体相关信息,后面进入S207;

S204.此判断房间内是否存在其它用户,如果存在进入S205,不存在进入S206。

S205.将用户离开房间消息,通知给房间内的其它用户,其它用户收到该消息后会取消该用户的媒体订阅,进入S206;

S206.通话流程结束;

S207.存储服务器VASU有媒体取消了发布,然后进入S208;

S208.存储服务器VASU取消订阅该媒体服务,并释放本地接收媒体端口;

S209.存储子流程结束。

S300.当终端接收到用户录像查询请求时,对查询的录像进行回放。在本实施例中,如图5,S300具体包括:

S301.收到来自客户端的录像查询请求。进入S302;

S302.通过用户ID和流ID查询HLS播放地址,进入S303;

S303.判断录像是否存在,如果存在进入S304,否则进入S306;

S304.返回HLS播放地址,即可播放;

S305.是否需要查看最新通话内容,如果是需要重新进入S302,否则继续播放当前地址;

S306.若录像不存在,返回错误提示信息,播放结束。

本实施例公开的一种基于WebRTC的录像存储和回放的系统和方法,在程序和架构方面提供了综合的解决方案,如果多人会话发生时,各客户端会将媒体流发布至WebRTCServer服务器当中,由服务器集中管理,同一房间内用户即可以相互订阅媒体流,相比较于传统P2P模式,虽然服务器压力增大,但更适用多人通话场景,无需担心客户端的解码压力,也避免媒体流在客户端之间的重复传输。此种方式也可以更加方便的针对通话内容存储和查阅;VASU即实现了录像的存储功能,它会实时从WebRTC服务器中获取媒体流,并转码成TS文件格式,此种存储方式,可以即时查看房间内的通话状态,不必等到通话结束,较于传统存储模式更加即时高效,也更加适合实时通话的存储需求。于此同时VASU可以支持集群部署,当用户量过大时候支持横向拓展系统的并发额能力。本系统优点还在于功能的可拓展性,而不影响现有系统的功能,系统中的MediaServer可以管理各种类型的服务器,包括但不限于VASU,人脸服务,分发服务以及各类视频算法服务器等。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。

结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。

对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:通话方法以及相关设备

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类