CN110572708A - 一种高性能接收rtp复用流的方法 - Google Patents

一种高性能接收rtp复用流的方法 Download PDF

Info

Publication number
CN110572708A
CN110572708A CN201910869844.2A CN201910869844A CN110572708A CN 110572708 A CN110572708 A CN 110572708A CN 201910869844 A CN201910869844 A CN 201910869844A CN 110572708 A CN110572708 A CN 110572708A
Authority
CN
China
Prior art keywords
multiplexing
rtp
message
media
stream
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
Application number
CN201910869844.2A
Other languages
English (en)
Inventor
程家明
王军明
孔繁东
周志祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WUHAN XINGTU XINKE ELECTRONIC CO Ltd
Original Assignee
WUHAN XINGTU XINKE ELECTRONIC CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WUHAN XINGTU XINKE ELECTRONIC CO Ltd filed Critical WUHAN XINGTU XINKE ELECTRONIC CO Ltd
Priority to CN201910869844.2A priority Critical patent/CN110572708A/zh
Publication of CN110572708A publication Critical patent/CN110572708A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4385Multiplex stream processing, e.g. multiplex stream decrypting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level

Abstract

本发明公开了一种高性能接收RTP复用流的方法,客户端发起媒体协商,确定接收端的媒体复用端口和媒体流路数,以及每一路媒体流对应的复用ID;协商完成后,客户端开始监听复用端口,准备接收媒体流的UDP报文;接收到媒体流的UDP报文后,从中提取出复用ID和RTP报文;通过负载均衡找出与复用ID关联的任务队列,将复用ID和RTP报文封装成任务投递到与复用ID关联的任务队列中;工作线程从对应的任务队列中取出任务,对任务中的RTP报文进行处理,将其还原成媒体流,至此,成功的将不同会话的媒体流通过负载均衡分配到不同的线程进行处理,本发明利用多线程技术同时处理不同媒体流,最大化系统负载能力,保证系统性能。

Description

一种高性能接收RTP复用流的方法
技术领域
本发明涉及网络通信领域,更具体地说,涉及一种高性能网络媒体数据接收方法。
背景技术
视频指挥,视频会议等业务中需要使用流媒体服务器进行媒体流的转发传输,出于实时性考虑,一般采用RTP协议,需要占用网络通信端口,实际应用场景中,为了节省端口的使用,往往需要采用端口复用的方式,即按照Rec.ITU-T H.460.19规范,在UDP包头和RTP包头之间插入复用ID来区分不同的媒体流(如图2),从而达到共用一个UDP端口的目的。
而当服务器接收的媒体流路数较多时,很容易出现性能瓶颈,导致服务器崩溃,断流等故障;CN104836811A描述了如何对RTP进行端口复用,但是并没有描述如何同时接收多个RTP复用流的情况,也没有考虑性能问题。
本发明是鉴于上述问题而做出的,其目的在于,提出一种高性能接收RTP复用流的方法,保证在高并发、高吞吐量场景下能够正常的接收RTP复用流。
发明内容
有鉴于此,本发明实施例提供了一种在高并发、高吞吐量场景下能够正常的接收RTP复用流的方法。
本发明提供了一种高性能接收RTP复用流的方法,包括以下步骤:
一种高性能接收RTP复用流的方法,针对高并发复用端口接收RTP流的场景,其特征在于,包括以下步骤:
步骤1:客户端向服务端发起媒体协商,确定接收端的媒体复用端口和媒体流路数,以及每一路媒体流对应的复用ID;
步骤2:协商完成后,客户端开始监听媒体复用端口,准备接收服务端打包发送的媒体流的UDP报文即复用流;
步骤3:客户端接收到媒体流的UDP报文后,从中提取出复用ID和RTP报文;
步骤4:客户端通过负载均衡找出与复用ID关联的任务队列,将复用ID和RTP报文封装成任务投递到与复用ID关联的任务队列中,一个任务队列绑定一个固定的工作线程;
步骤5:工作线程从对应的任务队列中取出步骤4投递的任务,并对任务中的RTP报文进行处理,将RTP报文还原成媒体流,至此,成功的将不同会话的媒体流通过负载均衡分配到不同的线程进行处理。
进一步地,所述步骤1中,媒体协商的方法为:媒体协商可以通过RTSP、SIP及私有协议进行。
进一步地,所述步骤2中,UDP报文指的是:经过第一步协商成功后,服务端首先将媒体流打包成RTP报文,再将RTP报文、复用ID打包成复用RTP报文,最后将复用RTP报文和复用端口信息打包成UDP报文。
进一步地,所述步骤3中,接收UDP报文的方法为:采用单线程的方式从复用端口读取媒体流对应的UDP报文。
进一步地,所述步骤3中,提取出复用ID和RTP报文的方法是:先从UDP报文里面提取出复用RTP报文,然后再从复用RTP报文中提取到复用ID和RTP报文。
进一步地,所述步骤5中,将RTP报文还原成媒体流的方法:取出的任务信息里面包含了复用ID和RTP报文,根据媒体流的实际打包情况对RTP报文进行RTP包头解析,如果有加密的话进行SRTP解密,得到RTP包头字段和负载数据即媒体数据。
与现有技术相比,本发明具有以下有益效果:
(1)同一路媒体流始终绑定到同一个线程进行处理,避免了RTP报文乱序;
(2)通过负载均衡将不同的媒体流根据复用ID绑定到不同线程,利用多线程技术同时处理不同媒体流,最大化系统负载能力,保证系统性能。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是一种高性能接收RTP复用流的方法的实施步骤图;
图2是按照Rec.ITU-T H.460.19规范,实现端口复用图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
步骤1:客户端向服务端发起媒体协商,确定接收端的媒体复用端口和媒体流路数,以及每一路媒体流对应的复用ID;
本发明中,媒体协商可以通过RTSP,SIP或者私有协议进行,客户端通过协商告知服务端媒体流的复用端口、复用ID等信息。协商成功后,服务端首先将媒体流打包成RTP报文,再将RTP报文、复用ID打包成复用RTP报文,最后将复用RTP报文和复用端口信息打包成UDP报文发送给客户端,出于实时性考虑,传输层一般采用UDP协议。
步骤2:协商完成后,客户端开始监听媒体复用端口,准备接收服务端打包发送的媒体流的UDP报文即复用流;
步骤3:客户端接收到媒体流的UDP报文后,从中提取出复用ID和RTP报文;
本发明中,为了避免线程之间不同步引起的乱序,所以采用单线程的方式从复用端口读取媒体流对应的UDP报文,根据图2所示,UDP负载的前4个字节即为复用ID,4个字节的复用ID后面为完整的RTP报文;提取出复用ID和RTP报文是先从UDP报文里面提取出复用RTP报文,然后再从复用RTP报文中提取到复用ID和RTP报文。
步骤4:客户端通过负载均衡找出与复用ID关联的任务队列,将复用ID和RTP报文封装成任务投递到任务队列中,一个任务队列绑定一个固定的工作线程;
负载均衡采用轮询策略,任务队列的个数与工作线程的个数一一对应,而工作线程的个数出于性能最优化考虑,一般设置为等于系统的CPU核心数。比如系统CPU核数为4,客户端需要同时接收8路媒体流A1,A2,...,A8,复用ID分别为M1,M2,...,M8,则程序启动后会创建4个线程T1,T2,T3,T4,并创建与之对应的4个任务队列Q1,Q2,Q3,Q4。根据负载均衡的轮询策略,则会将媒体流A1,A2分配到Q1,A3,A4分配到Q2,A5,A6分配到Q3,A7,A8分配到Q4,线程T1处理Q1,T2处理Q2,T3处理Q3,T4处理Q4。
步骤5:工作线程从对应的任务队列中取出步骤4投递的任务,并对任务中的RTP报文进行处理,将RTP报文还原成媒体流。
取出的任务信息里面包含了复用ID和RTP报文,根据媒体流的实际打包情况进行RTP包头解析,SRTP解密(如果有加密的话),得到RTP包头字段及负载数据(即媒体数据)。
至此,成功的将不同会话的媒体流通过负载均衡分配到不同的线程进行处理,利用多线程技术提高CPU的利用率,提升系统性能。
在不冲突的情况下,本文中上述实施例及实施例中的特征可以相互结合。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种高性能接收RTP复用流的方法,针对高并发复用端口接收RTP流的场景,其特征在于,包括以下步骤:
步骤1:客户端向服务端发起媒体协商,确定客户端的媒体复用端口和媒体流路数,以及每一路媒体流对应的复用ID;
步骤2:协商完成后,客户端开始监听媒体复用端口,准备接收服务端打包发送的媒体流的UDP报文即复用流;
步骤3:客户端接收到媒体流的UDP报文后,从中提取出复用ID和RTP报文;
步骤4:客户端通过负载均衡找出与复用ID关联的任务队列,将复用ID和RTP报文封装成任务投递到与复用ID关联的任务队列中,一个任务队列绑定一个固定的工作线程;
步骤5:工作线程从对应的任务队列中取出步骤4投递的任务,并对任务中的RTP报文进行处理,将RTP报文还原成媒体流,至此,成功的将不同会话的媒体流通过负载均衡分配到不同的线程进行处理。
2.如权利要求1所述的一种高性能接收RTP复用流的方法,其特征在于:步骤1中,媒体协商的方法为:媒体协商可以通过RTSP、SIP及私有协议进行。
3.如权利要求1所述的一种高性能接收RTP复用流的方法,其特征在于:步骤2中,UDP报文指的是:经过第一步协商成功后,服务端首先将媒体流打包成RTP报文,再将RTP报文、复用ID打包成复用RTP报文,最后将复用RTP报文和复用端口信息打包成UDP报文。
4.如权利要求1所述的一种高性能接收RTP复用流的方法,其特征在于:步骤3中,接收UDP报文的方法为:采用单线程的方式从复用端口读取媒体流对应的UDP报文。
5.如权利要求1所述的一种高性能接收RTP复用流的方法,其特征在于:步骤3中,提取出复用ID和RTP报文的方法是:先从UDP报文里面提取出复用RTP报文,然后再从复用RTP报文中提取到复用ID和RTP报文。
6.如权利要求1所述的一种高性能接收RTP复用流的方法,其特征在于:步骤5中,将RTP报文还原成媒体流的方法:取出的任务信息里面包含了复用ID和RTP报文,根据媒体流的实际打包情况对RTP报文进行RTP包头解析,有加密的话进行SRTP解密,得到RTP包头字段和负载数据即媒体数据。
CN201910869844.2A 2019-09-16 2019-09-16 一种高性能接收rtp复用流的方法 Pending CN110572708A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910869844.2A CN110572708A (zh) 2019-09-16 2019-09-16 一种高性能接收rtp复用流的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910869844.2A CN110572708A (zh) 2019-09-16 2019-09-16 一种高性能接收rtp复用流的方法

Publications (1)

Publication Number Publication Date
CN110572708A true CN110572708A (zh) 2019-12-13

Family

ID=68780155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910869844.2A Pending CN110572708A (zh) 2019-09-16 2019-09-16 一种高性能接收rtp复用流的方法

Country Status (1)

Country Link
CN (1) CN110572708A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590340A (zh) * 2021-08-20 2021-11-02 河南辉煌科技股份有限公司 媒体流数据分发方法、数据分发装置、存储介质、平台

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101132366A (zh) * 2007-09-17 2008-02-27 杭州华三通信技术有限公司 传输实时传输协议报文的方法和通讯设备
CN101150763A (zh) * 2007-10-18 2008-03-26 中兴通讯股份有限公司 一种测试WiMAX网络实时传输业务性能的终端和方法
CN101600099A (zh) * 2009-04-09 2009-12-09 上海交通大学 多视角视频码流的实时传输同步控制方法
WO2011009369A1 (zh) * 2009-07-24 2011-01-27 中兴通讯股份有限公司 一种实现rtp数据流多路复用的信令协商方法和装置
CN109218540A (zh) * 2018-09-06 2019-01-15 国网山东省电力公司菏泽供电公司 一种基于软交换的接入层嵌入式ip录音方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101132366A (zh) * 2007-09-17 2008-02-27 杭州华三通信技术有限公司 传输实时传输协议报文的方法和通讯设备
CN101150763A (zh) * 2007-10-18 2008-03-26 中兴通讯股份有限公司 一种测试WiMAX网络实时传输业务性能的终端和方法
CN101600099A (zh) * 2009-04-09 2009-12-09 上海交通大学 多视角视频码流的实时传输同步控制方法
WO2011009369A1 (zh) * 2009-07-24 2011-01-27 中兴通讯股份有限公司 一种实现rtp数据流多路复用的信令协商方法和装置
CN109218540A (zh) * 2018-09-06 2019-01-15 国网山东省电力公司菏泽供电公司 一种基于软交换的接入层嵌入式ip录音方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590340A (zh) * 2021-08-20 2021-11-02 河南辉煌科技股份有限公司 媒体流数据分发方法、数据分发装置、存储介质、平台

Similar Documents

Publication Publication Date Title
US10609096B2 (en) Method and system for dispatching received sessions between a plurality of instances of an application using the same IP port
CN108270732B (zh) 一种流媒体处理方法及系统
US10873480B2 (en) Network service header (NSH) metadata-based end-to-end multimedia session identification and multimedia service optimization
CN110557680B (zh) 一种音视频数据帧传输方法和系统
KR20080068690A (ko) 상보적 지정 파일을 이용하여 실시간전송프로토콜 출구스트리밍을 위한 방법 및 장치
CN111083425B (zh) 视频流处理方法、装置、服务器、电子设备及存储介质
CN110139165B (zh) 流媒体反向代理服务实现一个端口承载多个流协议的方法
US7957279B2 (en) Session border control using multiple processors
CN102088460B (zh) 受限网络中流媒体数据的传输方法、设备和系统
CA2597419C (en) Protection of data delivered out-of-order
CN110392044B (zh) 一种基于视联网的信息传输方法及装置
CN101764825B (zh) 虚拟专用网的数据传输方法、系统及终端、网关设备
CN112333210A (zh) 一种视联网数据通信功能实现方法和设备
CN110572708A (zh) 一种高性能接收rtp复用流的方法
WO2009053878A1 (en) Methods and systems for offload processing
CN109040790B (zh) 数据加解密方法、装置及电子设备
US11706290B2 (en) Direct server reply for infrastructure services
US9692709B2 (en) Playout buffering of encapsulated media
CN110830366A (zh) 军工领域消息推送系统
CN117641066A (zh) 直播回源方法及系统
CN111245777A (zh) 军工领域消息的传递方法

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20191213

RJ01 Rejection of invention patent application after publication