CN104135486A - 一种基于tcp协议的流媒体无线自适应传输方法 - Google Patents
一种基于tcp协议的流媒体无线自适应传输方法 Download PDFInfo
- Publication number
- CN104135486A CN104135486A CN201410394809.7A CN201410394809A CN104135486A CN 104135486 A CN104135486 A CN 104135486A CN 201410394809 A CN201410394809 A CN 201410394809A CN 104135486 A CN104135486 A CN 104135486A
- Authority
- CN
- China
- Prior art keywords
- frame
- tcp
- memory buffer
- streaming media
- buffering area
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及音视频数据传输技术领域,公开了一种基于TCP协议的流媒体无线自适应传输方法,该方法利用TCP协议传输数据可靠的特点,采用TCP协议把音视频数据用固定长度的数据包头进行封装,同时设置双缓冲区分别进行音视频数据包存储和发送,根据网络的实时状况,通过丢包和调节帧率,来自适应于无线信道带宽的变化,从而减少网络拥塞状况。利用这个原理,不仅保证了TCP协议原有的传输可靠性,而且减少了视频传输的延迟,较好地实现了音视频数据基于无线网络的高质量传输。
Description
技术领域
本发明属于音视频数据传输技术领域,具体涉及一种基于TCP协议的流媒体无线自适应传输方法。
背景技术
在目前的各种应急通信系统方案中,应急音视频通信终端与指挥中心的音视频数据传输主要基于3G等无线网络实施,在这种应用场合下,网络环境的复杂性要远远超过传统的有线网络,比如无线网络的低带宽、高误码等特点,使得传统的基于有线网络设计的音视频通信终端效果总是不尽人意,表现为延时、抖动、花屏,甚至出现音视频传输中断等,而这在应急通信中是无法令人接受的。因此如何基于各类无线网络,尤其是电信、移动等公司的3G无线网络进行音视频数据的高质量传输是急需解决的一个现实问题。
目前应急通信采用的无线传输网络主要有两种:电信、联通的3G网络和移动的4G网络等公用无线宽带网络,以及专用无线电台。由于3G/4G等公用无线宽带网络无论是在网络覆盖面、无线网络应用成本等各个方面都存在非常明显的经济优势,这种网络也成为无线多媒体传输系统的主要网络。基于终端的标准化和应急通信系统的兼容性考虑,几乎所有应急通信平台均采用IP传输技术,因此目前的基于无线网络的多媒体通信传输技术也几乎全部是基于TCP/IP协议的,主要有以下两种:
(1)基于UDP协议。
UDP协议的特点是面向无连接的不可靠传输,也即UDP协议对分组的超时或丢弃不敏感。在有线网络中,由于网络的低误码率、高吞吐量,以及接收终端的强计算能力和纠错能力,因而在有线网络中,基于UDP协议的多媒体传输可以得到较好的效果。然而,相对于有线网络,无线网络中存在大量计算能力受限的弱终端,它们的纠错能力和缓存能力都较弱,所以对于分组的缺失非常敏感。更为严重的是,传统的单纯基于UDP协议的流媒体传输方式由于没有拥塞控制机制,所以在网络发生拥塞时仍然会向网络中注入大量数据包,导致发生拥塞的路由将分组丢弃,进而造成终端恢复视频质量的急剧下降,严重时将导致接收终端(解码器)崩溃。
(2)基于TCP协议。
最近的研究表明,越来越多的流式媒体采用TCP而非UDP作为传输协议。但是,目前TCP协议的实现(如TCP-Reno、TCP-NewReno、TCP-SACK)都把数据包的丢失作为网络拥塞的指示,进而将拥塞窗口减半,造成发送速率呈现较大的抖动性,影响了接收端的显示效果。尤其在无线高误码率网络下,丢包在很大程度上是由于链路错误而非拥塞。盲目进入拥塞控制,会导致网络利用率降低,影响接收效果。
发明内容
针对现有技术所存在的上述技术问题,本发明提供了一种基于TCP协议的流媒体无线自适应传输方法,该方法不仅保留了TCP协议原有的传输可靠性,而且减少了视频传输的延迟,较好地实现了音视频数据基于无线网络的高质量传输。
(1)以帧率初始值v0进行音视频的编码;对编码后音视频流中的I帧、P帧和B帧进行数据分割,得到多个数据分片;
(2)对于任意一个数据分片,对其封装数据包头后形成数据包;依次遍历每个数据分片;
(3)开辟内存为k1的存储缓冲区,将封装后的数据包存放到存储缓冲区内;
(4)根据存储缓冲区存放情况,以丢包、调节帧率的方法来管理存储缓冲区。
(5)设置TCP发送缓冲区大小为k2,根据TCP发送缓冲区存放情况,以把存储缓冲区最早一帧的数据包发送至TCP发送缓冲区或者等待TCP发送缓冲区的数据包发送完毕。
进一步的,所述的数据包头内依次包含:帧类型、帧尾标记、数据压缩格式、序列号、时间戳和分片长度。
进一步的,所述步骤(4)中,如果存储缓冲区已满并且存储缓冲区最早帧是I帧,则丢弃最早I帧的下一个I帧之前的所有I帧、B帧、P帧数据包,并降低编码帧率至vb;如果存储缓冲区已满并且存储缓冲区最早帧不是I帧,则丢弃下一个I帧之前的所有B帧、P帧,并降低编码帧率至vb;减速后的编码帧率公式为:vb=(1-k)vj,其中,vb为减速后的编码帧率,vj为减速前的编码帧率,k为给定的帧率调节系数。
进一步的,所述步骤(4)中,如果存储缓冲区未满并且空余小于等于1/n,则继续保持原来帧率vi;如果存储缓冲区未满并且空余大于1/n,n是缓冲区的空余系数,则提高编码帧率至va,加速后的编码帧率计算公式为:va=(1+k)vi,其中,va为加速后的编码帧率,vi为加速前的编码帧率,k为给定的帧率调节系数。
进一步的,所述步骤(5)中,如果TCP发送缓冲区已满,则等待TCP发送缓冲区的数据包发送完毕;如果TCP发送缓冲区为空,则把存储缓冲区最早一帧的数据包发送至TCP发送缓冲区。
另外,上述k1、k2、n均为大于1的自然数。
本发明的有益效果是,本发明利用TCP协议传输数据可靠的特点,采用TCP协议把音视频数据用固定长度的数据包头进行封装,同时设置双缓冲区分别进行音视频数据包存储和发送,根据网络的实时状况,通过丢包和调节帧率,来自适应于无线信道带宽的变化,从而减少网络拥塞状况。利用这个原理,不仅保证了TCP协议原有的传输可靠性,而且减少了视频传输的延迟,较好地实现了音视频数据基于无线网络的高质量传输。
附图说明
图1为发送端数据存储线程的工作流程示意图;
图2为发送端数据发送线程的工作流程示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
如图1和图2所示,一种基于TCP协议的流媒体无线自适应传输方法,包括如下步骤:
(1)以帧率初始值v0=5帧/秒进行音视频的编码;对编码后音视频流中的I帧、P帧和B帧进行数据分割,得到多个数据分片;每个数据分片以600个字节为单位,I帧、P帧、B帧或音频流的最后一个数据分片,可以为不足600个字节的数据分片。
I帧表示视频流中的关键帧,P帧表示当前帧与前一帧的差别,B帧表示当前帧与前后两帧的差别。
(2)对于任意一个数据分片,对其封装数据包头后形成数据包;依次遍历每个数据分片;
数据包包含数据包头和数据分片两部分,具体结构如表1所示;其中数据包头包含帧类型、帧尾标记、数据压缩格式、序列号、时间戳和分片长度,其结构如表2所示;数据分片则直接存放所要传输的视音频数据。
表1
表2
本实施方式中,关于帧类型:若数据分片属于I帧,则帧类型为00;若数据分片属于P帧,则帧类型为01;若数据分片属于B帧,则帧类型为10;若数据分片属于音频流,则帧类型为11。
关于帧尾标记:若数据分片是I帧、P帧、B帧或音频流的最后一个数据分片,则帧尾标记为1;若否,则帧尾标记为0。
关于数据压缩格式:若数据分片属于的视频流或音频流的压缩算法为G711标准,则数据压缩格式为1;G726标准的数据压缩格式为2,GSM标准为3,AMR标准为4,MPEG4标准为16,H264标准为17。
关于序列号:依次将序列号0~65535赋予每个数据包,超出65535的再从0~65535开始赋值。
关于时间戳:为每一个数据包赋予一个时间戳,则当前数据包的时间戳Ci=(ti-t0)T+C0;其中,ti为当前数据包对应的时刻,t0为视频流或音频流的第一个数据包对应的时刻,C0为视频流或音频流的第一个数据包的时间戳,T为比例系数;本实施例中,C0为随机初始化的值,对于视频流T=90000,对于音频流T=8000。
关于分片长度:用于表示数据分片的大小。
(3)开辟内存为k1的存储缓冲区,将封装后的数据包存放到存储缓冲区内;
本实施方式中,k1=6MB。
(4)根据存储缓冲区存放情况,以丢包、调节帧率的方法来管理存储缓冲区。
本实施方式中,如果存储缓冲区已满并且存储缓冲区最早帧是I帧,则丢弃最早I帧的下一个I帧之前的所有I帧、B帧、P帧数据包,并降低编码帧率至vb;如果存储缓冲区已满并且存储缓冲区最早帧不是I帧,则丢弃下一个I帧之前的所有B帧、P帧,并降低编码帧率至vb;vb=(1-k)vj,vb为减速后的编码帧率,vj为减速前的编码帧率,k为给定的帧率调节系数;本实施例中,k设置为0.1。
如果存储缓冲区未满并且空余小于等于1/n,则继续保持原来帧率vi;如果存储缓冲区未满并且空余大于1/n,则提高编码帧率为va,va=(1+k)vi,va为加速后的编码帧率,vi为加速前的编码帧率,k为给定的帧率调节系数,n是缓冲区的空余系数;k和n都是通过实验得到的经验常量参数,本实施例中,n设置为3,k设置为0.1。
(5)设置TCP发送缓冲区大小为k2,根据TCP发送缓冲区存放情况,以把存储缓冲区最早一帧的数据包发送至TCP发送缓冲区或者等待TCP发送缓冲区的数据包发送完毕。
本实施方式中,如果TCP发送缓冲区已满,则等待TCP发送缓冲区的数据包发送完毕;如果TCP发送缓冲区为空,则把存储缓冲区最早一帧的数据包发送至TCP发送缓冲区。k2设置为100KB。
以上对本发明所提供的一种基于TCP协议的流媒体无线自适应传输方法进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于TCP协议的流媒体无线自适应传输方法,其特征在于,包括如下步骤:
(1)以帧率初始值v0进行音视频的编码;对编码后音视频流中的I帧、P帧和B帧进行数据分割,得到多个数据分片;
(2)对于任意一个数据分片,对其封装数据包头后形成数据包;依次遍历每个数据分片;
(3)开辟内存为k1的存储缓冲区,将封装后的数据包存放到存储缓冲区内;
(4)根据存储缓冲区存放情况,以丢包、调节帧率的方法来管理存储缓冲区;
(5)设置TCP发送缓冲区大小为k2,根据TCP发送缓冲区存放情况,以把存储缓冲区最早一帧的数据包发送至TCP发送缓冲区或者等待TCP发送缓冲区的数据包发送完毕。
2.根据权利要求1所述的流媒体无线自适应传输方法,其特征在于,所述的数据包头内依次包含:帧类型、帧尾标记、数据压缩格式、序列号、时间戳和分片长度。
3.根据权利要求1所述的流媒体无线自适应传输方法,其特征在于,所述步骤(4)中,如果存储缓冲区已满并且存储缓冲区最早帧是I帧,则丢弃最早I帧的下一个I帧之前的所有I帧、B帧、P帧数据包,并降低编码帧率,减速后的编码帧率为vb。
4.根据权利要求1所述的流媒体无线自适应传输方法,其特征在于,所述步骤(4)中,如果存储缓冲区已满并且存储缓冲区最早帧不是I帧,则丢弃下一个I帧之前的所有B帧、P帧,并降低编码帧率,减速后的编码帧率为vb。
5.根据权利要求3或4所述的流媒体无线自适应传输方法,其特征在于,减速后的编码帧率计算公式为:vb=(1-k)vj,其中,vb为减速后的编码帧率,vj为减速前的编码帧率,k为给定的帧率调节系数。
6.根据权利要求1所述的流媒体无线自适应传输方法,其特征在于,所述步骤(4)中,如果存储缓冲区未满并且空余小于等于1/n,则继续保持原来帧率vi,其中,n是缓冲区的空余系数。
7.根据权利要求1所述的流媒体无线自适应传输方法,其特征在于,所述步骤(4)中,如果存储缓冲区未满并且空余大于1/n,则提高编码帧率,加速后的编码帧率为va,其中,n是缓冲区的空余系数。
8.根据权利要求7所述的流媒体无线自适应传输方法,其特征在于,加速后的编码帧率计算公式为:va=(1+k)vi,其中,va为加速后的编码帧率,vi为加速前的编码帧率,k为给定的帧率调节系数。
9.根据权利要求1所述的流媒体无线自适应传输方法,其特征在于,所述步骤(5)中,如果TCP发送缓冲区已满,则等待TCP发送缓冲区的数据包发送完毕。
10.根据权利要求1所述的流媒体无线自适应传输方法,其特征在于,所述步骤(5)中,如果TCP发送缓冲区为空,则把存储缓冲区最早一帧的数据包发送至TCP发送缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410394809.7A CN104135486A (zh) | 2014-08-08 | 2014-08-08 | 一种基于tcp协议的流媒体无线自适应传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410394809.7A CN104135486A (zh) | 2014-08-08 | 2014-08-08 | 一种基于tcp协议的流媒体无线自适应传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104135486A true CN104135486A (zh) | 2014-11-05 |
Family
ID=51808008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410394809.7A Pending CN104135486A (zh) | 2014-08-08 | 2014-08-08 | 一种基于tcp协议的流媒体无线自适应传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104135486A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016131223A1 (zh) * | 2015-02-17 | 2016-08-25 | 华为技术有限公司 | 一种视频帧丢帧方法及视频发送装置 |
CN108989767A (zh) * | 2018-08-30 | 2018-12-11 | 北京计算机技术及应用研究所 | 一种网络自适应的多路h264视频流存储转播方法及系统 |
CN109600586A (zh) * | 2018-12-21 | 2019-04-09 | 赵丽妍 | 一种安防监控系统的视频优化传输方法 |
CN111182334A (zh) * | 2019-12-30 | 2020-05-19 | 咪咕视讯科技有限公司 | 数据处理方法、服务器、终端以及存储介质 |
CN112235616A (zh) * | 2020-10-16 | 2021-01-15 | 杭州觅睿科技有限公司 | 一种视频传输方法、装置、设备及介质 |
CN117615036A (zh) * | 2023-11-28 | 2024-02-27 | 北京华宇信息技术有限公司 | 一种多路音频的传输方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1468001A (zh) * | 2002-06-27 | 2004-01-14 | 上海汉唐科技有限公司 | 基于因特网的媒体流自适应传输方法 |
US20070153914A1 (en) * | 2005-12-29 | 2007-07-05 | Nokia Corporation | Tune in time reduction |
CN101043618A (zh) * | 2006-03-24 | 2007-09-26 | 腾讯科技(深圳)有限公司 | 一种在多路视频通讯中控制帧率的装置和方法 |
CN101222296A (zh) * | 2008-01-31 | 2008-07-16 | 上海交通大学 | 上行蜂窝视频通信中自适应的传输方法及系统 |
CN101369866A (zh) * | 2008-10-21 | 2009-02-18 | 中国电信股份有限公司 | 一种测试流媒体传输质量的方法和设备 |
CN101488967A (zh) * | 2009-01-14 | 2009-07-22 | 深圳市同洲电子股份有限公司 | 一种视频传输方法、嵌入式监控终端及监控平台服务器 |
CN101753977A (zh) * | 2009-12-31 | 2010-06-23 | 中兴通讯股份有限公司 | 一种调节网络数字视频播放速度的方法及装置 |
CN102387409A (zh) * | 2011-12-07 | 2012-03-21 | 江苏远为科技有限公司 | 基于流媒体系统的视频播放方法 |
CN102497578A (zh) * | 2011-11-25 | 2012-06-13 | 武汉大学 | 一种3g网络环境下的移动音视频实时通信方法 |
CN103118241A (zh) * | 2012-02-24 | 2013-05-22 | 金三立视频科技(深圳)有限公司 | 基于3g网络的移动视频监控流媒体传输自适应调整算法 |
-
2014
- 2014-08-08 CN CN201410394809.7A patent/CN104135486A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1468001A (zh) * | 2002-06-27 | 2004-01-14 | 上海汉唐科技有限公司 | 基于因特网的媒体流自适应传输方法 |
US20070153914A1 (en) * | 2005-12-29 | 2007-07-05 | Nokia Corporation | Tune in time reduction |
CN101043618A (zh) * | 2006-03-24 | 2007-09-26 | 腾讯科技(深圳)有限公司 | 一种在多路视频通讯中控制帧率的装置和方法 |
CN101222296A (zh) * | 2008-01-31 | 2008-07-16 | 上海交通大学 | 上行蜂窝视频通信中自适应的传输方法及系统 |
CN101369866A (zh) * | 2008-10-21 | 2009-02-18 | 中国电信股份有限公司 | 一种测试流媒体传输质量的方法和设备 |
CN101488967A (zh) * | 2009-01-14 | 2009-07-22 | 深圳市同洲电子股份有限公司 | 一种视频传输方法、嵌入式监控终端及监控平台服务器 |
CN101753977A (zh) * | 2009-12-31 | 2010-06-23 | 中兴通讯股份有限公司 | 一种调节网络数字视频播放速度的方法及装置 |
CN102497578A (zh) * | 2011-11-25 | 2012-06-13 | 武汉大学 | 一种3g网络环境下的移动音视频实时通信方法 |
CN102387409A (zh) * | 2011-12-07 | 2012-03-21 | 江苏远为科技有限公司 | 基于流媒体系统的视频播放方法 |
CN103118241A (zh) * | 2012-02-24 | 2013-05-22 | 金三立视频科技(深圳)有限公司 | 基于3g网络的移动视频监控流媒体传输自适应调整算法 |
Non-Patent Citations (1)
Title |
---|
熊永华: "基于TCP的实时流媒体自适应传输策略及其应用研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016131223A1 (zh) * | 2015-02-17 | 2016-08-25 | 华为技术有限公司 | 一种视频帧丢帧方法及视频发送装置 |
US10659847B2 (en) | 2015-02-17 | 2020-05-19 | Huawei Technologies Co., Ltd. | Frame dropping method for video frame and video sending apparatus |
CN108989767A (zh) * | 2018-08-30 | 2018-12-11 | 北京计算机技术及应用研究所 | 一种网络自适应的多路h264视频流存储转播方法及系统 |
CN109600586A (zh) * | 2018-12-21 | 2019-04-09 | 赵丽妍 | 一种安防监控系统的视频优化传输方法 |
CN111182334A (zh) * | 2019-12-30 | 2020-05-19 | 咪咕视讯科技有限公司 | 数据处理方法、服务器、终端以及存储介质 |
CN111182334B (zh) * | 2019-12-30 | 2022-03-25 | 咪咕视讯科技有限公司 | 数据处理方法、服务器、终端以及存储介质 |
CN112235616A (zh) * | 2020-10-16 | 2021-01-15 | 杭州觅睿科技有限公司 | 一种视频传输方法、装置、设备及介质 |
CN112235616B (zh) * | 2020-10-16 | 2021-07-13 | 杭州觅睿科技股份有限公司 | 一种视频传输方法、装置、设备及介质 |
CN117615036A (zh) * | 2023-11-28 | 2024-02-27 | 北京华宇信息技术有限公司 | 一种多路音频的传输方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103166974B (zh) | 一种基于tcp/udp混合协议的流媒体无线传输方法 | |
CN104618337B (zh) | 一种基于tcp/udp混合协议的流媒体无线自适应传输方法 | |
CN104135486A (zh) | 一种基于tcp协议的流媒体无线自适应传输方法 | |
CN105357592B (zh) | 一种流媒体自适应传输选择性丢帧方法 | |
CN106341738B (zh) | 流媒体网络传输的带宽计算方法、服务器端和系统 | |
CN101552660B (zh) | 对流媒体数据进行重传、播放的方法、装置及通信系统 | |
CN101909208B (zh) | 一种适用于cdma2000的视频无线传输控制方法 | |
KR101400658B1 (ko) | Tdma mac 계층에서의 mac 프로토콜 데이터 유닛 집합 | |
US10602139B2 (en) | Embedded multimedia systems with adaptive rate control for power efficient video streaming | |
CN101179362B (zh) | 适宜移动流媒体应用的自动重传请求机制 | |
CN101184052B (zh) | 一种实现可靠udp传输的拥塞控制方法 | |
CN103929681B (zh) | 一种提升低速网络中rtp视频流处理效率的方法 | |
TW200412074A (en) | Packet transmission method and system, base station, wireless LAN terminal, and wireless LAN system using the same | |
CN101345756A (zh) | 一种基于带宽预测的无线Ad Hoc网络实时视频传输方法 | |
CN103414956A (zh) | 基于传输控制协议的实时数据传输方法及其系统 | |
CN113099310A (zh) | 基于安卓平台的实时媒体内视音频协调法 | |
CN103607665A (zh) | 一种多链路的无线实时视频传输方法及系统 | |
CN103354615B (zh) | 基于信号强度的直播视频数据传输差错控制方法 | |
CN105142002A (zh) | 音/视频直播方法、装置及控制方法、装置 | |
CN104486690A (zh) | 一种基于tcp协议的移动视频传输优化方法 | |
CN101521813B (zh) | 一种处理媒体流的方法和装置 | |
CN104754339A (zh) | I帧调整方法、装置及系统 | |
CN106210785B (zh) | 媒体流网络自适应单向控制方法及系统 | |
CN103428531A (zh) | 一种多媒体数据的arq控制方法及系统 | |
Van Beek et al. | Delay-constrained rate adaptation for robust video transmission over home networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141105 |
|
RJ01 | Rejection of invention patent application after publication |