XIONG CHUNSHAN (CN)
CN1852229A | 2006-10-25 | |||
CN101771492A | 2010-07-07 | |||
US20100161761A1 | 2010-06-24 | |||
CN101808239A | 2010-08-18 |
深圳市深佳知识产权代理事务所(普通合伙) (CN)
权 利 要 求 1、 一种流媒体传输方法, 其特征在于, 包括: 依据网络侧向终端发送的流媒体数据包,确定流媒体当前的緩冲参数; 当所述流媒体当前的緩冲参数大于预设的第一阈值时, 降低所述流媒 体的传输速率。 2、根据权利要求 1所述的方法, 其特征在于, 所述依据网络侧向终端 发送的流媒体数据包, 确定流媒体当前的緩冲参数包括: 获取预设的时钟对首次截获所述流媒体的数据包到截获当前的数据包 进行计时的时间值; 将预先获取的首次截获的所述流媒体的数据包的时间区间下限值与所 述时间值相加, 得到所述流媒体的当前播放时间; 检测所述当前的数据包的时间区间上限值; 将所述时间区间上限值与所述当前播放时间的差值作为所述流媒体当 前的緩冲参数。 3、根据权利要求 2所述的方法, 其特征在于, 在所述降低所述流媒体 的传输速率之后, 还包括: 截获所述终端向所述流媒体服务器发送的应答数据包; 减小所述应答数据包中的窗长值; 将修改后的应答数据包发送到流媒体服务器。 4、根据权利要求 1所述的方法, 其特征在于, 所述依据网络侧向终端 发送的流媒体数据包, 确定流媒体当前的緩冲参数包括: 从播放器获取流媒体的当前播放时间; 检测所述当前的数据包的时间区间上限值; 将所述时间区间上限值与所述当前播放时间的差值作为所述流媒体当 前的緩冲参数。 5、 根据权利要求 4所述的方法, 其特征在于, 还包括: 当接收到暂停播放流媒体的指令后, 向所述流媒体服务器发送包含窗 长值为零的 TCP消息, 以使得所述流媒体服务器停止传输所述流媒体。 6、根据权利要求 2或 4所述的方法, 其特征在于, 所述降低所述流媒 体的传输速率包括: 向流媒体服务器发送包含预设的窗长值的 TCP消息,以使得所述网络 侧服务器降低所述流媒体的传输速率, 所述预设的窗长值小于当前的窗长 值。 7、根据权利要求 6所述的方法,其特征在于,所述预设的窗长值包括: 零 或者 , 窗长值除以 M, 所述 M为自然数。 8、根据权利要求 1所述的方法, 其特征在于, 所述依据网络侧向终端 发送的流媒体数据包, 确定流媒体当前的緩冲参数包括: 获取预设的时钟对从首次发送所述流媒体的数据包到发送当前的数据 包进行计时的时间值; 将预先获取的首次发送的所述流媒体的数据包的时间区间下限值与所 述时间值相加, 得到所述流媒体的当前播放时间; 检测所述当前发送的数据包的时间区间上限值; 将所述时间区间上限值与所述当前播放时间的差值作为所述流媒体当 前的緩冲参数。 9、根据权利要求 8所述的方法, 其特征在于, 所述降低所述流媒体的 传输速率包括: 以预设的传输速率向所述终端发送流媒体数据包, 所述预设的传输速 率小于当前的传输速率。 10、 根据权利要求 1、 2、 4或 8所述的方法, 其特征在于, 当所述流 媒体当前的緩冲参数大于预设的第一阈值时, 还包括: 将预设的标识位的值设为零。 11、 根据权利要求 10所述的方法, 其特征在于, 还包括: 当所述流媒体当前的緩冲参数小于预设的第二阈值且预设的标识位的 值为零时, 提高所述流媒体的传输速率。 12、根据权利要求 11所述的方法, 其特征在于, 所述提高所述流媒体 的传输速率包括: 向流媒体服务器发送包括未减小的窗长值的 TCP消息,以使得所述流 媒体服务器使用未降低前的传输速率传输所述流媒体。 13、根据权利要求 11所述的方法, 其特征在于, 所述提高所述流媒体 的传输速率包括: 使用未降低之前的传输速率传输所述流媒体。 14、根据权利要求 11至 13任一项所述的方法, 其特征在于, 还包括: 将所述预设的标识位的值设为 1。 15、 根据权利要求 1、 2、 4或 8任一项所述的方法, 其特征在于, 所 述预设的第一阈值的确定方法包括: 检测所述网络侧无线链路的负载量; 依据所述负载量确定所述预设的第一阈值。 16、 根据权利要求 1、 2、 4或 8任一项所述的方法, 其特征在于, 在 所述依据网络侧向终端发送的流媒体数据包, 计算流媒体当前的緩冲参数 之前, 还包括: 接收网络侧预设的緩存单元发送给终端的流媒体数据包。 17、 一种流媒体传输装置, 其特征在于, 包括: 确定模块, 用于依据网络侧向终端发送的流媒体数据包, 确定流媒体 当前的緩冲参数; 速率降低控制模块, 用于当所述流媒体当前的緩冲参数大于预设的第 一阈值时, 降低所述流媒体的传输速率。 18、 根据权利要求 17所述的装置, 其特征在于, 所述确定模块包括: 第一时间值获取单元, 用于获取预设的时钟对首次截获所述流媒体的 数据包到截获当前的数据包进行计时的时间值; 第一当前播放时间计算单元, 用于将预先获取的首次截获的所述流媒 体的数据包的时间区间下限值与所述时间值相加, 得到所述流媒体的当前 播放时间; 第一检测单元, 用于检测所述当前的数据包的时间区间上限值; 第一确定单元, 用于将所述时间区间上限值与所述当前播放时间的差 值作为所述流媒体当前的緩冲参数。 19、 根据权利要求 18所述的装置, 其特征在于, 还包括: 应答数据包截获单元, 用于截获所述终端向所述流媒体服务器发送的 应答数据包, 减小所述应答数据包中的窗长值, 并将修改后的应答数据包 发送到网络侧服务器。 20、 根据权利要求 17所述的装置, 其特征在于, 所述确定模块包括: 当前播放时间获取单元, 用于从播放器获取流媒体的当前播放时间; 第二检测单元, 用于检测所述当前的数据包的时间区间上限值; 第二确定单元, 用于将所述时间区间上限值与所述当前播放时间的差 值作为所述流媒体当前的緩冲参数。 21、 根据权利要求 20所述的装置, 其特征在于, 还包括: 暂停指令发送单元, 用于当接收到暂停播放流媒体的指令后, 向所述 流媒体服务器发送包含窗长值为零的 TCP消息,以使得所述流媒体服务器 停止传输所述流媒体。 22、 根据权利要求 18或 20所述的装置, 其特征在于, 所述速率降低 控制模块包括: 第一 TCP消息发送单元,用于当所述流媒体当前的緩冲参数大于预设 的第一阈值时, 向流媒体服务器发送包含预设的窗长值的 TCP消息, 以使 得所述流媒体服务器降低所述流媒体的传输速率, 所述预设的窗长值小于 当前的窗长值。 23、 根据权利要求 17所述的装置, 其特征在于, 所述确定模块包括: 第二时间值获取单元, 用于获取预设的时钟对从首次发送所述流媒体 的数据包到发送当前的数据包进行计时的时间值; 第二当前播放时间计算单元, 用于将预先获取的首次发送的所述流媒 体的数据包的时间区间下限值与所述时间值相加, 得到所述流媒体的当前 播放时间; 第三检测单元, 用于检测所述当前发送的数据包的时间区间上限值; 第三确定单元, 用于将所述时间区间上限值与所述当前播放时间的差 值作为所述流媒体当前的緩冲参数。 24、根据权利要求 23所述的装置, 其特征在于, 速率降低控制模块包 括: 第一发送单元,用于以预设的传输速率向所述终端发送流媒体数据包, 所述预设的传输速率小于当前的传输速率。 25、 根据权利要求 17、 18、 20或 23所述的装置, 其特征在于, 还包 括: 标识位置零单元, 用于当所述流媒体当前的緩冲参数大于预设的第一 阈值时, 将预设的标识位的值设为零。 26、 根据权利要求 25所述的装置, 其特征在于, 还包括: 速率提高控制模块, 用于当所述流媒体当前的緩冲参数小于预设的第 二阈值且预设的标识位的值为零时, 提高所述流媒体的传输速率。 27、根据权利要求 26所述的装置, 其特征在于, 所述速率提高控制模 块包括: 第二 TCP消息发送单元,用于向流媒体服务器发送包括未减小的窗长 值的 TCP消息,以使得所述网络侧服务器使用所述未降低前的传输速率传 输所述流媒体。 28、根据权利要求 26所述的装置, 其特征在于, 所述速率提高控制模 块包括: 第二发送单元, 用于使用未降低之前的传输速率传输所述流媒体。 29、根据权利要求 26至 28任一项所述的装置, 其特征在于, 还包括: 标识位置 1单元, 用于当提高所述传速速率时, 将所述预设的标识位 的值设为 1。 30、 根据权利要求 17、 18、 20或 23所述的装置, 其特征在于, 还包 括: 第一阈值确定模块, 用于检测所述网络侧无线链路的负载量, 并依据 所述负载量确定所述预设的第一阈值。 31、 根据权利要求 17、 18、 20或 23所述的装置, 其特征在于, 还包 括: 接收模块, 用于接收网络侧预设的緩存单元发送给终端的流媒体数据 包。 32、 一种通信设备, 其特征在于, 包括: 输入输出接口, 用于接收网络侧向终端发送的流媒体数据包; 处理器, 用于依据网络侧向终端发送的流媒体数据包, 确定流媒体当 前的緩冲参数, 当所述流媒体当前的緩冲参数大于预设的第一阈值时, 降 低所述流媒体的传输速率。 33、根据权利要求 32所述的通信设备, 其特征在于, 所述处理器用于 依据网络侧向终端发送的流媒体数据包, 确定流媒体当前的緩冲参数具体 包括: 所述处理器获取预设的时钟对首次截获所述流媒体的数据包到截获当 前的数据包进行计时的时间值; 将预先获取的首次截获的所述流媒体的数 据包的时间区间下限值与所述时间值相加, 得到所述流媒体的当前播放时 间; 检测所述当前的数据包的时间区间上限值; 将所述时间区间上限值与 所述当前播放时间的差值作为所述流媒体当前的緩冲参数。 34、根据权利要求 32所述的通信设备, 其特征在于, 所述处理器用于 依据网络侧向终端发送的流媒体数据包, 确定流媒体当前的緩冲参数具体 包括: 所述处理器从播放器获取流媒体的当前播放时间; 检测所述当前的数 据包的时间区间上限值; 将所述时间区间上限值与所述当前播放时间的差 值作为所述流媒体当前的緩冲参数。 35、根据权利要求 32所述的通信设备, 其特征在于, 所述处理器用于 依据网络侧向终端发送的流媒体数据包, 确定流媒体当前的緩冲参数具体 包括: 所述处理器用于获取预设的时钟对从首次发送所述流媒体的数据包到 发送当前的数据包进行计时的时间值; 将预先获取的首次发送的所述流媒 体的数据包的时间区间下限值与所述时间值相加, 得到所述流媒体的当前 播放时间; 检测所述当前发送的数据包的时间区间上限值; 将所述时间区 间上限值与所述当前播放时间的差值作为所述流媒体当前的緩冲参数。 36、 根据权利要求 32所述的通信设备, 其特征在于, 还包括: 存储器, 用于存储所述流媒体当前的緩冲参数。 37、 根据权利要求 32至 36任一项所述通信设备, 其特征在于, 所述 通信设备为下面任意一个: 网元; 终端; 流媒体服务器; 网络侧緩存。 |
本发明涉及通信领域, 尤其涉及流媒体传输速率控制方法及装置、 通 信设备。 背景技术 流媒体是指在网络上应用流技术传输的多媒体 文件, 流媒体传输实现 了多媒体文件边播放边緩冲。 在流媒体播放的同时, 网络服务器会依据播 放终端的緩冲区的容量进行下载緩冲, 一般地, 终端的緩冲区可容纳的流 媒体的大小以分钟为单位, 即在播放的同时, 緩冲出的文件的大小往往是 几分钟、 十几分钟或者几十分钟。
有研究表明,超过一半的流媒体在用户观看的 一分钟内会被用户抛弃, 因此使用上述的流媒体传输方法, 当流媒体被停止播放后, 緩冲下载的几 分钟、 十几分钟或者几十分钟的资源是无用的, 当网络为有线网络时, 由 于带宽资源的独占性, 这种对下载带宽的浪费不是特别关注, 而当网络为 无线网络时, 因为无线空口的带宽有限且为多用户共享, 这种流媒体传输 方法则会造成无线空口带宽的显著浪费。
发明内容
有鉴于此, 本发明实施例提供了一种流媒体传输方法及装 置、 通信设 备, 目的在于解决现有的流媒体传输方法造成的空 口带宽的浪费的问题。
为了实现上述目的, 本发明实施例提供了以下技术方案:
本发明提供了一种流媒体传输方法, 包括:
依据网络侧向终端发送的流媒体数据包,确定 流媒体当前的緩冲参数; 当所述流媒体当前的緩冲参数大于预设的第一 阈值时, 降低所述流媒 体的传输速率。
在所述方法的第一种可能的实现方式中, 所述依据网络侧向终端发送 的流媒体数据包, 确定流媒体当前的緩冲参数包括:
获取预设的时钟对首次截获所述流媒体的数据 包到截获当前的数据包 进行计时的时间值;
将预先获取的首次截获的所述流媒体的数据包 的时间区间下限值与所 述时间值相加, 得到所述流媒体的当前播放时间;
检测所述当前的数据包的时间区间上限值;
将所述时间区间上限值与所述当前播放时间的 差值作为所述流媒体当 前的緩冲参数。
在所述方法的第二种可能的实现方式中, 所述依据网络侧向终端发送 的流媒体数据包, 确定流媒体当前的緩冲参数包括:
从播放器获取流媒体的当前播放时间;
检测所述当前的数据包的时间区间上限值;
将所述时间区间上限值与所述当前播放时间的 差值作为所述流媒体当 前的緩冲参数。
在所述方法的第三种可能的实现方式中, 所述依据网络侧向终端发送 的流媒体数据包, 确定流媒体当前的緩冲参数包括:
获取预设的时钟对从首次发送所述流媒体的数 据包到发送当前的数据 包进行计时的时间值;
将预先获取的首次发送的所述流媒体的数据包 的时间区间下限值与所 述时间值相加, 得到所述流媒体的当前播放时间;
检测所述当前发送的数据包的时间区间上限值 ;
将所述时间区间上限值与所述当前播放时间的 差值作为所述流媒体当 前的緩冲参数。
本发明还提供了一种流媒体传输装置, 包括:
确定模块, 用于依据网络侧向终端发送的流媒体数据包, 确定流媒体 当前的緩冲参数;
速率降低控制模块, 用于当所述流媒体当前的緩冲参数大于预设的 第 一阈值时, 降低所述流媒体的传输速率。
在所述装置的第一中可能的实现方式中, 所述确定模块包括: 第一时间值获取单元, 用于获取预设的时钟对首次截获所述流媒体的 数据包到截获当前的数据包进行计时的时间值 ; 第一当前播放时间计算单元, 用于将预先获取的首次截获的所述流媒 体的数据包的时间区间下限值与所述时间值相 加, 得到所述流媒体的当前 播放时间;
第一检测单元, 用于检测所述当前的数据包的时间区间上限值 ; 第一确定单元, 用于将所述时间区间上限值与所述当前播放时 间的差 值作为所述流媒体当前的緩冲参数。
在所述装置的第二中可能的实现方式中, 所述确定模块包括: 当前播放时间获取单元, 用于从播放器获取流媒体的当前播放时间; 第二检测单元, 用于检测所述当前的数据包的时间区间上限值 ; 第二确定单元, 用于将所述时间区间上限值与所述当前播放时 间的差 值作为所述流媒体当前的緩冲参数。
在所述装置的第三中可能的实现方式中, 所述确定模块包括: 第二时间值获取单元, 用于获取预设的时钟对从首次发送所述流媒体 的数据包到发送当前的数据包进行计时的时间 值;
第二当前播放时间计算单元, 用于将预先获取的首次发送的所述流媒 体的数据包的时间区间下限值与所述时间值相 加, 得到所述流媒体的当前 播放时间;
第三检测单元, 用于检测所述当前发送的数据包的时间区间上 限值; 第三确定单元, 用于将所述时间区间上限值与所述当前播放时 间的差 值作为所述流媒体当前的緩冲参数。
本发明还提供了一种通信设备, 包括:
输入输出接口, 用于接收网络侧向终端发送的流媒体数据包; 处理器, 用于依据网络侧向终端发送的流媒体数据包, 确定流媒体当 前的緩冲参数, 当所述流媒体当前的緩冲参数大于预设的第一 阈值时, 降 低所述流媒体的传输速率。
在所述通信设备的第一种实现方式中, 所述处理器用于依据网络侧向 终端发送的流媒体数据包, 确定流媒体当前的緩冲参数具体包括:
所述处理器获取预设的时钟对首次截获所述流 媒体的数据包到截获当 前的数据包进行计时的时间值; 将预先获取的首次截获的所述流媒体的数 据包的时间区间下限值与所述时间值相加, 得到所述流媒体的当前播放时 间; 检测所述当前的数据包的时间区间上限值; 将所述时间区间上限值与 所述当前播放时间的差值作为所述流媒体当前 的緩冲参数。
在所述通信设备的第二种实现方式中, 所述处理器用于依据网络侧向 终端发送的流媒体数据包, 确定流媒体当前的緩冲参数具体包括:
所述处理器从播放器获取流媒体的当前播放时 间; 检测所述当前的数 据包的时间区间上限值; 将所述时间区间上限值与所述当前播放时间的 差 值作为所述流媒体当前的緩冲参数。
在所述通信设备的第三种实现方式中, 所述处理器用于依据网络侧向 终端发送的流媒体数据包, 确定流媒体当前的緩冲参数具体包括:
所述处理器用于获取预设的时钟对从首次发送 所述流媒体的数据包到 发送当前的数据包进行计时的时间值; 将预先获取的首次发送的所述流媒 体的数据包的时间区间下限值与所述时间值相 加, 得到所述流媒体的当前 播放时间; 检测所述当前发送的数据包的时间区间上限值 ; 将所述时间区 间上限值与所述当前播放时间的差值作为所述 流媒体当前的緩冲参数。
本发明实施例公开的流媒体传输方法及装置、 通信设备,依据网络侧 向终端发送的流媒体数据包, 计算流媒体当前的緩冲参数, 当所述緩冲参 数大于预设的第一阈值时, 说明流媒体的传输速率过高, 则降低流媒体的 传输速率, 因此, 通过预先设置第一阈值可以限制无线网络中流 媒体的传 输速率, 使得在播放流媒体时, 不会緩冲过多的资源, 所以即使流媒体在 播完之前被停止, 也能够最大限度地减轻对无线空口带宽的浪费 , 从而降 低了不必要的网络传输, 提高了无线资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中 的技术方案, 下面将对 实施例或现有技术描述中所需要使用的附图作 简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例 , 对于本领域普通技术人员 来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附 图。
图 1为本发明实施例公开的一种流媒体传输方法 流程图; 图 2为本发明实施例公开的又一种流媒体传输方 的流程图; 图 3为本发明实施例公开的又一种流媒体传输方 的流程图; 图 4为本发明实施例公开的一种流媒体传输方法 确定第一阈值的方 法的流程图;
图 5为本发明实施例公开的一种流媒体传输装置 结构示意图; 图 6为本发明实施例公开的一种通信设备的结构 意图。
具体实施方式
本发明实施例公开了一种流媒体传输方法, 当流媒体服务器和终端之 间建立流媒体传输通道并开始传输流媒体数据 包后, 移动通信网络根据服 务器向终端发送的流媒体数据包, 计算流媒体当前的緩冲参数, 当所述流 媒体当前的緩冲参数大于预设的第一阈值时, 降低所述流媒体的传输速率。 所述方法也可以应用于流媒体服务器或终端, 通过预先设置的第一阈值来 限制无线网络中流媒体的緩冲速度, 使得流媒体不会緩冲过多的内容, 因 而能够限制流媒体数据包对空口带宽的占用, 从而避免对空口资源的浪费。
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进 行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没 有做出创造性劳动前提下所获得的所有其他实 施例 , 都属于本发明保护的 范围。
本实施例中公开了一种流媒体传输方法, 可以应用于 3GPP网络中执 行数据包深度检测的网元上, 例如, P-GW、 S-GW、 GGSN、 SGSN、 RNC、 UTRAN或 E-UTRAN等, 也可以应用于为本实施例所述方法新增的媒流 体处理网元上。 在流媒体服务器与终端建立传输通道并通过所 述传输通道 向终端发送流媒体数据包时, 如图 1所示, 所述方法包括:
S101 : 获取预设的时钟对首次截获所述流媒体的数据 包到截获当前的 数据包进行计时的时间值;
在流媒体服务器向终端发送流媒体数据包时, 本实施例中, 网元截获 这些数据包, 因为流媒体服务器发出的数据包有可能丟失, 所以, 首次截 获的数据包是指, 网元第一个截获到的用户请求的流媒体文件的 数据包, 首次截获的数据包有可能是流媒体服务器发送 的第一个数据包, 也可能是 流媒体服务器发送的其它数据包。
本实施例中, 预设的时钟可以为 3GPP网络中已有的时钟, 也可以是 为本实施例所述方法设置的时钟。
本实施例优选为所述方法单独设置的时钟, 时钟的初始值优选设置为
0,从首次截获流媒体的数据包开始计时,计 的时间单位与数据包的时间 单位相同, 将从首次截获流媒体的数据包到截获当前数据 包进行计时的时 间值为 T, 如果当前数据包即为首次截获的数据包, 则 τ=ο。
S102: 将预先获取的首次截获的所述流媒体的数据包 的时间区间下限 值, 记为 CPT1 , 与所述时间值相加, 得到所述流媒体的当前播放时间, 这里将当前播放时间记为 CPT, 即 CPT=CPT1+T;
流媒体数据包中通常包括自身数据的时长区间 , 此区间的上限称为数 据包的时间区间上限值, 下限称为数据包的时间区间下限值, 例如数据包 的时长为 20S--100S, 则 20称为其时间区间下限值, 100称为其时间区间 上限值。
将首次截获的数据包的时间区间下限值与 S101 中的时间值 T相加, 得到的为所述流媒体的当前播放时间, 当前播放时间反映的是流媒体在终 端的播放进度, 因为网元不清楚终端播放流媒体的情况, 因此, 需要通过 上述计算过程对流媒体的当前播放进度进行估 计。
如果当前数据包为首次截获的流媒体数据包, 则 CPT等于其时间区间 下限值。
S103: 检测所述当前的数据包的时间区间上限值;
这里将当前的数据包的时间区间上限值记为 TTI。
S104: 将所述时间区间上限值与所述当前播放时间的 差值作为所述流 媒体当前的緩冲参数, 即: GAP= TTI-CPT;
S105: 判断当前的緩冲参数是否满足 GAP>GAPmax, 如果是, 则执 行 S106, 如果否, 执行 S111 ;
其中 GAPmax为预设的第一阈值, 可以由用户预先定义, 也可以依据 网络的状态进行确定。 S106: 向流媒体服务器发送包含预设的窗长值的 TCP消息, 以使得流 媒体服务器降低所述流媒体的传输速率;
通常, 在终端向流媒体服务器发送 TCP消息时, 会将本地的緩存空间 的大小通知流媒体服务器, 窗长值的作用即为指示终端本地的緩冲空间的 大小, 本实施例中, 所述预设的窗长值小于当前的窗长值, 可以设置为零, 或者当前窗长值 /M, 所述 M为自然数, 例如, 当前窗长值的二分之一。
S107: 将预设的标识位的值设置为零;
本实施例中, 预设的标识位的作用为指示当前的窗长值是否 是被减小 后的窗长值, 标识位的默认值或初始值可以设定为 1 , 当窗长值被减小后, 将其设置为 0, 如果窗长值没有被减小, 则保持不变。
S 106和 S 107的顺序可以改变。
S108: 截获所述终端向所述流媒体服务器发送的应答 数据包;
S109: 减小所述应答数据包中的窗长值;
本实施例中, 优选将窗长值减小为上述预设的窗长值。
S110: 将修改后的应答数据包发送到流媒体服务器。
通常, 终端在接收到流媒体服务器发送的数据包后, 会回复应答数据 包, 应答数据包中携带依据终端的緩冲区设定的窗 长值, 使得网络侧服务 器在接收到应答数据包后, 使用与窗长值对应的传输速率发送数据包, 而 本实施例中, 应到数据包被网元截获, 将其中的窗长值减小。
S111 : 判断当前的緩冲参数是否满足 GAP<GAPmin, 如果是, 则执行
S112, 如果否, 不作处理;
其中, GAPmin为预设的第二阈值, 可以由用户自定义。
S112: 判断标识位的值是否为 0, 如果否, 则不作处理, 如果是 0, 执 行 S113;
S113: 向流媒体服务器发送包括未减小的窗长值的 TCP消息, 以使得 所述流媒体服务器使用所述未降低前的传输速 率传输所述流媒体;
S114: 将所述标识位的值设置为 1 ;
设置标识位的目的在于, 如果当前的数据包为首个数据包, 当前的传 输速率一定为没有经过降低的正常的传输速率 , 此时即使当前的緩冲参数 小于预设的第二阈值, 也不调整当前的传输速率。
本实施例所述的流媒体传输方法, 网元截获流媒体服务器向终端发送 的流媒体数据包, 并计算流媒体当前的緩冲参数, 依据緩冲参数调整流媒 体的传输速率, 当流媒体在终端进行播放时, 不会被緩冲太多的余量, 因 此, 当用户停止观看, 也能将对无线空口资源的浪费降低到最低程度 。
本发明实施例公开的又一种流媒体传输方法, 应用于终端, 所述终端 向流媒体服务器发起流媒体播放请求, 流媒体服务器与终端建立流媒体传 输通道, 如图 2所示, 所述方法包括:
S201 : 从播放器获取流媒体的当前播放时间 CPT;
对于终端而言, 媒流体的当前播放时间直接从播放器获取即可 , 不必 再进行计算。
S202: 检测所述当前的数据包的传输时长, 记为 TTI;
S203: 将所述时间区间上限值与所述当前播放时间的 差值作为所述流 媒体当前的緩冲参数, 当前的緩冲参数记为 GAP=TTI-CPT;
S204: 判断 GAP>GAPmax是否成立, 如果是, 执行 S205 , 如果否, 执行 S207;
S205: 向流媒体服务器发送包含预设的窗长值的 TCP消息, 所述预设 的窗长值小于当前的窗长值;
此步骤的目的在于使得所述流媒体服务器降低 所述流媒体的传输速 率, 其中预设的窗长值的设定方法与上述实施例相 同, 这里不再贅述。
S206: 将预设的标识位设置为零;
所述预设的标识位的默认值可以为 1。
S207: 判断当前的緩冲参数是否满足 GAP<GAPmin, 如果是, 则执行 S208, 如果否, 不作处理;
S208: 判断标识位的当前值是否为零, 如果是, 执行 S209, 如果否, 则不作处理。
本实施例中, 不作处理是指不进行本发明范畴中对传输速率 相关的处 理, 实际应用中, 可以按照终端对流媒体数据包的常规处理进行 。
S209: 向流媒体服务器发送包括未减小的窗长值的 TCP消息, 以使得 所述网络侧服务器使用未降低前的传输速率传 输所述流媒体。
S210: 将所述标识位的值设置为 1 ;
S211 : 接收暂停播放流媒体的指令;
暂停播放流媒体的指令通常由应用层依据用户 的指令发出。
S212: 向所述流媒体服务器发送包含窗长值为零的 TCP消息, 以使得 所述网络侧服务器停止传输所述流媒体。
现有技术中, 当用户暂停流媒体的播放时, 流媒体仍然处于緩冲状态, 即緩冲余量持续增加, 也就是说, 流媒体服务器并不停止流媒体数据包的 传输, 与现有技术不同的是, 本实施例中, 在用户暂停流媒体播放时, 终 端向网络侧服务器发送 TCP消息, 指示流媒体服务器终端的緩存为零, 流 媒体服务器则停止传输数据包, 对于 3GPP网络而言, 能够节省宝贵的空 口带宽。
需要说明的是, S211和 S212也可以在 S201之前进行, 其与调整传输 速率的步骤的执行顺序可以进行调整。
本实施例所述的流媒体传输方法, 由终端依据接收的数据包计算当前 的緩冲参数, 通过向流媒体服务器发送 TCP消息的方式, 控制流媒体的传 输速率, 从而能够限制的流媒体的下载速率, 节省空口带宽。
本发明实施例公开的又一种流媒体传输方法, 应用于流媒体服务器, 流媒体服务器与终端间建立流媒体传输通道, 向终端发送流媒体数据包, 如图 3所示, 所述方法包括:
S301 : 获取预设的时钟对从首次发送所述流媒体的数 据包到发送当前 的数据包进行计时的时间值;
S302: 将预先获取的首次发送的所述流媒体的数据包 的时间区间下限 值 CPT1与所述时间值 T相加, 得到所述流媒体的当前播放时间 CPT; 对于流媒体服务器而言, 与网元类似, 同样需要通过计算估计终端流 媒体的播放进度, 与网元不同的是, 流媒体服务器只需依据自身向终端发 送的数据包进行计算。
S303: 检测所述当前发送的数据包的时间区间上限值 , 记为 TTI; S304: 将所述时间区间上限值与所述当前播放时间的 差值作为所述流 媒体当前的緩冲参数, 即 GAP=TTI-CPT;
S305: 判断 GAP>GAPmax是否成立, 如果是, 执行 S306, 如果否, 执行 S308;
S306: 以预设的传输速率向所述终端发送流媒体数据 包;
预设的传输速率小于当前的传输速率。
S307: 将预设的标识位的值设为零;
S308: 判断当前的緩冲参数是否满足 GAP<GAPmin, 如果是, 则执行 S309, 如果否, 不作处理;
S309: 判断标识位的值是否为 0, 如果是, 执行 S310, 如果否, 不作 处理;
S310: 使用未降低之前的传输速率传输所述流媒体。
S311 : 将所述标识位的值设置为 1。
也就是说, 传速速率降低后将标识位设置为 0, 传输速率恢复后将标 识位设置为 1 , 从而将标识位作为是否降低速率的判定条件之 一, 如果标 识位为 1 , 说明传输速率没有被降低, 则即使当前的 GAP大于预设的第一 阈值, 也不进行提高传输速率的操作。
本实施例所述的流媒体传输方法, 执行主体为流媒体服务器, 流媒体 服务器依据发送的数据包计算得到流媒体当前 的緩冲参数, 用来修正发送 数据包的速率, 从而节省网络资源。
需要说明的是, 上述全部实施例都着眼于当前的数据包, 也就是当截 获、 接收或发送数据包时, 进行緩冲余量的计算以及传输速率的控制, 也 就是说, 上述实施例所述的方法, 依据数据包的发送周期进行, 但是本发 明不限定于此, 还可以以緩冲参数的时间单位为周期进行, 例如, GAP值 以秒为单位, 则所述方法可以以 1S为周期进行, 即每隔 1S计算一次緩冲 参数, 并依据緩冲参数修订传输速率。
上述全部实施例中, 对流媒体传输速率的控制以流媒体自身的下载 量 为依据, 关注点在于流媒体本身, 而没有关注网络当前的状况。
本发明还公开了一种依据网络状态设置上述实 施例中预设的第一阈值 的方法, 如图 4所示, 包括: S401 : 检测所述网络侧无线链路的负载量;
S402: 依据所述负载量确定所述预设的第一阈值。
本实施例所述的方法, 依据网络中无线链路的负载量确定预设的第一 阈值, 即 GAPmax的值, 具体地, GAPmax=K*GAPmax, K是一个无线链 路繁忙状态相关的参数, 一般情况 K取值为 1 , 当网络繁忙时 K变小, 当 网络空闲时候 K变大, 也就是说, 当网络繁忙时, 减小第一阈值, 当网络 空闲时, 增大第一阈值, 与上述实施例中第一阈值固定的情况, 在考虑流 媒体自身情况的同时, 兼顾了无线网络的状态, 能够更为有效地使用无线 网络。 本实施例所述的第一阈值的确定调整方法适用 于以上全部实施例。
进一步, 以上全部实施例中, 向终端发送流媒体数据包的是流媒体服 务器, 除此以外, 终端也可以通过访问网络中设置的緩存单元获 取流媒体 数据包。
为了加速移动网络的流媒体数据分发, 往往会在 3GPP网络内放置緩 存单元( Cache )。 当 UE访问的内容被緩存在 Cache时, UE可以从 Cache 获取网络资源, 而无需去访问流媒体服务器。 因此, 上述全部实施例中的 流媒体服务器均可被緩存单元代替, 这里不再贅述。
与上述方法实施例相对应的, 本发明还公开了一种流媒体传输装置, 如图 5所示, 包括
确定模块 501 , 用于依据网络侧向终端发送的流媒体数据包, 确定流 媒体当前的緩冲参数;
速率降低控制模块 502, 用于当所述流媒体当前的緩冲参数大于预设 的第一阈值时, 降低所述流媒体的传输速率。
本实施例所述的装置可以用于网元、 终端或流媒体服务器, 通过预先 设置的第一阈值来限制无线网络中流媒体的緩 冲速度, 使得流媒体不会緩 冲过多的内容, 因而能够限制流媒体数据包对空口带宽的占用 , 从而避免 对空口资源的浪费。
进一步地, 当所述装置用于网元时, 具体包括:
第一时间值获取单元, 用于获取预设的时钟对首次截获所述流媒体的 数据包到截获当前的数据包进行计时的时间值 ; 第一当前播放时间计算单元, 用于将预先获取的首次截获的所述流媒 体的数据包的时间区间下限值与所述时间值相 加, 得到所述流媒体的当前 播放时间;
第一检测单元, 用于检测所述当前的数据包的时间区间上限值 ; 第一确定单元, 用于将所述时间区间上限值与所述当前播放时 间的差 值作为所述流媒体当前的緩冲参数;
应答数据包截获单元, 用于截获所述终端向所述流媒体服务器发送的 应答数据包, 减小所述应答数据包中的窗长值, 并将修改后的应答数据包 发送到网络侧服务器;
第一 TCP消息发送单元,用于当所述流媒体当前的緩 冲参数大于预设 的第一阈值时, 向流媒体服务器发送包含预设的窗长值的 TCP消息, 以使 得所述流媒体服务器降低所述流媒体的传输速 率, 所述预设的窗长值小于 当前的窗长值;
标识位置零单元, 用于当所述流媒体当前的緩冲参数大于预设的 第一 阈值时, 将预设的标识位的值设为零;
速率提高控制模块, 用于当所述流媒体当前的緩冲参数小于预设的 第 二阈值且预设的标识位的值为零时,提高所述 流媒体的传输速率,具体地, 所述速率提高单元可以为: 第二 TCP消息发送单元, 用于向流媒体服务器 发送包括未减小的窗长值的 TCP消息,以使得所述网络侧服务器使用所述 未降低前的传输速率传输所述流媒体。
标识位置 1单元, 用于当提高所述传速速率时, 将所述预设的标识位 的值设为 1。
进一步地, 当所述装置用于终端时, 具体包括:
当前播放时间获取单元, 用于从播放器获取流媒体的当前播放时间; 第二检测单元, 用于检测所述当前的数据包的时间区间上限值 ; 第二确定单元, 用于将所述时间区间上限值与所述当前播放时 间的差 值作为所述流媒体当前的緩冲参数。
第一 TCP消息发送单元,用于当所述流媒体当前的緩 冲参数大于预设 的第一阈值时, 向流媒体服务器发送包含预设的窗长值的 TCP消息, 以使 得所述流媒体服务器降低所述流媒体的传输速 率, 所述预设的窗长值小于 当前的窗长值。
标识位置零单元, 用于当所述流媒体当前的緩冲参数大于预设的 第一 阈值时, 将预设的标识位的值设为零。
速率提高控制模块, 用于当所述流媒体当前的緩冲参数小于预设的 第 二阈值且预设的标识位的值为零时,提高所述 流媒体的传输速率,具体地, 所述速率提高单元可以为: 第二 TCP消息发送单元, 用于向网络侧服务器 发送将传输速率恢复到降低之前的值的 TCP消息,以使得所述网络侧服务 器使用所述未降低前的传输速率传输所述流媒 体;
标识位置 1单元, 用于当提高所述传速速率时, 将所述预设的标识位 的值设为 1 ;
暂停指令发送单元, 用于当接收到暂停播放流媒体的指令后, 向所述 流媒体服务器发送包含窗长值为零的 TCP消息,以使得所述流媒体服务器 停止传输所述流媒体。
进一步地, 当所述装置用于流媒体服务器时, 具体包括:
第二时间值获取单元, 用于获取预设的时钟对从首次发送所述流媒体 的数据包到发送当前的数据包进行计时的时间 值;
第二当前播放时间计算单元, 用于将预先获取的首次发送的所述流媒 体的数据包的时间区间下限值与所述时间值相 加, 得到所述流媒体的当前 播放时间;
第三检测单元, 用于检测所述当前发送的数据包的时间区间上 限值; 第三确定单元, 用于将所述时间区间上限值与所述当前播放时 间的差 值作为所述流媒体当前的緩冲参数;
第一发送单元,用于以预设的传输速率向所述 终端发送流媒体数据包, 所述预设的传输速率小于当前的传输速率;
标识位置零单元, 用于当所述流媒体当前的緩冲参数大于预设的 第一 阈值时, 将预设的标识位的值设为零;
速率提高控制模块, 用于当所述流媒体当前的緩冲参数小于预设的 第 二阈值且预设的标识位的值为零时,提高所述 流媒体的传输速率,具体地, 所述速率提高控制模块可以为: 第二发送单元, 用于使用未降低之前的传 输速率传输所述流媒体;
标识位置 1单元, 用于当提高所述传速速率时, 将所述预设的标识位 的值设为 1。
进一步地, 所述装置还包括:
第一阈值确定模块, 用于检测所述网络侧无线链路的负载量, 并依据 所述负载量确定所述预设的第一阈值。
接收模块, 用于接收网络侧预设的緩存单元发送给终端的 流媒体数据 包。
本发明还公开了一种通信设备, 如图 6所示, 包括:
输入输出接口 601 , 用于接收网络侧向终端发送的流媒体数据包; 处理器 602, 用于依据网络侧向终端发送的流媒体数据包, 确定流媒 体当前的緩冲参数,当所述流媒体当前的緩冲 参数大于预设的第一阈值时, 降低所述流媒体的传输速率;
进一步地, 本实施例中, 处理器依据网络侧向终端发送的流媒体数据 包, 确定流媒体当前的緩冲参数的具体过程可以为 :
所述处理器可以用于获取预设的时钟对首次截 获所述流媒体的数据包 到截获当前的数据包进行计时的时间值; 将预先获取的首次截获的所述流 媒体的数据包的时间区间下限值与所述时间值 相加, 得到所述流媒体的当 前播放时间; 检测所述当前的数据包的时间区间上限值; 将所述时间区间 上限值与所述当前播放时间的差值作为所述流 媒体当前的緩冲参数;
或者, 所述处理器还用于从播放器获取流媒体的当前 播放时间; 检测 所述当前的数据包的时间区间上限值; 将所述时间区间上限值与所述当前 播放时间的差值作为所述流媒体当前的緩冲参 数;
或者, 所述处理器还获取预设的时钟对从首次发送所 述流媒体的数据 包到发送当前的数据包进行计时的时间值; 将预先获取的首次发送的所述 流媒体的数据包的时间区间下限值与所述时间 值相加, 得到所述流媒体的 当前播放时间; 检测所述当前发送的数据包的时间区间上限值 ; 将所述时 间区间上限值与所述当前播放时间的差值作为 所述流媒体当前的緩冲参 数。
除此以外, 还可以优选包括:
存储器 603 , 用于存储所述流媒体当前的緩冲参数。
本实施例所述的通信设备, 可以为 3GPP网络的网元、 终端或流媒体 服务器, 也可以为网络侧緩存。 所述通信设备依据计算得到的緩冲参数控 制流媒体的当前传输速率, 能够避免不必要的数据包传输, 从而提高无线 接口的利用率。
本实施例方法所述的功能如果以软件功能单元 的形式实现并作为独立 的产品销售或使用时, 可以存储在一个计算设备可读取存储介质中。 基于 这样的理解, 本发明实施例对现有技术做出贡献的部分或者 该技术方案的 部分可以以软件产品的形式体现出来,该软件 产品存储在一个存储介质中, 包括若干指令用以使得一台计算设备(可以是 个人计算机, 服务器, 移动 计算设备或者网络设备等)执行本发明各个实 施例所述方法的全部或部分 步骤。 而前述的存储介质包括: U盘、 移动硬盘、 只读存储器(ROM, Read-Only Memory )、 随机存取存储器(RAM, Random Access Memory ) 、 磁碟或者光盘等各种可以存储程序代码的介质 。
本说明书中各个实施例采用递进的方式描述, 每个实施例重点说明的 都是与其它实施例的不同之处, 各个实施例之间相同或相似部分互相参见 即可。
对所公开的实施例的上述说明, 使本领域专业技术人员能够实现或使 用本发明。 对这些实施例的多种修改对本领域的专业技术 人员来说将是显 而易见的, 本文中所定义的一般原理可以在不脱离本发明 的精神或范围的 情况下, 在其它实施例中实现。 因此, 本发明将不会被限制于本文所示的 这些实施例, 而是要符合与本文所公开的原理和新颖特点相 一致的最宽的 范围。