CN101083628B - 一种动态转发媒体源的方法 - Google Patents
一种动态转发媒体源的方法 Download PDFInfo
- Publication number
- CN101083628B CN101083628B CN200710137275XA CN200710137275A CN101083628B CN 101083628 B CN101083628 B CN 101083628B CN 200710137275X A CN200710137275X A CN 200710137275XA CN 200710137275 A CN200710137275 A CN 200710137275A CN 101083628 B CN101083628 B CN 101083628B
- Authority
- CN
- China
- Prior art keywords
- media
- source
- forwarding server
- forwarding
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种动态转发媒体源的方法,包括步骤如下:作为媒体流提供端的媒体源主动连接作为媒体流请求端的转发服务器,发送媒体流的媒体源参数文件到转发服务器,并与转发服务器协商媒体流的传输方式;所述转发服务器维护媒体源参数文件并与媒体源建立流媒体会话;转发服务器接收到客户端的流服务请求时,通知媒体源开始发送媒体流,接收媒体源的媒体流,缓冲并转发给客户端。
Description
技术领域
本发明涉及多媒体技术领域,具体涉及一种根据客户端请求实现流媒体数据动态Relay(转发)的方法。
背景技术
随着网络技术的发展,一种新的媒体技术应运而生,这就是流媒体技术。流媒体是指在网络中使用流式传输技术的连续时基媒体,如音频、视频或多媒体文件。流服务可以给用户提供持续不断的音频、视频流,满足用户在线观看动态影音的需求,流媒体技术在媒体点播领域和媒体直播领域得到极大的应用。此类流媒体系统通常采用C/S(客户端/服务器)架构,作为流服务的提供者,流媒体服务器是系统的应用瓶颈。为缓解流媒体服务器的压力,在流媒体系统引入Relay(转发)服务器来分担流媒体服务器的负载,转发服务器缓存流媒体服务器上的流媒体数据,这样一部分用户可以通过访问转发服务器来访问流媒体服务器的数据。
目前转发服务器通常采用一种静态转发的过程,在转发服务之前,由转发服务器向媒体源建立媒体流连接,并在转发服务器保存媒体源参数文件(通常是*.SDP文件,遵循SDP(会话描述协议)协议),流媒体客户端通过访问转发服务器的参数配置文件,通过RTSP(实时流协议)/SDP/RTP(实时传输协议)/RTCP(实时传输控制协议)协议获取媒体源的媒体数据。然而,这种转发方法存在如下缺点:当媒体源处于私网时,媒体源作为流媒体服务器,转发服务器要取得媒体数据并将其转发到公网的客户端,无法实现。
发明内容
本发明所要解决的问题是提供一种根据客户端请求动态转发媒体源的方法,以实现转发服务器对媒体源数据的取得及动态转发,并节约网络带宽。
本发明具体是这样实现的:
一种动态转发媒体源的方法,进行如下处理:
将转发服务器作为媒体流请求端,将媒体源作为媒体流提供端;
所述媒体源主动连接转发服务器,发送媒体流的媒体源参数文件到转发服务器,并与转发服务器协商媒体流的传输方式;
所述转发服务器维护媒体源参数文件并与媒体源建立流服务会话;
转发服务器接收到客户端的流服务请求时,将保存的媒体源参数文件发送给客户端,所述客户端与转发服务器之间建立流媒体会话,所述转发服务器通知媒体源开始发送媒体流并接收媒体源的媒体流,缓冲并转发给客户端。
优选地,所述转发服务器维护媒体源参数文件并与媒体源建立流媒体会话,包括如下步骤:
转发服务器保存媒体源发送的媒体源参数文件并反馈应答响应至媒体源;
媒体源接受转发服务器返回的应答响应后,与转发服务器建立流媒体会话,并保持该会话且不推送媒体流。
优选地,所述转发服务器保存媒体源参数文件时,进行如下处理:将媒体源参数文件保存在转发服务器本地文件中;或替换地,进行如下处理:将媒体源参数文件保存在转发服务器内存中。
优选地,所述转发服务器与媒体源建立流媒体会话后,为了维护其与转发服务器两者之间的媒体通道,媒体源定时向转发服务器发送握手消息。
优选地,所述转发服务器在收到客户端的流服务请求后,进行如下处理:
转发服务器查询与请求所对应的媒体源的连接状况,如果连接没有建立,则转发服务器拒绝客户端的流服务请求;如果连接建立,则将转发服务器与媒体源会话的媒体源参数文件发送给客户端;
客户端接受媒体源参数文件,并与转发服务器之间建立流媒体会话。
优选地,在客户端与转发服务器之间建立流媒体会话后,转发服务器缓冲媒体源的媒体流并转发给客户端前,包括转发服务器确认媒体源是否已经发送媒体流的步骤。
在多媒体网络中,本发明提出的一种动态转发媒体源的方法,一方面,采用媒体源主动向转发服务器建立连接,保证了位于公私网内的媒体源能够实现转发;另一方面,转发服务器和媒体源之间的服务会话建立后并不立即缓存数据,而是等到客户端开始发送请求后,才通知媒体源开始发送媒体流,转发到客户端,从而实现动态转发,节省网络带宽。
附图说明
图1是本发明中媒体源动态转发的应用环境部署图;
图2是本发明中动态转发媒体源的流程图。
本发明中涉及的英文术语及缩写对应的中文如下:
缩略语 | 原文 | 中文含义 |
C/S | Client/Server | 客户端/服务器模式 |
SDP | Session Description Protocol | 会话描述协议 |
RTSP | Real Time Stream Protocol | 实时流协议 |
RTP | Real-time Transport Protocol | 实时传输协议 |
RTCP | Real-time Transport Control Protocol | 实时传输控制协议 |
CIF | Common Intermediate Format | 标准化图像格式,分辨率352×288像素 |
QCIF | Quarter Common Intermediate Format | 标准化图像格式,分辨率176×144像素 |
PU | Pre Unit | 监控前端 |
RGM | ReGister Module | 注册服务器模块 |
GUID | Global unique identifier | 全局唯一标识符 |
FTP | File Transfer Protocol | 文件传输协议 |
HTTP | Hypertext Transfer Protocol | 超文本传输协议 |
具体实施方式
下面结合附图对本发明的具体实施方式进行详细说明。
如图1所示的具体实施环境中,一个或多个转发服务器通过移动网络或固定网络与编码器相连,一个或多个转发服务的客户端,例如移动终端或固定终端,通过移动网络或固定网络与转发服务器相连。
所述编码器可以是编码硬件设备或编码软件程序,采集各种数字或模拟音频数据和视频数据,实时压缩编码成符合ISO和ITU等标准的音频和视频,并以流媒体的方式进行Intranet和Internet传播等功能,部署在私网或公网中,由RGM(注册服务器模块)统一管理。在本发明中,此编码器即视为媒体流提供端的媒体源。所述转发服务器能够被外网或者内网访问,转发服务器能够根据客户端(比如图1中所示固定或移动监控终端)的流服务请求,把编码器的媒体流传送给客户端。
位于私网内的媒体源,在作为流媒体服务器的被动模式下,转发服务器无法取得媒体数据并将其转发到公网的客户端。
因此,为实现对私网的穿越,本发明一种动态转发媒体源的方法中,由作为媒体流提供端的媒体源主动连接作为媒体流请求端的转发服务器,发送媒体流的媒体源参数文件到转发服务器,并和转发服务器协商媒体流的传输方式,然后转发服务器维护媒体源参数文件并与媒体源建立流媒体会话,当转发服务器接收到客户端的流服务请求时,通知媒体源开始发送媒体流,接收媒体源的媒体流,缓冲并转发给客户端。当然,在媒体源处于公网时,本发明动态转发媒体源的方法亦能很好适用。
在转发服务器维护媒体源参数文件并与媒体源建立流媒体会话后,媒体源并不直接将媒体流缓存至转发服务器,而是待客户端发送流服务请求至转发服务器时,才开始缓存媒体流,从而实现动态转发,节省网络带宽。
在本发明一优选实施例中,固定终端可通过转发服务器请求移动网络侧,私网内的媒体源,且与转发服务器之间的媒体流通过UDP传输(普通的RTSP流),在移动网络侧的编码器与转发服务器之间的媒体流通过TCP传输(遵循RTSP协议,即RTP/RTCP over TCP方式)。当然,优选实施例中的UDP或TCP传输方式,仅为利于后续描述,在不背离本发明精神及其实质的情况下,其他传输方式亦可采用,以实现媒体源与转发服务器、转发服务器与客户端之间的媒体流传输。
如图2所示,是本发明所述方法的具体实施例的一个应用实例——监控业务中基于RTSP协议的实时码流服务,其具体步骤如下:
步骤201,编码器首先与转发服务器协商建立TCP连接。建立的方法是编码器通过RTSP Announce(实时流协议应答)方法向转发服务器发起请求,请求的内容为对应流的SDP内容(具体可参见RTSP协议:RFC2326,在此不再赘言),即编码器对应媒体流的媒体描述信息。本实施中流请求为:ANNOUNCErtsp://<RelaySvr ip>/<codec guid>.sdp;Method=TCP;<Codec IP>;<rtsp port>;Resolution=CIF;...其中<RelaySvr ip>为转发服务器的IP地址,<codec guid>为编码器的唯一性标记,Method=TCP指定转发服务器与媒体源(编码器)间通过RTP/RTCP over TCP方式传输数据,<Code IP>为编码器的IP地址,<rtspport>为编码器提供的rtsp服务端口,Resolution=CIF指定请求流为CIF流。
步骤202,转发服务器维护与编码器交互的SDP信息,同时返回给编码器一个应答响应,编码器收到转发服务器返回的ANNOUNCE成功应答后,遵循RTSP标准协议要求,相继通过RTSP Setup、RTSP Record方法与Relay服务器建立RTSP/RTP/RTCP流媒体会话,保持该会话但是编码器不推送数据。
步骤203,流媒体会话建立完成后,编码器定时通过RTSP OPTIONS方法向转发服务器发送握手信息,通过判断转发服务器的返回值来保持TCP连接的畅通。
步骤204,监控终端(即客户端)通过RTSP协议向转发服务器请求转发编码器的媒体流。根据RTSP标准协议,转发服务器首先收到RTSP Describe请求,Describe请求中包含客户端的请求信息,转发服务器分析请求信息,解析出客户端所要求的转发媒体源信息,根据媒体源信息中包含的编码器的GUID信息,判断其对应编码器和转发服务器是否已经完成连接,如果没有连接,则返回失败,如果存在连接,则转发服务器将保存的先前与媒体源交互的SDP信息,作为客户端RTSP Describe请求响应的标准参数发送给客户端。
步骤205,监控终端收到RTSP Describe请求响应的标准参数,即SDP信息后,通过RTSP SETUP,RTSP PLAY与转发服务器建立基于RTP/RTCP overTCP的流媒体会话。
步骤206,转发服务器接收到监控终端的RTSP PLAY请求后,检查编码器是否已经开始发送媒体流,如果已经在发送,就跳转到步骤207。如果没有,则使用RTSP SET_PARAMETER方法向编码器发送请求,通知编码器开始发送媒体流。
步骤207,转发服务器缓存编码器推送的媒体流并转发给监控终端,这样监控终端就能就能访问公、私网内的媒体流。
其中,在步骤202中,转发服务器维护SDP信息的方法有两种:一是将该信息保存在本地文件中,一旦系统重启,还可以通过读取本地文件获取信息;另一种是直接将该SDP信息保存在内存中,这种方式在系统重启后不再获取。
其中,在步骤206中,转发服务器和编码器一直保持会话,只有转发服务器通过Set Parameter方法发起推送请求之后,编码器才推送数据,这样既可以避免多次穿越网络的代价,又可以避免推送数据时浪费带宽。
当然,本发明不仅仅适用于RTSP/RTP/RTCP传输流的方法,通过简单变形,转发服务器也可以动态转发使用FTP(文件传输协议)/HTTP(超文本传输协议)等其他网络传输协议传送的数据。
与现有技术相比,本发明一方面采用媒体源主动向转发服务器建立连接,保证了位于公私网内的媒体源能够实现转发;另一方面,转发服务器和媒体源之间的流媒体会话建立后并不立即缓存数据,而是等到客户端开始发送请求后,才通知媒体源开始发送媒体流,转发到客户端,从而实现动态转发,节省网络带宽。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (7)
1.一种动态转发媒体源的方法,其特征在于:
将转发服务器作为媒体流请求端,将媒体源作为媒体流提供端;
所述媒体源主动连接转发服务器,发送媒体流的媒体源参数文件到转发服务器,并与转发服务器协商媒体流的传输方式;
所述转发服务器维护媒体源参数文件并与媒体源建立流媒体会话;
转发服务器接收到客户端的流服务请求时,将保存的媒体源参数文件发送给客户端,所述客户端与转发服务器之间建立流媒体会话,所述转发服务器通知媒体源开始发送媒体流并接收媒体源的媒体流,缓冲并转发给客户端。
2.如权利要求1所述的动态转发媒体源的方法,其特征在于,所述转发服务器维护媒体源参数文件并与媒体源建立流媒体会话,包括如下步骤:
转发服务器保存媒体源发送的媒体源参数文件并反馈应答响应至媒体源;
媒体源接受转发服务器返回的应答响应后,与转发服务器建立流媒体会话,并保持该会话且不推送媒体流。
3.如权利要求2所述的动态转发媒体源的方法,其特征在于,所述转发服务器保存媒体源参数文件时,进行如下处理:将媒体源参数文件保存在转发服务器的本地文件中。
4.如权利要求2所述的动态转发媒体源的方法,其特征在于,所述转发服务器保存媒体源参数文件时,进行如下处理:将媒体源参数文件保存在转发服务器内存中。
5.如权利要求3或4所述的动态转发媒体源的方法,其特征在于,所述转发服务器与媒体源建立流媒体会话后,为了维护其与转发服务器两者之间的媒体通道,媒体源定时向转发服务器发送握手消息。
6.如权利要求5所述的动态转发媒体源的方法,其特征在于,所述转发服务器在收到客户端的流服务请求后,进行如下处理:
转发服务器查询与请求所对应的媒体源的连接状况,如果连接没有建立,则转发服务器拒绝客户端的流服务请求;如果连接建立,则将转发服务器保存的媒体源参数文件发送给客户端;
客户端接受媒体源参数文件,并与转发服务器之间建立流媒体会话。
7.如权利要求6所述的动态转发媒体源的方法,其特征在于,在客户端与转发服务器之间建立流媒体会话后,转发服务器缓冲媒体源的媒体流并转发给客户端前,包括转发服务器确认媒体源是否已经发送媒体流的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710137275XA CN101083628B (zh) | 2007-07-20 | 2007-07-20 | 一种动态转发媒体源的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710137275XA CN101083628B (zh) | 2007-07-20 | 2007-07-20 | 一种动态转发媒体源的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101083628A CN101083628A (zh) | 2007-12-05 |
CN101083628B true CN101083628B (zh) | 2010-08-18 |
Family
ID=38912902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710137275XA Expired - Fee Related CN101083628B (zh) | 2007-07-20 | 2007-07-20 | 一种动态转发媒体源的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101083628B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BRPI0923917B1 (pt) * | 2008-12-31 | 2021-05-25 | Apple Inc | Método implementado por máquina, meio de armazenamento não transitório legível por máquina, aparelho, e sistema de processamento de dados para transmissão contínua em tempo real ou próximo ao tempo real |
CN105657334B (zh) * | 2014-11-14 | 2018-12-18 | 中国移动通信集团公司 | 一种视频传输的方法、视频监控平台及视频监控设备 |
CN104580263B (zh) * | 2015-02-11 | 2018-10-02 | 深圳市云之讯网络技术有限公司 | 基于ip网络选择最优路径转发媒体流方法 |
CN105072020B (zh) * | 2015-08-04 | 2019-12-10 | 广州华多网络科技有限公司 | 即时通信消息处理的方法及系统 |
CN108495076A (zh) * | 2018-04-12 | 2018-09-04 | 苏州万店掌网络科技有限公司 | 一种在实时会话中嵌入实时视频流的方法及系统 |
CN109951565B (zh) * | 2019-04-01 | 2019-12-10 | 比亚迪股份有限公司 | 供应链管理系统的数据传输方法、装置、介质和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588922A (zh) * | 2004-09-28 | 2005-03-02 | 王安生 | Sip软交换系统中呼叫控制与媒体流穿越私网的方法 |
CN1929481A (zh) * | 2006-09-30 | 2007-03-14 | 四川长虹电器股份有限公司 | 基于udp的流媒体穿越nat设备的方法 |
-
2007
- 2007-07-20 CN CN200710137275XA patent/CN101083628B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588922A (zh) * | 2004-09-28 | 2005-03-02 | 王安生 | Sip软交换系统中呼叫控制与媒体流穿越私网的方法 |
CN1929481A (zh) * | 2006-09-30 | 2007-03-14 | 四川长虹电器股份有限公司 | 基于udp的流媒体穿越nat设备的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101083628A (zh) | 2007-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101485170B (zh) | 通过网络呈现用流传输的可重复的数据对象 | |
CN101179480B (zh) | 一种转发流媒体的方法 | |
WO2009128528A1 (ja) | サーバ装置とコンテンツ配信方法とプログラム | |
CN101083628B (zh) | 一种动态转发媒体源的方法 | |
CN101119475B (zh) | 实现iptv系统中视频点播请求重定向的系统和方法 | |
US20050005025A1 (en) | Method for managing a streaming media service | |
CN101309203B (zh) | 一种网络媒体服务方法 | |
JP2006525693A (ja) | マルチメディア・ストリーミングにおけるクライアント速度機能のシグナリング方法 | |
CN101056320B (zh) | 一种数据会议中的文件传输方法及其系统 | |
KR100891745B1 (ko) | 주문형 비디오 서비스 제공을 위한 프로토콜 변환 방법 및 그 장치 | |
JP2008530835A (ja) | パケット交換ネットワーク上のオンデマンドマルチチャネルストリーミングセッション | |
CN101383959A (zh) | 流媒体业务中获取关键帧的方法、系统及用户设备 | |
KR101573329B1 (ko) | 멀티캐스트 세션을 통해 수신한 어플리케이션에 기초한 iptv 서비스 이용 방법 및 장치 | |
CN104683734A (zh) | 一种视频监控的内容适配方法、系统及中心服务器、装置 | |
CN101754002A (zh) | 一种视频监控系统及其双码流监控前端的实现方法 | |
US20120331510A1 (en) | Method, server and system for providing real-time video service in telecommunication network | |
CN101094159B (zh) | 一种媒体流私网穿透的方法 | |
US7805519B2 (en) | Method and system for sending video signal between different types of user agents | |
JP5332303B2 (ja) | サービス提供方法、ストリーミングサーバ、ストリーミング送信方法及びプログラム | |
US20110271003A1 (en) | Terminal, information inter-cut system and method | |
CA2554987A1 (en) | Storage of advanced video coding (avc) parameter sets in avc file format | |
US8619117B2 (en) | Method for transmitting multimedia ticker information | |
CN101188605A (zh) | 一种转发流媒体的系统 | |
US20110238785A1 (en) | Multimedia providing service | |
CN101179502A (zh) | 一种流媒体数据的转发系统和转发方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100818 Termination date: 20190720 |
|
CF01 | Termination of patent right due to non-payment of annual fee |