一种rtmp流媒体公网直播系统及其设计方法

文档序号:8286231阅读:1062来源:国知局
一种rtmp流媒体公网直播系统及其设计方法
【技术领域】
[0001]本发明涉及一种流媒体技术设计方法,具体地,尤其涉及一种RTMP流媒体公网直播系统及其设计方法。
【背景技术】
[0002]在流媒体直播系统中,正在直播的RTMP流媒体通过网络传输给用户,观看该直播流的用户可能随时接入该网络,因为RTMP协议对视频进行主动推送,当系统内主播设备数量增加时,每台开启的RTMP主播设备都会向指定IP的流媒体服务器进行推流,在一定条件下必然会出现系统公网上行带宽瓶颈问题,造成网络拥塞,无法进行直播,如果是ADSL网络情况下进行RTMP主播,网络拥塞问题更为严重。
[0003]目前,直播系统的架设通常采用如下几种方式去解决上述问题:
1.RTMP主播设备发送一份流到流媒体服务器,再由流媒体服务器进行分发处理。
[0004]2.降低主播设备视频编码码率、帧率、分辨率,以减少数据的传输。
[0005]3.通过专网或租用更高带宽,直接解决数据的传输问题。
但是,以上处理方法明显存在不足的地方:
A.对于I的处理方法,可解决单个RTMP主播设备视频流的分发问题,但是当系统内主播设备数量增加到一定条件下,即使每台RTMP主播设备都仅发送一份流到流媒体服务器,也必将会造成网络拥塞。
[0006]B.对于2的处理方法,当降低码率、帧率、分辨率时,一定会降低视频质量,并且当主播设备数量增加时,也必将造成网络拥塞。
[0007]对于3的处理方法,则会造成用户成本增加,而且也不能完全解决上述问题。

【发明内容】

[0008]本发明目的在于针对上述技术问题,在现有系统的基础上,提出一种RTMP流媒体公网直播系统的设计方法,同时本发明还公开了利用上述设计方法而得的流媒体公网直播系统。
[0009]本发明的流媒体公网直播系统包括RTMP主播设备、网络交换设备、RTMP流媒体服务器和客户端,其中,其中,网络交换设备一般不作特别要求。
[0010]本发明的RTMP流媒体公网直播系统的设计方法,包括以下步骤:
步骤I,主播设备采集线程采集音视频数据,并编码成高分辨率(主码流)和低分辨率(副码流)的H.264视频数据与AAC音频数据;
步骤2,主播设备连接到流媒体服务器,并将流媒体数据推送到流媒体服务器:
主播设备将编码后的音视频数据封装成符合RTMP协议的数据包,通过线程函数向服务器进行数据发送;
步骤3,流媒体服务器请求信令分析并进行流媒体分发:
当主播设备收到RTMP流媒体服务器发送的开始音视频发送信令时,音视频发送线程开始发送,并强制编码成I帧数据进行发送;当实时性要求不严格时,并不用去强制编码成I帧数据进行发送,I帧数据的检测由流媒体服务器进行处理,或者I帧数据的检测流媒体服务器也不用进行处理,直接由客户端解码器进行处理;
当主播设备收到RTMP流媒体服务器发送的停止音视频发送信令时,音视频发送线程停止发送,但RTMP连接并不断开,编码线程正常编码工作;当实时性要求不严格时,RTMP连接断开,编码线程正常编码工作,或者,RTMP连接断开,并将编码线程的编码工作关闭;
当RTMP流媒体服务器检测到网络带宽出现预设定阀值时,向主播设备发送编码副码流视频信令,主播设备收到信令后,编码器切换到编码副码流,并强制编码成I帧数据进行发送。当实时性要求不严格时,当主播设备收到服务器发送的编码副码流视频信令时,并不用去强制编码成I帧数据进行发送,I帧数据的检测由流媒体服务器进行处理,或直接由客户端解码器进行处理;
步骤4,客户端显示。
[0011]本发明提供的RTMP流媒体直播系统的设计方法可以解决系统上行带宽不足的问题。本发明具有以下优点:
1:主播设备采用RTMP协议,在公网上进行流媒体直播时,具有良好的网络穿透性。
[0012]2:主播设备具有动态编码功能,在出现网络丢包问题时,具有良好的编码自适应性。
[0013]3:特别是本发明的主播设备具有动态开、关推流功能,在出现系统内架设多台RTMP主播设备,且上行带宽不足时,具有良好的带宽适应性。
[0014]4:主播设备、流媒体服务器均采用RTMP协议,前端用户并不需要固定IP,使用ADSL便可无鏠接入主播设备,方便用户组网。
[0015]5:媒体流采用RTMP协议封装,能很好的适应1S、Android等移动设备,并不需要另外安装APP客户端软件,在PC上也可通过网页进行音、视频浏览,也无需要另外安装PC客户端软件。
【附图说明】
[0016]图1是本发明实施例的系统原理结构示意图;
图2是本发明实施例的方法流程图;
图3是本发明实施例的网络通信模型原理结构示意图;
图4是本发明实施例的强制I帧编码模型原理结构示意图。
具体实施方案
[0017]以下结合附图对本发明的优选实施例进行说明,应当理解此处所描述的优选实施例仅用于说明和解释本发明并不用于限定本发明。
[0018]参见图1,本图意在从系统结构上对本实施例进行总体说明,所有RTMP主播设备101分别通过网络交换设备102 —网线与RTMP流媒体服务器103相连,客户端104对RTMP主播设备流的访问,由RTMP流媒体服务器103进行分发处理。系统部署时,RTMP主播设备101与网络交换设备102位于家庭、学校、公司等流媒体发布系统内部,再通过ADSL或专网进行流媒体数据上传。流媒体服务器103位于运营商机房,客户端104位于能进行公网访问的各地。由图可知ADSL或专网的上行数据带宽将是系统瓶颈所在,当RTMP主播设备101的数量增加时,上行数据带宽压力也随着增大,如果此时简单采用扩充带宽的方式,运营成本将急剧增加。本发明处理方式说明如下:
1、所有RTMP主播设备101开始运行时都向RTMP流媒体服务器103进行注册、RTMP连接;
2、客户端104向RTMP流媒体服务器103发起直播请求时,RTMP流媒体服务器103分析请求信令,如确认所请求的RTMP主播设备101-1,检测网络带宽及预设定阀值,并向RTMP主播设备101-1发出直播请求。
[0019]3,RTMP主播设备101-1接收到流媒体服务器103的直播请求信令并进行分析,根据分析结果进行相应的流媒体直播。
[0020]4、如果RTMP主播设备101-1正在进行直播,RTMP主播设备101_2接收到客户端104的直播请求后,RTMP主播设备101-1停止向外推流,但保持RTMP连接,RTMP主播设备101-2启动向外推流。
[0021]在本实施例中,在流媒体直播过程中,根据是否存在用户视频请求接入、退出,对RTMP主播设备101进行向外推流的开启与关闭处理。所以,本发明实施例提供的方法在不增加网络带宽的前提下,可以解决当系统内主播设备101数量增加时,出现公网上行带宽不足的瓶颈问题。
[0022]图2是本实施例的设计方法流程图,该方法包括以下步骤:
201、主播设备101采集音视频数据,并将数据编码成H.264与AAC格式;
在进行媒体数据传输时,为了节省带宽,根据RTMP协议要求,将视频数据编码成H.264(high profile)格式,音频数据编码成AAC格式,并为音视频数据分别打上时间戳,以便于进行媒体流直播时的音视频同步处理。视频编码过程中,可分别编码关键帧I帧及预测帧P帧,也可分别编码预定分辨率、帧率、码率的视频帧。
[0023]202、RTMP主播设备101连接到流媒体服务器103,并将流媒体数据推送到流媒体月艮务器103 ;
RTMP主播设备101与流媒体服务器103通过RTMP协议以TCP方式长连接,RTMP主播设备101将音视频数据流按照RTMP协议所要求的方式分别进行数据打包,
#define RTMP_PACKET_TYPE_AUD10x08
#define RTMP_PACKET_TYPE_VIDEO0x09
#define RTMP_PACKET_TYPE_INFO0x12
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1