掌桥专利:专业的专利平台
掌桥专利
首页

局域网内音视频传输方法、装置、设备及存储介质

文献发布时间:2024-04-18 19:59:31


局域网内音视频传输方法、装置、设备及存储介质

技术领域

本申请涉及机器人通信技术领域,尤其涉及一种局域网内音视频传输方法、装置、设备及存储介质。

背景技术

为克服地域、人员等因素对病患就医的限制,远程问诊得到广泛应用,即在智能平板、机器人等终端设备中应用远程问诊技术,以实现病患与医生的交流。在实际应用中,远程问诊不仅仅适用于地理位置相差大的就医场景中,还被应用于医院中病患与医生不适宜接触的场景,如隔离病房内的病患需要问诊时,其可通过病房中配备的终端设备实现与医生的交流。

在上述的医院场景中,医院为保障病患的数据安全和隐私安全,往往会搭建私有网络环境,即上述的医院场景并不适用通过互联网进行远程问诊的方案,而是需要在局域网内实现远程问诊。

相关技术中,为实现在局域网内的远程问诊,需要在医院的服务器中构建一个私有化的视频服务。例如,采用nginx-rtmp-module等第三方工具以及Nginx服务器进行音视频的处理和推送,实现在web端进行视频播放。但相关技术中所采用的方案在局域网中会有较高延迟,使得远程问诊不能流畅进行。

发明内容

本申请提供了一种局域网内音视频传输方法、装置、设备及存储介质,解决了在局域网中进行远程问诊的延迟较高的问题,本方案能够简便地实现远程问诊,并且延迟低,使得远程问诊能够更流畅地进行。

第一方面,本申请提供一种局域网内音视频传输方法,应用于基于B/S架构构建的远程问诊系统中的终端设备,远程问诊系统包括服务器和至少两个终端设备,每个终端设备的注册信息存储于服务器,方法包括:

基于ffmpeg指令,获取终端设备采集的实时音视频流;

基于预设的mpeg-1数据格式,对实时音视频流进行转码处理,以获取待推送数据流;

根据服务器的服务器地址,基于http协议向服务器发送待推送数据流,以供服务器向目标终端设备推送数据;

响应于服务器的推流操作,接收服务器基于webscoket协议推送的web数据流;

在接收到服务器发送的web数据流的情况下,根据预设的解码方式,对web数据流进行解码并播放解码得到的音视频。

第二方面,本申请还提供一种局域网内音视频传输方法,应用于基于B/S架构构建的远程问诊系统中的服务器,远程问诊系统包括服务器和至少两个终端设备,服务器记录有每个终端设备的注册信息,且服务器配置有http-server服务模块和websocket服务模块,方法包括:

通过http-server服务模块接收终端设备发送的待推送数据流;

通过http-server服务模块将待推送数据流转发至websocket服务模块,以生成符合webscoket协议要求的web数据流;

根据注册信息,在所注册的终端设备中确定目标终端设备,并通过websocket服务模块建立websocket连接;

基于webscoket协议,通过websocket服务模块向目标终端设备推送web数据流。

第三方面,本申请还提供了一种局域网内音视频传输装置,应用于基于B/S架构构建的远程问诊系统中的终端设备,远程问诊系统包括服务器和至少两个终端设备,每个终端设备的注册信息存储于服务器,装置包括:

数据采集模块,配置为基于ffmpeg指令,获取终端设备采集的实时音视频流;

数据转码模块,配置为基于预设的压缩格式,对实时音视频流进行转码处理,以获取待推送数据流;

第一数据推送模块,配置为根据服务器的服务器地址,基于http协议向服务器发送待推送数据流,以供服务器向目标终端设备推送数据;

第一数据接收模块,配置为响应于服务器的推流操作,接收服务器基于webscoket协议推送的web数据流;

数据解码模块,配置为在接收到服务器发送的web数据流的情况下,根据预设的解码方式,对web数据流进行解码并播放解码得到的音视频。

第四方面,本申请还提供了一种局域网内音视频传输装置,应用于基于B/S架构构建的远程问诊系统中的服务器,远程问诊系统包括服务器和至少两个终端设备,服务器记录有每个终端设备的注册信息,且服务器配置有http-server服务模块和websocket服务模块,装置包括:

第二数据接收模块,配置为通过http-server服务模块接收终端设备发送的待推送数据流;

第二数据推送模块,配置为通过http-server服务模块将待推送数据流转发至websocket服务模块,以生成符合webscoket协议要求的web数据流;

连接建立模块,配置为根据注册信息,在所注册的终端设备中确定目标终端设备,并通过websocket服务模块建立websocket连接;

数据转发模块,配置为基于webscoket协议,通过websocket服务模块向目标终端设备推送web数据流。

第五方面,本申请还提供了一种局域网内音视频传输设备,其包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述提供的局域网内音视频传输方法。

第六方面,本申请还提供了一种存储有计算机可执行指令的存储介质,计算机可执行指令在由处理器执行时用于执行如上述提供的局域网内音视频传输方法。

本申请中终端设备拉取实时音视频流并转码为mpeg-1数据格式后推流至服务器中,在发送端减小音视频数据传输的大小,并且通过服务器与目标终端设备建立webscoket连接,从而基于websocket连接的全双工通信方式,降低了数据延迟和数据包丢失的风险,在局域网内实现更低延迟地音视频传输,有助于医生与病患之间能够更顺畅地进行远程问诊。

附图说明

图1为本申请一实施例提供的局域网内音视频传输方法的步骤示意图;

图2为本申请一实施例提供的接收web数据流的步骤示意图;

图3为本申请另一实施例提供的局域网音视频传输方法的步骤示意图;

图4为本申请一实施例提供的局域网内音视频传输装置的结构示意图;

图5为本申请另一实施例提供的局域网内音视频传输装置的结构示意图;

图6为本申请一实施例提供的局域网内音视频传输设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请实施例,而非对本申请实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请实施例相关的部分而非全部结构,本领域技术人员在阅读本申请说明书后,应该能够想到,只要技术特征不互相矛盾,那么技术特征的任意组合均可以构成可选的实施方式。

本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。在本申请的描述中,“多个”表示两个及以上,“若干”表示一个及以上。

医院中搭建有私有网络环境以形成局域网,进而便于不适宜接触的医生与病患通过医院内部的局域网进行远程问诊,以保障病患的数据安全和隐私安全。为此,本申请实施例提供了一种远程问诊系统,远程问诊系统是基于B/S(Browser/Server,浏览器/服务器模式)架构构建的,其包括服务器和至少两个终端设备,且服务器与各终端设备是通过上述搭建的局域网进行通信连接的。此外,各终端设备的注册信息存储于服务器中,如终端设备的设备标识、局域网地址等信息存储在服务器中,以便于服务器与终端设备进行通信。

图1为本申请一实施例提供的局域网内音视频传输方法的步骤示意图,该方法可应用于远程问诊系统中的终端设备,终端设备可以是医生侧的终端设备,也可是病患侧的终端设备。可以想到的是,终端设备上设置有摄像头、麦克风等音视频采集装置以及显示屏以实现远程问诊。该方法的具体步骤如下:

步骤S110、基于ffmpeg指令,获取终端设备采集的实时音视频流。

ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,且在终端设备的操作系统环境中编译运行。进而,终端设备基于ffmpeg指令读取其所采集到的实时音视频流,如根据ffmpeg指令中配置的文件存储地址和拉流方式获取实时音视频流。

步骤S120、基于预设的mpeg-1数据格式,对实时音视频流进行转码处理,以获取待推送数据流。

mpeg-1数据格式是MPEG(Moving Picture Expert Group,运动图像专家组)组织制定的视频和音频有损压缩标准,在获取到实时音视频流后,终端设备对其进行转码处理,以将实时音视频流的格式转换为mpeg-1数据格式。在一些实施例中还可以在拉取实时音视频流的过程中同步进行转码处理,如在ffmpeg指令中配置实时音视频流的输出格式,进而ffmpeg程序进行转码处理,以得到mpeg-1数据格式的待推送数据流。

步骤S130、根据服务器的服务器地址,基于http协议向服务器发送待推送数据流,以供服务器向目标终端设备推送数据。

可以想到的是,服务器地址是指通过IP地址和端口来标识服务器在局域网中的位置。终端设备则基于http协议向服务器发送待推送数据流,以供服务器向目标终端设备推送数据。可以理解的是,对于医生侧的终端设备来说,病患侧的终端设备即为目标终端设备,对于病患侧的终端设备来说,医生侧的终端设备即为目标终端设备,而服务器则作为在局域网中终端设备与目标终端设备之间的中继转发设备。

步骤S140、响应于服务器的推流操作,接收服务器基于webscoket协议推送的web数据流。

步骤S150、在接收到服务器发送的web数据流的情况下,根据预设的解码方式,对web数据流进行解码并播放解码得到的音视频。

可以理解的是,服务器在向终端设备推送数据前,其与终端设备之间需要建立webscoket连接,以便于终端设备接收服务器基于webscoket协议推送的web数据流。终端设备在接收到web数据流后,对web数据流进行解码,以获取相应的视频数据和音频数据,进而进行播放,实现远程问诊。

而且在视频播放中,时间戳是非常重要的一部分,它决定了视频帧的解码和显示顺序。在视频编解码中,存在解码时间戳和显示时间戳。解码时间戳用于确定视频帧应该何时被解码。显示时间戳用于确定视频帧应该何时被显示。通过相应的解码时间戳和显示时间戳,终端设备在播放视频时,可以控制每一帧视频图像的显示时间,以保证视频的播放速度与视频的帧率相匹配,并且也可以保证音频和视频的同步。

在一些实施例中,如图2所示,图2为本申请一实施例提供的接收web数据流的步骤示意图,终端设备在接收到服务器推送的web数据流后,终端设备对数据进行解码进而通过其上设置的web浏览器播放解码得到的音视频,具体步骤如下:

步骤S210、对web数据流进行解析,以提取视频数据和音频数据。

步骤S220、基于Webassembly标准,对web数据流中的视频数据进行解码以获取对应的视频图像。

步骤S230、根据视频图像,对HTML5标准的画布标签进行编辑,以在web浏览器的画布上绘制视频图像。

步骤S240、根据web数据流中的音频数据,对HTML5标准的音频标签进行编辑,以通过web浏览器播放音频。

可以理解的是,终端设备对web数据流进行解析以提取视频数据和音频数据,对于视频数据需要获取相应的视频图像,进而得到视频的各帧画面。Webassembly标准用于将代码编译为Web应用程序对应的格式,以在web服务器中运行。因此,终端设备基于Webassembly标准编译视频数据,以解码得到对应的视频图像。

终端设备需要通过对画布标签以及音频标签进行编辑,以通过web浏览器输出音视频,其中,画布标签和音频标签均为HTML5(HyperText Markup Language 5,第五代超文本标记语言)标准中的HTML标签,并分别对应其中的图像类标签和音视频类标签。

如对于视频图像,终端设备则根据视频图像对画布标签进行编辑,以在服务器的画布上绘制视频图像;而对于音频数据,则对音频标签进行编辑,以读取音频数据并与视频图像进行同步,从而通过web服务器播放音频。

因此,通过将视频图像绘制在web服务器的画布上,终端设备能够实现对视频图像的实时呈现,实现音画同步,并且利用web服务器的画布绘制视频图像,终端设备能够更快更顺畅地展示各帧视频图像,减少输出音视频的耗时,有助于降低局域网内音视频传输的延迟。

由上述方案可知,终端设备通过对实时视频流转码为mpeg-1数据格式,有效地减小音视频数据传输的大小,有助于降低延迟;而终端设备与服务器之间建立的基于websocket连接的全双工通信方式有效地降低了数据延迟和数据包丢失的风险,在局域网内实现更低延迟地音视频传输,有助于医生与病患之间能够更顺畅地进行远程问诊。

在一实施例中,在对画布标签进行编辑的过程中,终端设备创建对应的画布元素,如基于画布标签创建一个画布元素,进而对画布元素的源属性配置视频图像的存储路径,以对视频图像进行加载。在确定加载的视频图像后,终端设备则可对drawImage方法中的各项参数进行定义,

drawImage方法是终端设备上预设置的用于在web浏览器的画布上绘制图像的算法程序,其设置相应的参数用于定义生成的图像的尺寸、位置。例如,根据视频图像的尺寸大小、图像左上角在画布上的坐标,对drawImage方法中的各项参数进行定义,进而在web服务器的画布上渲染出该视频图像。

在一实施例中,在对音频标签进行编辑的过程中,终端设备创建对应的音频对象,如基于音频标签

在视频编辑过程中,终端设备记录有对应的解码时间戳和显示时间戳。进而,终端设备根据所记录的解码时间戳和显示时间戳,对视频数据和音频数据进行同步,以同步播放音频数据和视频图像,实现音画同步。

图3为本申请另一实施例提供的局域网音视频传输方法的步骤示意图,该方法可应用于远程问诊系统中的服务器,服务器配置有http-server服务模块和websocket服务模块,以进行拉流及转发相应的数据,该方法的具体步骤如下:

步骤S310、通过http-server服务模块接收终端设备发送的待推送数据流。

步骤S320、通过http-server服务模块将待推送数据流转发至websocket服务模块,以生成符合webscoket协议要求的web数据流。

步骤S330、根据注册信息,在所注册的终端设备中确定目标终端设备,并通过websocket服务模块建立websocket连接。

步骤S340、基于webscoket协议,通过websocket服务模块向目标终端设备推送web数据流。

可以理解的是,服务器配置有node js环境,http-server服务模块用于对终端设备发送的数据进行接收和推送,websocket服务模块则用于与终端设备通过webscoket连接并向终端设备推送web数据流。服务器通过http-server服务模块获取终端设备发送的待推送数据流,http-server服务模块与终端设备之间基于http协议进行通信,即待推送数据流是http数据流。http-server服务模块在接收到数据流后向websocket服务模块转发。

websocket服务模块根据服务器上存储的注册信息,从注册的终端设备中查找目标终端设备,进而与目标终端设备建立webscoket连接。在建立websocket连接后,服务器与客户端(即目标终端设备)之间进行双向通信,与传统的HTTP请求-响应模型不同,websocket协议允许服务器主动向客户端推送数据,而不需要客户端发起请求,从而能够有效减少音视频传输的延迟。

因此,服务器在与目标终端设备建立webscoket连接后,其基于webscoket协议向目标终端设备推送web数据流,以便于目标终端设备对接收到的数据进行解码,从而播放对应的音视频。服务器通过websocket的全双工通信减少了数据延迟和数据包丢失的风险,有效减少音视频传输的延迟,有助于局域网内的用户之间更顺畅地进行远程问诊。

在一实施例中,待推送数据流中携带目标终端设备的地址信息,服务器通过解析待推送数据流即可确定目标终端设备在局域网中的IP地址,以便于确定该目标终端设备是否已经注册。即服务器通过对比注册信息和目标终端设备的地址信息,从而在注册的终端中查找目标终端设备。

进而,服务器通过webscoket服务模块向目标终端设备发起握手连接,并且服务器还对所发送的连接请求中设置对应webscoket协议的字段信息,以将所发起的是webscoket协议的信息告知目标终端设备。可以想到的是,目标终端设备在收到请求后,可反馈相应的信息,实现在服务器与目标终端设备间建立webscoket连接。

图4为本申请一实施例提供的局域网内音视频传输装置的结构示意图,该装置应用于上述的远程问诊系统的终端设备,该装置用于执行如上述实施例提供的局域网内音视频传输方法,并具备执行方法相应的功能模块和有益效果。如图所示,该装置包括数据采集模块401、数据转码模块402、第一数据推送模块403、第一数据接收模块404和数据解码模块405。

其中,数据采集模块401配置为基于ffmpeg指令,获取终端设备采集的实时音视频流;

数据转码模块402配置为基于预设的压缩格式,对实时音视频流进行转码处理,以获取待推送数据流;

第一数据推送模块403配置为根据服务器的服务器地址,基于http协议向服务器发送待推送数据流,以供服务器向目标终端设备推送数据;

第一数据接收模块404配置为响应于服务器的推流操作,接收服务器基于webscoket协议推送的web数据流;

数据解码模块405配置为在接收到服务器发送的web数据流的情况下,根据预设的解码方式,对web数据流进行解码并播放解码得到的音视频。

在上述实施例的基础上,终端设备设置有web浏览器,web浏览器用于播放解码得到的音视频。数据解码模块405还配置为:

对web数据流进行解析,以提取视频数据和音频数据;

基于Webassembly标准,对web数据流中的视频数据进行解码以获取对应的视频图像;

根据视频图像,对HTML5标准的画布标签进行编辑,以在web浏览器的画布上绘制视频图像;

根据web数据流中的音频数据,对HTML5标准的音频标签进行编辑,以通过web浏览器播放音频。

在上述实施例的基础上,数据解码模块405还配置为:

基于画布标签创建画布元素,并在画布元素的源属性中添加视频图像的存储路径,以加载视频图像;

基于所加载的视频图像,定义预设的drawImage方法中的各项参数,以在画布上输出视频图像。

在上述实施例的基础上,数据解码模块405还配置为:

基于音频标签创建音频元素,在音频标签的源属性中添加音频数据的存储路径,以确定音频来源;

根据解码时间戳和显示时间戳,对视频数据和音频数据进行同步,以同步播放音频数据和视频图像。

图5为本申请另一实施例提供的局域网内音视频传输装置的结构示意图,该装置应用于上述的远程问诊系统的服务器,该装置用于执行如上述实施例提供的局域网内音视频传输方法,并具备执行方法相应的功能模块和有益效果。如图所示,该装置包括第二数据接收模块501、第二数据推送模块502、连接建立模块503和数据转发模块504。

其中,第二数据接收模块501配置为通过http-server服务模块接收终端设备发送的待推送数据流;

第二数据推送模块502配置为通过http-server服务模块将待推送数据流转发至websocket服务模块,以生成符合webscoket协议要求的web数据流;

连接建立模块503配置为根据注册信息,在所注册的终端设备中确定目标终端设备,并通过websocket服务模块建立websocket连接;

数据转发模块504配置为基于webscoket协议,通过websocket服务模块向目标终端设备推送web数据流。

在上述实施例的基础上,待推送数据流中携带有目标终端设备的地址信息。连接建立模块503还配置为:

对比注册信息和目标终端设备的地址信息,以在所注册的终端设备中确定目标终端设备;

在确定目标终端设备后,通过webscoket服务模块向目标终端设备发起握手连接并在发送的连接请求中设置对应webscoket协议的字段信息,以与目标终端设备建立websocket连接。

值得注意的是,上述局域网内音视频传输装置的实施例中,各模块只是按照功能逻辑进行划分的,但并不局限于上述划分,只要能够实现相应的功能即可;另外,各模块的具体名称也只是为了便于互相区分,并不用于限制本申请的保护范围。

图6为本申请一实施例提供的局域网内音视频传输设备的结构示意图,其用于执行如上述实施例提供的局域网内音视频传输方法,并具备执行方法相应的功能模块和有益效果。如图所示,该设备包括处理器601、存储器602、输入装置603和输出装置604。处理器601的数量可以是一个或多个,图中以一个处理器601为例;处理器601、存储器602、输入装置603和输出装置604可以通过总线或其他方式连接,图中以通过总线连接为例。存储器602作为一种计算机可读的存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的局域网内音视频传输方法对应的程序指令/模块。处理器601通过运行存储在存储器602中的软件程序、指令以及模块,从而执行相应的各种功能应用以及数据处理,即实现上述的局域网内音视频传输方法。

存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据使用过程中所记录或创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器602可进一步包括相对于处理器601远程设置的存储器,这些远程设置的存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置603可用于向处理器601输入相应的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入;输出装置604可用于发送或显示与设备的用户设置以及功能控制有关的键信号输出。

本申请实施例还提供一种存储有计算机可执行指令的存储介质,计算机可执行指令在由处理器执行时用于执行本申请任一实施例提供的局域网内音视频传输方法中的相关操作。

计算机可读的存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

技术分类

06120116524040