CN116319707A - 一种监控设备音视频流的分发方法、***、设备和介质 - Google Patents
一种监控设备音视频流的分发方法、***、设备和介质 Download PDFInfo
- Publication number
- CN116319707A CN116319707A CN202310294240.6A CN202310294240A CN116319707A CN 116319707 A CN116319707 A CN 116319707A CN 202310294240 A CN202310294240 A CN 202310294240A CN 116319707 A CN116319707 A CN 116319707A
- Authority
- CN
- China
- Prior art keywords
- stream
- audio
- service
- video stream
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/756—Media network packet handling adapting media to device capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种监控设备音视频流的分发方法、***、设备和介质,方法包括:接收监控设备基于国标协议发送的第一注册命令和各个收流服务基于私有协议发送的第二注册命令,根据第一注册命令完成监控设备的注册,并根据第二注册命令完成各个收流服务的注册;选取负载最少的收流服务作为目标收流服务,并采用实时时钟传输方式从监控设备中拉取RTP封装音视频流以分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务。本发明解决了音视频播放时出现的花屏和卡顿问题。
Description
技术领域
本发明属于音视频流分发技术领域,具体涉及一种监控设备音视频流的分发方法、***、设备和介质。
背景技术
随着视频监控不断地向高清数字化的方向发展,视频的数据量越来越大,对视频处理设备的配置要求也越来越高。目前,处理视频数据的前端设备主要是嵌入式设备,而嵌入式设备的CPU处理性能和内存等资源往往难以满足处理视频数据的要求。因此,在当前嵌入式设备硬件资源有限的情况下,提高其软件的处理效率是提高嵌入式设备处理视频数据性能的有效方法之一。
目前,市面上常规的监控***通过国标协议拉取向监控设备发送取流请求,然后监控设备用rtp(Real-time Transport Protocol,实时传输协议,由IETF的多媒体传输工作小组1996年在RFC 1889中公布)封装音视频流发送给服务端,服务端收到rtp流之后进行拆封音视频流,然后可以把音视频流封装成可以播放的格式,如http-flv格式或hls格式,以便用户可以拉流进行实时观看。然而,由于rtp包是通过udp协议进行发送的,所以当网络状况不好的时候,rtp会乱序或者丢包,但是目前的监控***普遍没有对rtp包进行排序,导致用户观看视频时出现花屏或卡顿的问题。
发明内容
本发明的目的是提供一种监控设备音视频流的分发方法、***、设备和介质,用以解决现有技术中存在的监控***普遍没有对rtp包进行排序,导致用户观看视频时出现花屏或卡顿的技术问题。
为了实现上述目的,本发明采用以下技术方案:
本发明一方面提供一种监控设备音视频流的分发方法,包括:
接收监控设备基于国标协议发送的第一注册命令和各个收流服务基于私有协议发送的第二注册命令,根据第一注册命令完成监控设备的注册,并根据第二注册命令完成各个收流服务的注册;
选取负载最少的收流服务作为目标收流服务,并采用实时时钟传输方式从监控设备中拉取RTP封装音视频流以分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务。
在一种可能的设计中,目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,包括:
目标收流服务采用抖动缓冲器,根据接收到的RTP封装音视频流的头部序号判断RTP封装音视频流是否乱序,若乱序,则按照头部序号对RTP封装音视频流进行重新排序;
对每一RTP封装音视频流进行缓存处理,以便减少RTP封装音视频流的抖动;
将RTP封装音视频流中的音频流和视频流进行剥离,以进行拆装。
在一种可能的设计中,将拆装后的音视频流进行二次封装后推向下一级流媒体服务,包括:
将拆装后的音视频流封装成flv格式标签以生成http-flv流地址、封装成ts切片形式以生成hls拉流地址、封装成rtc流格式以生成rtc流地址或者封装成rtmp流格式以生成rtmp流地址;
将二次封装后的音视频流推向用户播放器终端。
在一种可能的设计中,在选取负载最少的收流服务作为目标收流服务之前,所述方法还包括:
判断各个收流服务的负载是否均已超过预设负载,若是,则接收新的收流服务基于私有协议发送的第二注册命令,以完成新的收流服务的注册,并将新的收流服务作为目标收流服务。
在一种可能的设计中,所述方法还包括:
接收目标收流服务基于私有协议发送的重新请求流指令,并根据重新请求流指令向监控设备发送请求流指令来重新进行推流,其中,当目标收流服务超过预设时间未接收到监控设备的RTP封装音视频流时,将生成所述重新请求流指令。
本发明第二方面提供一种监控设备音视频流的分发装置,包括:
注册模块,用于接收监控设备基于国标协议发送的第一注册命令和各个收流服务基于私有协议发送的第二注册命令,根据第一注册命令完成监控设备的注册,并根据第二注册命令完成各个收流服务的注册;
收流推流模块,用于选取负载最少的收流服务作为目标收流服务,并采用实时时钟传输方式从监控设备中拉取RTP封装音视频流以分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务。
在一种可能的设计中,在目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装时,收流推流模块具体用于:
目标收流服务采用抖动缓冲器,根据接收到的RTP封装音视频流的头部序号判断RTP封装音视频流是否乱序,若乱序,则按照头部序号对RTP封装音视频流进行重新排序;
对每一RTP封装音视频流进行缓存处理,以便减少RTP封装音视频流的抖动;
将RTP封装音视频流中的音频流和视频流进行剥离,以进行拆装。
在一种可能的设计中,在将拆装后的音视频流进行二次封装后推向下一级流媒体服务时,收流推流模块具体用于:
将拆装后的音视频流封装成flv格式标签以生成http-flv流地址、封装成ts切片形式以生成hls拉流地址、封装成rtc流格式以生成rtc流地址或者封装成rtmp流格式以生成rtmp流地址;
将二次封装后的音视频流推向用户播放器终端。
在一种可能的设计中,所述装置还用于:
判断各个收流服务的负载是否均已超过预设负载,若是,则接收新的收流服务基于私有协议发送的第二注册命令,以完成新的收流服务的注册,并将新的收流服务作为目标收流服务。
在一种可能的设计中,所述装置还用于:
接收目标收流服务基于私有协议发送的重新请求流指令,并根据重新请求流指令向监控设备发送请求流指令来重新进行推流,其中,当目标收流服务超过预设时间未接收到监控设备的RTP封装音视频流时,将生成所述重新请求流指令。
本发明第三方面提供一种监控设备音视频流的分发方法,包括:
基于国标协议向信令服务发送第一注册命令以请求完成注册,同时,信令服务接收各个收流服务基于私有协议发送的第二注册命令,并根据第二注册命令完成各收流服务的注册;
接收信令服务的音视频流拉取请求,根据音视频拉取请求向信令服务推送RTP封装音视频流,以便信令服务将RTP封装音视频流分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务,其中,目标收流服务为信令服务选取的负载最少的收流服务。
在一种可能的设计中,目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,包括:
目标收流服务采用抖动缓冲器,根据接收到的RTP封装音视频流的头部序号判断RTP封装音视频流是否乱序,若乱序,则按照头部序号对RTP封装音视频流进行重新排序;
对每一RTP封装音视频流进行缓存处理,以便减少RTP封装音视频流的抖动;
将RTP封装音视频流中的音频流和视频流进行剥离,以进行拆装。
在一种可能的设计中,将拆装后的音视频流进行二次封装后推向下一级流媒体服务,包括:
将拆装后的音视频流封装成flv格式标签以生成http-flv流地址、封装成ts切片形式以生成hls拉流地址、封装成rtc流格式以生成rtc流地址或者封装成rtmp流格式以生成rtmp流地址;
将二次封装后的音视频流推向用户播放器终端。
在一种可能的设计中,在信令服务选取的负载最少的收流服务中作为目标收流服务之前,所述方法还包括:
信令服务判断各个收流服务的负载是否均已超过预设负载,若是,则接收新的收流服务基于私有协议发送的第二注册命令,以完成新的收流服务的注册,并将新的收流服务作为目标收流服务。
在一种可能的设计中,所述方法还包括:
信令服务接收目标收流服务基于私有协议发送的重新请求流指令,并根据重新请求流指令向监控设备发送请求流指令来重新进行推流,其中,当目标收流服务超过预设时间未接收到监控设备的RTP封装音视频流时,将生成所述重新请求流指令。
本发明第四方面提供一种监控设备音视频流的分发装置,包括:
注册请求模块,用于基于国标协议向信令服务发送第一注册命令以请求完成注册,同时,信令服务接收各个收流服务基于私有协议发送的第二注册命令,并根据第二注册命令完成各收流服务的注册;
流拉取请求获取模块,用于接收信令服务的音视频流拉取请求,根据音视频拉取请求向信令服务推送RTP封装音视频流,以便信令服务将RTP封装音视频流分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务,其中,目标收流服务为信令服务选取的负载最少的收流服务。
在一种可能的设计中,在目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装时,具体用于:
目标收流服务采用抖动缓冲器,根据接收到的RTP封装音视频流的头部序号判断RTP封装音视频流是否乱序,若乱序,则按照头部序号对RTP封装音视频流进行重新排序;
对每一RTP封装音视频流进行缓存处理,以便减少RTP封装音视频流的抖动;
将RTP封装音视频流中的音频流和视频流进行剥离,以进行拆装。
在一种可能的设计中,在将拆装后的音视频流进行二次封装后推向下一级流媒体服务时,具体用于:
将拆装后的音视频流封装成flv格式标签以生成http-flv流地址、封装成ts切片形式以生成hls拉流地址、封装成rtc流格式以生成rtc流地址或者封装成rtmp流格式以生成rtmp流地址;
将二次封装后的音视频流推向用户播放器终端。
在一种可能的设计中,在信令服务选取的负载最少的收流服务中作为目标收流服务之前,所述装置还用于:
信令服务判断各个收流服务的负载是否均已超过预设负载,若是,则接收新的收流服务基于私有协议发送的第二注册命令,以完成新的收流服务的注册,并将新的收流服务作为目标收流服务。
在一种可能的设计中,所述装置还用于:
信令服务接收目标收流服务基于私有协议发送的重新请求流指令,并根据重新请求流指令向监控设备发送请求流指令来重新进行推流,其中,当目标收流服务超过预设时间未接收到监控设备的RTP封装音视频流时,将生成所述重新请求流指令。
本发明第五方面提供一种监控设备音视频流的分发***,包括多个监控设备和至少一台服务器,多个监控设备分别与至少一台服务器通信连接,所述至少一台服务器上部署有信令服务、收流服务和流媒体服务,所述多个监控设备用于执行如第三方面任意一种可能的设计中所述的监控设备音视频流的分发方法,所述至少一台服务器用于执行如第一方面任意一种可能的设计中所述的监控设备音视频流的分发方法;
其中,信令服务要在配置文件中指定接收监控设备消息的端口以及接收收流服务消息的端口,收流服务要在配置文件中配置自身的外网IP、接收流媒体的端口以及流媒体接收推流的地址,流媒体服务需要配置接收推流的端口,监控设备需要配置信令服务的外网地址以进行注册和音视频流消息的交互。
第六方面,本发明提供一种计算机设备,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面任意一种可能的设计中所述的监控设备音视频流的分发方法。
第七方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面任意一种可能的设计中所述的相监控设备音视频流的分发方法。
第八方面,本发明提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面任意一种可能的设计中所述的监控设备音视频流的分发方法。
本发明相较于现有技术的有益效果为:
1.本发明通过接收监控设备基于国标协议发送的第一注册命令和各个收流服务基于私有协议发送的第二注册命令,根据第一注册命令完成监控设备的注册,并根据第二注册命令完成各个收流服务的注册;通过选取负载最少的收流服务作为目标收流服务,并采用实时时钟传输方式从监控设备中拉取RTP封装音视频流以分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务,从而解决了音视频播放时出现的花屏和卡顿问题。
2.本发明的信令服务和收流服务之间基于私有协议进行信息传输,可以实现收流服务的实时扩展,有效地应对了大量监控设备推流的问题。
3.本发明基于收流服务实时检测监控设备是否中断推流,然后向信令服务请求重新推流,可以让用户端基本无法感知到监控设备是否断流,提高用户体验。
4.本发明通过增加rtc拉流方式,让用户以极低的延迟观看音视频流,极大地提升了观看体验。
附图说明
图1为本申请实施例中的监控设备音视频流的分发方法的流程图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图和实施例或现有技术的描述对本发明作简单地介绍,显而易见地,下面关于附图结构的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。
实施例
为了解决现有技术中存在的监控***普遍没有对rtp包进行排序,导致用户观看视频时出现花屏或卡顿的技术问题。本发明的目的是提供一种监控设备音视频流的分发方法,该方法采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务,从而解决了音视频播放时出现的花屏和卡顿问题。
下面将对本申请实施例提供的监控设备音视频流的分发方法进行详细说明。
其中,需要说明的是,本申请实施例提供的监控设备音视频流的分发方法可应用于任意使用操作***的终端设备,其中,操作***包括但不限于Windows***、Mac***、Linux***、Chrome OS***、UNIX操作***、IOS***和安卓***等,此处不做限定;其中,终端设备包括但不限于IPAD平板电脑、个人移动电脑、工业计算机、个人计算机等,此处不做限定。为便于描述,除特别说明外,本申请实施例均以工业计算机为执行主体进行说明。可以理解,所述执行主体并不构成对本申请实施例的限定,在其他的一些实施例中可以采用其他类型的终端设备作为执行主体。
如图1所示,是本申请实施例提供的监控设备音视频流的分发方法的流程图,所述监控设备音视频流的分发方法包括但不限于由步骤S1~S2实现:
步骤S1.接收监控设备基于国标协议发送的第一注册命令和各个收流服务基于私有协议发送的第二注册命令,根据第一注册命令完成监控设备的注册,并根据第二注册命令完成各个收流服务的注册;
其中,需要说明的是,本申请实施例的执行主体为后台服务器上部署的信令服务,即通过信令服务接收注册命令,优选的,监控设备采用各种型号的高清摄像头,高清摄像头基于国标协议UDP(User Datagram Protocol,用户数据报协议)与信令服务进行信息传输;各收流服务基于私有定制协议与信令服务进行信息传输,其中,私有协议定义了包括注册、保持心跳、重新推流、收流、取消流等多种消息,例如:注册消息可以通过字段Method(表示哪一种消息)、Direction(表示消息的方向)、From(表示发送者)、To(表示接收者)、Expires(表示消息的过期时间)、Call_id(表示此次对话的id)、Identification(表示发送者的身份信息)、recv_rtp_public_ip(表示收流服务的公网I)、recv_rtp_port(表示收流服务的暴露的端口)、keepalive_timeout(表示心跳超时时间)、best_push_stream_nums(表示最好的推流路数)、max_push_stream_nums(表示最大的推流路数)等实现收流服务在信令服务上的注册;当然,可以理解的是,其他消息例如保持心跳、重新推流、收流、取消流等同样可以通过在私有协议中预先定义字段来实现信令服务与收流服务之间的信息传输,此处不再赘述。
其中,需要说明的是,本申请实施例中的监控设备和收流服务通过周期性向信令服务发送心跳包的方式来和信令服务保持心跳,当信令服务在预设周期内未接收到监控设备和/或收流服务的心跳包时,可判定与监控设备和/或收流服务的通信存在异常,需进一步对异常情况进行检测,以保持监控设备和收流服务分别与信令服务的正常通信。
步骤S2.选取负载最少的收流服务作为目标收流服务,并采用实时时钟传输方式从监控设备中拉取RTP封装音视频流以分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务。
其中,需要说明的是,信令服务会记录每一收流服务接收的监控设备的音视频流的路数,当接收到新的音视频流时,通过选择负载最少的收流服务中作为目标收流服务对新的音视频流进行接收,能够使得各收流服务的负载达到均衡状态;具体的,当新的音视频到来时,信令服务向目标收流服务发送STREAM(流)指令来通知收流服务即将有一路监控设备音视频流到来,然后信令服务向监控设备发送INVITE(邀请)指令来拉取音视频流,以实现拉流。
在步骤S2一种可能的设计中,目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,包括:
目标收流服务采用抖动缓冲器,根据接收到的RTP封装音视频流的头部序号判断RTP封装音视频流是否乱序,若乱序,则按照头部序号对RTP封装音视频流进行重新排序;
对每一RTP封装音视频流进行缓存处理,以便减少RTP封装音视频流的抖动;
将RTP封装音视频流中的音频流和视频流进行剥离,以进行拆装。
具体的,收流服务采用jitterBuffer抖动缓冲器对到来的Rtp协议包进行重新排序和抖动的处理,由于udp协议传输是不可靠传输,因此会导致rtp协议包存在乱序的情况,对RTP协议包进行重新排序的原理是根据rtp协议包头部的序号判断协议包是否乱序,若存在乱序,则对各RTP协议包进行重新排序,然后再将排序后的rtp协议包交给下一级处理,而在经过排序处理之后,有效地改善了播放花屏的问题。此外,由于网络可能出现的抖动,会导致两个rtp包的发送时间间隔和接收时间间隔出现较大的差别,进而导致音视频播放不够流畅,通过采用jitterbuffer抖动缓冲器对接收的每个rtp协议包进行缓存,从而有效减少rtp协议包的抖动,进而使得视频播放更加流畅。
在步骤S2一种可能的设计中,将拆装后的音视频流进行二次封装后推向下一级流媒体服务,包括:
将拆装后的音视频流封装成flv格式标签以生成http-flv流地址、封装成ts切片形式以生成hls拉流地址、封装成rtc流格式以生成rtc流地址或者封装成rtmp流格式以生成rtmp流地址;将二次封装后的音视频流推向用户播放器终端。
其中,需要说明的是,由于传统的拉流方式是基于TCP进行流的传输进行拉流播放,比如hls拉流方式,是把音视频包封装成ts切片的方式,然后以http的方式返回给播放器进行播放,这样的延迟可能在1-2秒之内。本申请实施例以实时时钟传输RTC的方式进行拉流传输,其中,RTC是基于udp传输方式,通过SDP(Session Description Protocol,会话描述协议)协商以及DTLS(Datagram Transport Layer Security,即数据包传输层安全性协议)握手之后进行传输,通过该方式拉流的延迟可以降低到200ms左右,从而极大地提升了用户的观看体验。
在步骤S2一种可能的设计中,在选取负载最少的收流服务作为目标收流服务之前,所述方法还包括:
判断各个收流服务的负载是否均已超过预设负载,若是,则接收新的收流服务基于私有协议发送的第二注册命令,以完成新的收流服务的注册,并将新的收流服务作为目标收流服务。
其中,需要说明的是,通过将后台服务拆成信令服务和收流服务,信令和收流服务之间实现了私有协议进行通信,当摄像头有新的音视频流需要推流时,信令服务会选择一个负载小的收流服务进行收流,实现了负载均衡;而当目前的收流服务办法应对大量的摄像头推流请求时,可以实时的加入新的收流服务,新的收流服务会向信令服务注册,然后信令服务会给收流服务分发摄像头的流,就做到了实时的扩展。
在一种可能的设计中,所述方法还包括:
接收目标收流服务基于私有协议发送的重新请求流指令,并根据重新请求流指令向监控设备发送请求流指令来重新进行推流,其中,当目标收流服务超过预设时间未接收到监控设备的RTP封装音视频流时,将生成所述重新请求流指令。
具体的,当收流服务在预设周期内,例如30秒内,接收不到摄像头推来的流时,收流服务会通过收流服务和信令服务之间的私有协议,向信令服务发送REINVITE指令来重新请求流,信令服务接收到收流服务发来的指令便会重新向摄像头发送INVITE指令来重新推流,从而实现摄像头断流之后的迅速恢复。
基于上述公开的内容,本申请实施例通过接收监控设备基于国标协议发送的第一注册命令和各个收流服务基于私有协议发送的第二注册命令,根据第一注册命令完成监控设备的注册,并根据第二注册命令完成各个收流服务的注册;通过选取负载最少的收流服务作为目标收流服务,并采用实时时钟传输方式从监控设备中拉取RTP封装音视频流以分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务,从而解决了音视频播放时出现的花屏和卡顿问题。本申请实施例的信令服务和收流服务之间基于私有协议进行信息传输,可以实现收流服务的实时扩展,有效地应对了大量监控设备推流的问题。本申请实施例基于收流服务实时检测监控设备是否中断推流,然后向信令服务请求重新推流,可以让用户端基本无法感知到监控设备是否断流,提高用户体验。本申请实施例明通过增加rtc拉流方式,让用户以极低的延迟观看音视频流,极大地提升了观看体验。
本发明第二方面提供一种监控设备音视频流的分发装置,包括:
注册模块,用于接收监控设备基于国标协议发送的第一注册命令和各个收流服务基于私有协议发送的第二注册命令,根据第一注册命令完成监控设备的注册,并根据第二注册命令完成各个收流服务的注册;
收流推流模块,用于选取负载最少的收流服务作为目标收流服务,并采用实时时钟传输方式从监控设备中拉取RTP封装音视频流以分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务。
在一种可能的设计中,在目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装时,收流推流模块具体用于:
目标收流服务采用抖动缓冲器,根据接收到的RTP封装音视频流的头部序号判断RTP封装音视频流是否乱序,若乱序,则按照头部序号对RTP封装音视频流进行重新排序;
对每一RTP封装音视频流进行缓存处理,以便减少RTP封装音视频流的抖动;
将RTP封装音视频流中的音频流和视频流进行剥离,以进行拆装。
在一种可能的设计中,在将拆装后的音视频流进行二次封装后推向下一级流媒体服务时,收流推流模块具体用于:
将拆装后的音视频流封装成flv格式标签以生成http-flv流地址、封装成ts切片形式以生成hls拉流地址、封装成rtc流格式以生成rtc流地址或者封装成rtmp流格式以生成rtmp流地址;
将二次封装后的音视频流推向用户播放器终端。
在一种可能的设计中,所述装置还用于:
判断各个收流服务的负载是否均已超过预设负载,若是,则接收新的收流服务基于私有协议发送的第二注册命令,以完成新的收流服务的注册,并将新的收流服务作为目标收流服务。
在一种可能的设计中,所述装置还用于:
接收目标收流服务基于私有协议发送的重新请求流指令,并根据重新请求流指令向监控设备发送请求流指令来重新进行推流,其中,当目标收流服务超过预设时间未接收到监控设备的RTP封装音视频流时,将生成所述重新请求流指令。
本发明第三方面提供一种监控设备音视频流的分发方法,包括:
基于国标协议向信令服务发送第一注册命令以请求完成注册,同时,信令服务接收各个收流服务基于私有协议发送的第二注册命令,并根据第二注册命令完成各收流服务的注册;
接收信令服务的音视频流拉取请求,根据音视频拉取请求向信令服务推送RTP封装音视频流,以便信令服务将RTP封装音视频流分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务,其中,目标收流服务为信令服务选取的负载最少的收流服务。
在一种可能的设计中,目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,包括:
目标收流服务采用抖动缓冲器,根据接收到的RTP封装音视频流的头部序号判断RTP封装音视频流是否乱序,若乱序,则按照头部序号对RTP封装音视频流进行重新排序;
对每一RTP封装音视频流进行缓存处理,以便减少RTP封装音视频流的抖动;
将RTP封装音视频流中的音频流和视频流进行剥离,以进行拆装。
在一种可能的设计中,将拆装后的音视频流进行二次封装后推向下一级流媒体服务,包括:
将拆装后的音视频流封装成flv格式标签以生成http-flv流地址、封装成ts切片形式以生成hls拉流地址、封装成rtc流格式以生成rtc流地址或者封装成rtmp流格式以生成rtmp流地址;
将二次封装后的音视频流推向用户播放器终端。
在一种可能的设计中,在信令服务选取的负载最少的收流服务中作为目标收流服务之前,所述方法还包括:
信令服务判断各个收流服务的负载是否均已超过预设负载,若是,则接收新的收流服务基于私有协议发送的第二注册命令,以完成新的收流服务的注册,并将新的收流服务作为目标收流服务。
在一种可能的设计中,所述方法还包括:
信令服务接收目标收流服务基于私有协议发送的重新请求流指令,并根据重新请求流指令向监控设备发送请求流指令来重新进行推流,其中,当目标收流服务超过预设时间未接收到监控设备的RTP封装音视频流时,将生成所述重新请求流指令。
本发明第四方面提供一种监控设备音视频流的分发装置,包括:
注册请求模块,用于基于国标协议向信令服务发送第一注册命令以请求完成注册,同时,信令服务接收各个收流服务基于私有协议发送的第二注册命令,并根据第二注册命令完成各收流服务的注册;
流拉取请求获取模块,用于接收信令服务的音视频流拉取请求,根据音视频拉取请求向信令服务推送RTP封装音视频流,以便信令服务将RTP封装音视频流分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务,其中,目标收流服务为信令服务选取的负载最少的收流服务。
在一种可能的设计中,在目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装时,具体用于:
目标收流服务采用抖动缓冲器,根据接收到的RTP封装音视频流的头部序号判断RTP封装音视频流是否乱序,若乱序,则按照头部序号对RTP封装音视频流进行重新排序;
对每一RTP封装音视频流进行缓存处理,以便减少RTP封装音视频流的抖动;
将RTP封装音视频流中的音频流和视频流进行剥离,以进行拆装。
在一种可能的设计中,在将拆装后的音视频流进行二次封装后推向下一级流媒体服务时,具体用于:
将拆装后的音视频流封装成flv格式标签以生成http-flv流地址、封装成ts切片形式以生成hls拉流地址、封装成rtc流格式以生成rtc流地址或者封装成rtmp流格式以生成rtmp流地址;
将二次封装后的音视频流推向用户播放器终端。
在一种可能的设计中,在信令服务选取的负载最少的收流服务中作为目标收流服务之前,所述装置还用于:
信令服务判断各个收流服务的负载是否均已超过预设负载,若是,则接收新的收流服务基于私有协议发送的第二注册命令,以完成新的收流服务的注册,并将新的收流服务作为目标收流服务。
在一种可能的设计中,所述装置还用于:
信令服务接收目标收流服务基于私有协议发送的重新请求流指令,并根据重新请求流指令向监控设备发送请求流指令来重新进行推流,其中,当目标收流服务超过预设时间未接收到监控设备的RTP封装音视频流时,将生成所述重新请求流指令。
本发明第五方面提供一种监控设备音视频流的分发***,包括多个监控设备和至少一台服务器,多个监控设备分别与至少一台服务器通信连接,所述至少一台服务器上部署有信令服务、收流服务和流媒体服务,所述多个监控设备用于执行如第三方面任意一种可能的设计中所述的监控设备音视频流的分发方法,所述至少一台服务器用于执行如第一方面任意一种可能的设计中所述的监控设备音视频流的分发方法;
其中,信令服务要在配置文件中指定接收监控设备消息的端口以及接收收流服务消息的端口,收流服务要在配置文件中配置自身的外网IP、接收流媒体的端口以及流媒体接收推流的地址,流媒体服务需要配置接收推流的端口,监控设备需要配置信令服务的外网地址以进行注册和音视频流消息的交互。
第六方面,本发明提供一种计算机设备,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面任意一种可能的设计中所述的监控设备音视频流的分发方法。
具体举例的,所述存储器可以但不限于包括随机存取存储器(Random-AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存(Flash Memory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(First Input Last Output,FILO)等等;所述处理器可以不限于采用型号为STM32F105系列的微处理器;所述收发器可以但不限于为WiFi(无线保真)无线收发器、蓝牙无线收发器、GPRS(General Packet RadioService,通用分组无线服务技术)无线收发器和/或ZigBee(紫蜂协议,基于IEEE802.15.4标准的低功耗局域网协议)无线收发器等。此外,所述计算机设备还可以但不限于包括有电源模块、显示屏和其它必要的部件。
本实施例第六方面提供的前述计算机设备的工作过程、工作细节和技术效果,可以参见如上第一方面或第一方面中任意一种可能设计所述的方法,于此不再赘述。
第七方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面任意一种可能的设计中所述的相监控设备音视频流的分发方法。
其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
本实施例第七方面提供的前述计算机可读存储介质的工作过程、工作细节和技术效果,可以参见如上第一方面或第一方面中任意一种可能设计所述的方法,于此不再赘述。
第八方面,本发明提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面任意一种可能的设计中所述的监控设备音视频流的分发方法。
本实施例第八方面提供的前述包含指令的计算机程序产品的工作过程、工作细节和技术效果,可以参见如上第一方面或第一方面中任意一种可能设计所述的方法,于此不再赘述。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种监控设备音视频流的分发方法,其特征在于,包括:
接收监控设备基于国标协议发送的第一注册命令和各个收流服务基于私有协议发送的第二注册命令,根据第一注册命令完成监控设备的注册,并根据第二注册命令完成各个收流服务的注册;
选取负载最少的收流服务作为目标收流服务,并采用实时时钟传输方式从监控设备中拉取RTP封装音视频流以分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务。
2.根据权利要求1所述的监控设备音视频流的分发方法,其特征在于,目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,包括:
目标收流服务采用抖动缓冲器,根据接收到的RTP封装音视频流的头部序号判断RTP封装音视频流是否乱序,若乱序,则按照头部序号对RTP封装音视频流进行重新排序;
对每一RTP封装音视频流进行缓存处理,以便减少RTP封装音视频流的抖动;
将RTP封装音视频流中的音频流和视频流进行剥离,以进行拆装。
3.根据权利要求1所述的监控设备音视频流的分发方法,其特征在于,将拆装后的音视频流进行二次封装后推向下一级流媒体服务,包括:
将拆装后的音视频流封装成flv格式标签以生成http-flv流地址、封装成ts切片形式以生成hls拉流地址、封装成rtc流格式以生成rtc流地址或者封装成rtmp流格式以生成rtmp流地址;
将二次封装后的音视频流推向用户播放器终端。
4.根据权利要求1所述的监控设备音视频流的分发方法,其特征在于,在选取负载最少的收流服务作为目标收流服务之前,所述方法还包括:
判断各个收流服务的负载是否均已超过预设负载,若是,则接收新的收流服务基于私有协议发送的第二注册命令,以完成新的收流服务的注册,并将新的收流服务作为目标收流服务。
5.根据权利要求1所述的监控设备音视频流的分发方法,其特征在于,所述方法还包括:
接收目标收流服务基于私有协议发送的重新请求流指令,并根据重新请求流指令向监控设备发送请求流指令来重新进行推流,其中,当目标收流服务超过预设时间未接收到监控设备的RTP封装音视频流时,将生成所述重新请求流指令。
6.一种监控设备音视频流的分发方法,其特征在于,包括:
基于国标协议向信令服务发送第一注册命令以请求完成注册,同时,信令服务接收各个收流服务基于私有协议发送的第二注册命令,并根据第二注册命令完成各收流服务的注册;
接收信令服务的音视频流拉取请求,根据音视频拉取请求向信令服务推送RTP封装音视频流,以便信令服务将RTP封装音视频流分发至目标收流服务,以便目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,并将拆装后的音视频流进行二次封装后推向下一级流媒体服务,其中,目标收流服务为信令服务选取的负载最少的收流服务。
7.根据权利要求6所述的监控设备音视频流的分发方法,其特征在于,目标收流服务采用抖动缓冲器对接收到的RTP封装音视频流进行重新排序、抖动处理和拆装,包括:
目标收流服务采用抖动缓冲器,根据接收到的RTP封装音视频流的头部序号判断RTP封装音视频流是否乱序,若乱序,则按照头部序号对RTP封装音视频流进行重新排序;
对每一RTP封装音视频流进行缓存处理,以便减少RTP封装音视频流的抖动;
将RTP封装音视频流中的音频流和视频流进行剥离,以进行拆装。
8.一种监控设备音视频流的分发***,其特征在于,包括多个监控设备和至少一台服务器,多个监控设备分别与至少一台服务器通信连接,所述至少一台服务器上部署有信令服务、收流服务和流媒体服务,所述多个监控设备用于执行如权利要求6或7所述的监控设备音视频流的分发方法,所述至少一台服务器用于执行如权利要求1-5任意一项所述的监控设备音视频流的分发方法;
其中,信令服务要在配置文件中指定接收监控设备消息的端口以及接收收流服务消息的端口,收流服务要在配置文件中配置自身的外网IP、接收流媒体的端口以及流媒体接收推流的地址,流媒体服务需要配置接收推流的端口,监控设备需要配置信令服务的外网地址以进行注册和音视频流消息的交互。
9.一种计算机设备,其特征在于,包括依次相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如权利要求1~7任意一项所述的监控设备音视频流的分发方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1~7任意一项所述的监控设备音视频流的分发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310294240.6A CN116319707A (zh) | 2023-03-23 | 2023-03-23 | 一种监控设备音视频流的分发方法、***、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310294240.6A CN116319707A (zh) | 2023-03-23 | 2023-03-23 | 一种监控设备音视频流的分发方法、***、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116319707A true CN116319707A (zh) | 2023-06-23 |
Family
ID=86779546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310294240.6A Pending CN116319707A (zh) | 2023-03-23 | 2023-03-23 | 一种监控设备音视频流的分发方法、***、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116319707A (zh) |
-
2023
- 2023-03-23 CN CN202310294240.6A patent/CN116319707A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109996097B (zh) | 一种投屏方法、***及存储装置 | |
CN111246284B (zh) | 视频流播放方法、***、终端及存储介质 | |
US8090241B2 (en) | System and method for simultaneous network recording and playback of digital television programs | |
US20130346562A1 (en) | Data transmission method and apparatus for mobile terminal | |
CN105493457B (zh) | 基于传输控制协议(tcp)的视频流传输方法及设备 | |
JP6516767B2 (ja) | Mmtpデカプセル化バッファのシグナリング及び動作 | |
US9621617B2 (en) | Method and server for sending a data stream to a client and method and client for receiving a data stream from a server | |
TWI513258B (zh) | 交織音頻和視頻資料包 | |
CN113395606A (zh) | Url投屏方法和装置 | |
CN103929681A (zh) | 一种提升低速网络中rtp视频流处理效率的方法 | |
CN101854286A (zh) | 基于用户数据报协议的数据流发送、接收方法及装置 | |
RU2012112435A (ru) | Способы запроса выделения полосы пропускания | |
WO2019129125A1 (zh) | 智能眼镜与智能设备交互的方法、***及存储介质 | |
WO2023217188A1 (zh) | 一种直播数据传输方法、装置、***、设备和介质 | |
US11271711B2 (en) | Communication control device, communication control method, network switch, route control method, and communication system | |
CN116319707A (zh) | 一种监控设备音视频流的分发方法、***、设备和介质 | |
CN106790576A (zh) | 一种互动桌面同步方法 | |
CN103716589A (zh) | 一种减少nvr实况转发延时的方法和装置 | |
CN114710568B (zh) | 音视频数据通信方法、设备及存储介质 | |
US20220030300A1 (en) | Quick streaming reconnect by preserving streaming context on app exit | |
WO2005006760A1 (en) | Method and system for uneven distribution of data | |
US20240165508A1 (en) | Method, apparatuses and systems directed to quality of experience improvement in cloud gaming | |
Park et al. | Short-term reliable protocol for low latency video transmission | |
KR101883554B1 (ko) | Mmt-기반 방송을 위한 시그널 메시지 송출 스케줄링 방법 | |
US11937279B2 (en) | Systems, devices, and methods related to configuring a multi-stream network with a messaging schedule |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |