Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR ESTIMATING TEMPORARY STORAGE STATUS
Document Type and Number:
WIPO Patent Application WO/2014/134932
Kind Code:
A1
Abstract:
Embodiments of the present invention provide a method and a device for estimating a temporary storage status. The method comprises: obtaining first continuous play duration corresponding to medium data received by a terminal in this status estimation period; calculating second continuous play duration corresponding to medium data currently temporarily stored, according to a temporary storage status before this status estimation and the first continuous play duration; and estimating the temporary storage status and obtaining this temporary storage status and a start time and duration of this temporary storage status, according to the temporary storage status before this status estimation, a preset temporary storage configuration parameter and the second continuous play duration, the temporary storage state comprising at least one of an initial temporary storage state, a normal play status, a status of again temporarily storing, a play end status and a play stop status. By means of the technical solutions in the present invention, the problem of temporary storage status estimation in an audio and video application implemented based on a TCP.

Inventors:
CHEN BING (CN)
GAO SHAN (CN)
Application Number:
PCT/CN2013/087558
Publication Date:
September 12, 2014
Filing Date:
November 21, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
H04N21/8547; H04N21/65
Foreign References:
CN102547449A2012-07-04
CN102196312A2011-09-21
CN101534400A2009-09-16
US20020128788A12002-09-12
Other References:
See also references of EP 2955930A4
Attorney, Agent or Firm:
LEADER PATENT & TRADEMARK FIRM (CN)
北京同立钧成知识产权代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求 书

1、 一种缓存状态估计方法, 其特征在于, 包括:

获取终端在本次状态估计周期内接收的媒体数据对应的第一持续播 放时长;

根据本次状态估计前的缓存状态以及所述第一持续播放时长, 计算当 前缓存中的媒体数据对应的第二持续播放时长;

根据所述本次状态估计前的缓存状态、 预设的缓存配置参数和所述第 二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以及本次 缓存状态的开始时间和持续时间, 其中所述缓存的状态包括初始缓冲状 态、 正常播放状态、 再缓冲状态、 结束播放状态和停止播放状态中的至少 一个。

2、 根据权利要求 1所述的缓存状态估计方法, 其特征在于, 所述获 取终端在本次状态估计周期内接收的媒体数据对应的第一持续播放时长, 包括:

根据所述终端在本次状态估计周期内接收的媒体数据的字节数和当 前媒体码率, 计算所述第一持续播放时长; 或者

解析所述终端在本次状态估计周期内接收的媒体数据, 获得所述终端 在本次状态估计周期内接收的媒体数据的帧数;

根据所述终端在本次状态估计周期内接收的媒体数据的帧数和当前 媒体帧率, 计算所述第一持续播放时长。

3、 根据权利要求 2所述的缓存状态估计方法, 其特征在于, 所述根 据所述终端在本次状态估计周期内接收的媒体数据的字节数和当前媒体 码率, 计算所述第一持续播放时长之前, 包括:

接收所述终端发送的反馈报文, 所述反馈报文是所述终端针对在本次 状态估计周期内接收的媒体数据所发送的, 根据所述反馈报文, 获取所述 终端在本次状态估计周期内接收的媒体数据的字节数; 或者,

解析所述终端在本次状态估计周期内接收的媒体数据, 获取所述终端 在本次状态估计周期内接收的媒体数据的字节数。

4、 根据权利要求 1所述的缓存状态估计方法, 其特征在于, 所述获 取终端在本次状态估计周期内接收的媒体数据对应的第一持续播放时长, 包括:

解析所述终端在本次状态估计周期内接收的媒体数据, 获取所述媒体 数据包括的完整帧的最大解码时间戳 DTS和最小解码时间戳 DTS , 或获取 所述媒体数据包括的完整帧的最大显示时间戳 PTS和最小显示时间戳 PTS ;

以所述最大 DTS与所述最小 DTS之差作为所述第一持续播放时长, 或 者以所述最大 PTS与所述最小 PTS之差作为所述第一持续播放时长。

5、 根据权利要求 1-4任一项所述的缓存状态估计方法, 其特征在于, 所述根据本次状态估计前的缓存状态以及所述第一持续播放时长, 计算当 前缓存中的媒体数据对应的第二持续播放时长, 包括:

如果所述本次状态估计前的缓存状态是除所述正常播放状态之外的 其他的缓存状态, 则将到上一次状态估计结束时所述缓存中媒体数据对应 的持续播放时长与所述第一持续播放时长之和作为所述第二持续播放时 长;

如果所述本次状态估计前的缓存状态是所述正常播放状态, 则以到上一次 状态估计结束时所述缓存中媒体数据对应的持续播放时长与所述第一持续播 放时长之和, 减去所述本次状态估计周期内正常播放所需的媒体数据对应的 持续播放时长, 得到所述第二持续播放时长。

6、 根据权利要求 1-5任一项所述的缓存状态估计方法, 其特征在于, 所述缓存配置参数包括: 初始缓冲时间和再缓冲时间;

所述初始缓冲时间是指在所述终端第一次播放媒体数据前, 为实现正 常播放所述缓存中最少应该存储的媒体数据对应的持续播放时长;

所述再缓冲时间是指从所述终端播放媒体数据过程中再缓冲开始, 到 所述终端重新播放媒体数据前, 所述缓存中最少应该存储的媒体数据对应 的持续播放时长;

所述根据所述本次状态估计前的缓存状态、 预设的缓存配置参数和所 述第二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以及 本次缓存状态的开始时间和持续时间, 包括:

如果所述本次状态估计前的缓存状态为所述初始缓冲状态, 在所述第 二持续播放时长大于或等于所述初始缓冲时间时, 确定本次缓存状态为正 常播放状态并记录本次缓存状态的开始时间和持续时间, 或者, 在所述第 二持续播放时长小于所述初始缓冲时间时, 确定本次缓存状态为所述初始 缓冲状态并更新本次缓存状态的持续时间;

如果所述本次状态估计前的缓存状态为所述再缓冲状态, 在所述第二 持续播放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播 放状态并记录本次缓存状态的开始时间和持续时间, 或者, 在所述第二持 续播放时长小于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更 新本次缓存状态的持续时间。

7、 根据权利要求 1-5任一项所述的缓存状态估计方法, 其特征在于, 还包括:

如果所述本次状态估计前的缓存状态为所述正常播放状态, 在所述第 二持续播放时长小于或等于预设门限, 确定本次缓冲状态为再缓冲状态并 记录本次缓冲状态的开始时间和持续时间, 在所述第二持续播放时长大于 所述预设门限时, 确定本次缓存状态为正常播放状态并更新本次缓存状态 的持续时间。

8、 根据权利要求 1-5任一项所述的缓存状态估计方法, 其特征在于, 还包括:

如果所述本次状态估计前的缓存状态为所述正常播放状态, 在所述最 大 DTS或最大 PTS小于本次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本次缓冲状态的开始时间和持续 时间, 在所述最大 DTS或最大 PTS大于或等于本次状态估计周期内正常播 放所需的 DTS或 PTS时, 确定本次缓存状态为正常播放状态并更新本次缓 存状态的持续时间。

9、 根据权利要求 1-5任一项所述的缓存状态估计方法, 其特征在于, 还包括:

如果所述本次状态估计前的缓存状态为所述结束播放状态, 确定本次 缓存状态为结束播放状态。

10、根据权利要求 1-5任一项所述的缓存状态估计方法,其特征在于, 还包括:

如果所述本次状态估计前的缓存状态为所述停止播放状态, 确定本次 缓存状态为停止播放状态。

11、 根据权利要求 6-10任一项所述的缓存状态估计方法, 其特征在 于,

在本次缓存状态与所述本次状态估计前的缓存状态不一致时, 所述记 录本次缓存状态的开始时间和持续时间, 包括:

根据所述第一持续播放时长和所述本次状态估计前的缓存状态, 更新 当前媒体数据自身播放进度对应的时间点, 根据更新后的媒体数据自身播 放进度对应的时间点获取本次缓存状态的开始时间和持续时间。

12、 根据权利要求 1-11任一项所述的缓存状态估计方法, 其特征在 于, 所述获取本次缓存状态以及本次缓存状态的开始时间和持续时间之 后, 还包括:

根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间和持续 时间进行修正。

13、 根据权利要求 12所述的缓存状态估计方法, 其特征在于, 所述 用户请求包括: 播放请求、 重新播放请求、 搜索请求、 停止播放请求或结 束播放请求;

所述根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间和 持续时间进行修正, 包括:

如果所述用户请求为所述播放请求或所述搜索请求, 则将本次缓存状 态修正为初始缓冲状态并记录修正后本次缓存状态的开始时间和持续时 间;

如果所述用户请求为所述重新播放请求, 则将本次缓存状态修正为正 常播放状态并记录修正后本次缓存状态的开始时间和持续时间;

如果所述用户请求为所述结束播放请求, 则将本次缓存状态修正为结 束播放状态并记录修正后本次缓存状态的开始时间和持续时间;

如果所述用户请求为所述停止播放请求, 则将本次缓存状态修正为停 止播放状态并记录修正后本次缓存状态的开始时间和持续时间。

14、 一种缓存状态估计设备, 其特征在于, 包括:

第一获取模块, 用于获取终端在本次状态估计周期内接收的媒体数据 对应的第一持续播放时长; 计算模块, 用于根据本次状态估计前的缓存状态以及所述第一持续播 放时长, 计算当前缓存中的媒体数据对应的第二持续播放时长;

状态估计模块, 用于根据所述本地状态估计前的缓存状态、 预设的缓 存配置参数和所述第二持续播放时长, 对所述缓存进行状态估计, 获取本 次缓存状态以及本次缓存状态的开始时间和持续时间, 其中所述缓存的状 态包括初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态和停止 播放状态中的至少一个。

15、 根据权利要求 14所述的缓存状态估计设备, 其特征在于, 所述 第一获取模块具体用于根据所述终端在本次状态估计周期内接收的媒体 数据的字节数和当前媒体码率, 计算所述第一持续播放时长; 或者

所述第一获取模块具体用于解析所述终端在本次状态估计周期内接 收的媒体数据, 获得所述终端在本次状态估计周期内接收的媒体数据的帧 数, 根据所述终端在本次状态估计周期内接收的媒体数据的帧数和当前媒 体帧率, 计算所述第一持续播放时长。

16、 根据权利要求 15所述的缓存状态估计设备, 其特征在于, 还包 括:

第二获取模块, 用于在所述第一获取模块计算所述第一持续播放时长 之前, 接收所述终端发送的反馈报文, 所述反馈报文是所述终端针对在本 次状态估计周期内接收的媒体数据所发送的, 根据所述反馈报文, 获取所 述终端在本次状态估计周期内接收的媒体数据的字节数; 或者,

第三获取模块, 用于在所述第一获取模块计算所述第一持续播放时长 之前, 解析所述终端在本次状态估计周期内接收的媒体数据, 获取所述终 端在本次状态估计周期内接收的媒体数据的字节数。

17、 根据权利要求 14所述的缓存状态估计设备, 其特征在于, 所述 第一获取模块具体用于解析所述终端在本次状态估计周期内接收的媒体 数据, 获取所述媒体数据包括的完整帧的最大解码时间戳 DTS和最小解码 时间戳 DTS , 或者获取所述媒体数据包括的完整帧的最大显示时间戳 PTS 和最小显示时间戳 PTS , 以所述最大 DTS与所述最小 DTS之差作为所述第 一持续播放时长, 或者以所述最大 PTS与所述最小 PTS之差作为所述第一 持续播放时长。 18、 根据权利要求 14-17任一项所述的缓存状态估计设备, 其特征在 于, 所述计算模块具体用于在所述本次状态估计前的缓存状态是除所述正 常播放状态之外的其他缓存状态时, 将到上一次状态估计结束时所述缓存 中媒体数据对应的持续播放时长与所述第一持续播放时长之和作为所述 第二持续播放时长, 或者在所述本次状态估计前的缓存状态是所述正常播 放状态时, 以到上一次状态估计结束时所述缓存中媒体数据对应的持续播 放时长与所述第一持续播放时长之和, 减去所述本次状态估计周期内正常 播放所需的媒体数据对应的持续播放时长, 得到所述第二持续播放时长。

19、 根据权利要求 14-18任一项所述的缓存状态估计设备, 其特征在 于, 所述缓存配置参数包括: 初始缓冲时间和再缓冲时间;

所述初始缓冲时间是指在所述终端第一次播放媒体数据前, 为实现正 常播放所述缓存中最少应该存储的媒体数据对应的持续播放时长;

所述再缓冲时间是指从所述缓存中的媒体数据对应的持续播放时长 小于或等于预设门限时开始, 到所述缓存中的媒体数据对应的持续播放时 长大于所述预设门限前, 所述缓存中最少应该存储的媒体数据对应的持续 播放时长;

所述状态估计模块具体用于如果所述本次状态估计前的缓存状态为 所述初始缓冲状态, 在所述第二持续播放时长大于或等于所述初始缓冲时 间时, 确定本次缓存状态为正常播放状态并记录本次缓存状态的开始时间 和持续时间, 在所述第二持续播放时长小于所述初始缓冲时间时, 确定本 次缓存状态为所述初始缓冲状态并更新本次缓存状态的持续时间, 以及如 果所述本次状态估计前的缓存状态为所述再缓冲状态, 在所述第二持续播 放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播放状态 并记录本次缓存状态的开始时间和持续时间, 在所述第二持续播放时长小 于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更新本次缓存状 态的持续时间。

20、 根据权利要求 14-18任一项所述的缓存状态估计设备, 其特征在 于, 所述状态估计模块还用于如果所述本次状态估计前的缓存状态为所述 正常播放状态, 在所述第二持续播放时长小于或等于预设门限, 确定本次 缓冲状态为再缓冲状态并记录本次缓冲状态的开始时间和持续时间, 在所 述第二持续播放时长大于所述预设门限时, 确定本次缓存状态为正常播放 状态并更新本次缓存状态的持续时间。

21、 根据权利要求 14-18任一项所述的缓存状态估计设备, 其特征在 于, 所述状态估计模块还用于如果所述本次状态估计前的缓存状态为所述 正常播放状态, 在所述最大 DTS或最大 PTS小于本次状态估计周期内正常 播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本次缓 冲状态的开始时间和持续时间, 在所述最大 DTS或最大 PTS大于或等于本 次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓存状态为正 常播放状态并更新本次缓存状态的持续时间。

22、 根据权利要求 14-18任一项所述的缓存状态估计设备, 其特征在 于, 所述状态估计模块还用于如果所述本次状态估计前的缓存状态为所述 结束播放状态, 确定本次缓存状态为结束播放状态。

23、 根据权利要求 14-18任一项所述的缓存状态估计设备, 其特征在 于, 所述状态估计模块还用于如果所述本次状态估计前的缓存状态为所述 停止播放状态, 确定本次缓存状态为停止播放状态。

24、 根据权利要求 19-23任一项所述的缓存状态估计设备, 其特征在 于, 所述状态估计模块用于记录本次缓存状态的开始时间和持续时间, 包 括:

所述状态估计模块具体用于在本次缓存状态与所述本次状态估计前 的缓存状态不一致时, 根据所述第一持续播放时长和所述本次状态估计前 的缓存状态, 更新当前媒体数据自身播放进度对应的时间点, 根据更新后 的媒体数据自身播放进度对应的时间点获取本次缓存状态的开始时间和 持续时间。

25、 根据权利要求 14-24任一项所述的缓存状态估计设备, 其特征在 于, 还包括:

状态修正模块, 用于根据用户请求, 对本次缓存状态以及本次缓存状 态的开始时间和持续时间进行修正。

26、 根据权利要求 25所述的缓存状态估计设备, 其特征在于, 所述 用户请求包括: 播放请求、 重新播放请求、 搜索请求、 停止播放请求或结 束播放请求;

所述状态修正模块具体用于如果所述用户请求为所述播放请求或所 述搜索请求, 则将本次缓存状态修正为初始缓冲状态并记录修正后本次缓 存状态的开始时间和持续时间; 如果所述用户请求为所述重新播放请求, 则将本次缓存状态修正为正常播放状态并记录修正后本次缓存状态的开 始时间和持续时间; 如果所述用户请求为所述结束播放请求, 则将本次缓 存状态修正为结束播放状态并记录修正后本次缓存状态的开始时间和持 续时间; 如果所述用户请求为所述停止播放请求, 则将本次缓存状态修正 为停止播放状态并记录修正后本次缓存状态的开始时间和持续时间。

27、 根据权利要求 14-26任一项所述的缓存状态估计设备, 其特征在 于, 所述缓存状态估计设备为所述终端或者媒体服务器。

Description:
缓存状态估计方法及设备 本申请要求于 2013 年 03 月 05 日提交中国专利局、 申请号为 201310069638. 6、 发明名称为"缓存状态估计方法及设备"的中国 利申请 的优先权, 其全部内容通过引用结合在本申请中

技术领域

本发明涉及通信技术, 尤其涉及一种缓存状态估计方法及设备。 背景技术

在互联网协议 (Internet Protocol , 简称为 IP ) 网络的音视频应用中, 为了平滑网络传输带来的影响及实现收发端的 同歩播放, 收端需要把接收到 的音视频数据暂存于缓存中,以保证音视频数 据在通过 IP网络传输后仍能连 续播放。 缓存的设计需要综合考虑缓存带来的延迟和丢 包, 缓存过小可能引 起过多的丢包, 缓存过大可能造成播放的延迟过大, 由此可见, 收端的缓存 状态会直接影响音视频的播放质量, 因此, 通过估计缓存的状态对音视频的 播放质量进行评估等变得尤为重要。

现有技术主要是针对实时传输协议 (Real-time Transport Protocol , 简称为 RTP) /用户数据包协议 (User Datagram Protocol , 简称为 UDP) 场 景下的缓存进行建模, 以便于通过估计缓存的状态对音视频的播放质 量进行 评估等操作。 目前, 基于传输控制协议 (Transmi ssion Control Protocol , 简称为 TCP) 的音视频应用越来越多, 因此, 需要一种针对 TCP应用场景的 缓存状态估计方案, 为在 TCP应用场景下对音视频的播放质量进行评估提 供 条件。 发明内容

本发明实施例提供一种缓存状态估计方法及设 备, 用以解决基于 TCP 实现的音视频应用中缓存状态的估计问题。

第一方面提供一种缓存状态估计方法, 包括: 获取终端在本次状态估计周期内接收的媒体数 据对应的第一持续播 放时长;

根据本次状态估计前的缓存状态以及所述第一 持续播放时长, 计算当 前缓存中的媒体数据对应的第二持续播放时长 ;

根据所述本次状态估计前的缓存状态、 预设的缓存配置参数和所述第 二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以及本次 缓存状态的开始时间和持续时间, 其中所述缓存的状态包括初始缓冲状 态、 正常播放状态、 再缓冲状态、 结束播放状态和停止播放状态中的至少 一个。

结合第一方面, 在第一方面的第一种可能的实现方式中, 所述获取终 端在本次状态估计周期内接收的媒体数据对应 的第一持续播放时长, 包 括:

根据所述终端在本次状态估计周期内接收的媒 体数据的字节数和当 前媒体码率, 计算所述第一持续播放时长; 或者

解析所述终端在本次状态估计周期内接收的媒 体数据, 获得所述终端 在本次状态估计周期内接收的媒体数据的帧数 ;

根据所述终端在本次状态估计周期内接收的媒 体数据的帧数和当前 媒体帧率, 计算所述第一持续播放时长。

结合第一方面的第一种可能的实现方式, 在第一方面的第二种可能的 实现方式中, 所述根据所述终端在本次状态估计周期内接收 的媒体数据的 字节数和当前媒体码率, 计算所述第一持续播放时长之前, 包括:

接收所述终端发送的反馈报文, 所述反馈报文是所述终端针对在本次 状态估计周期内接收的媒体数据所发送的, 根据所述反馈报文, 获取所述 终端在本次状态估计周期内接收的媒体数据的 字节数; 或者,

解析所述终端在本次状态估计周期内接收的媒 体数据, 获取所述终端 在本次状态估计周期内接收的媒体数据的字节 数。

结合第一方面, 在第一方面的第三种可能的实现方式中, 所述获取终 端在本次状态估计周期内接收的媒体数据对应 的第一持续播放时长, 包 括:

解析所述终端在本次状态估计周期内接收的媒 体数据, 获取所述媒体 数据包括的完整帧的最大解码时间戳 DTS和最小解码时间戳 DTS , 或获取 所述媒体数据包括的完整帧的最大显示时间戳 PTS和最小显示时间戳 PTS ;

以所述最大 DTS与所述最小 DTS之差作为所述第一持续播放时长, 或 者以所述最大 PTS与所述最小 PTS之差作为所述第一持续播放时长。

结合第一方面或第一方面的第一种可能的实现 方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能 的实现方式, 在第一方面的 第四种可能的实现方式中, 所述根据本次状态估计前的缓存状态以及所述 第一持续播放时长, 计算当前缓存中的媒体数据对应的第二持续播 放时 长, 包括:

如果所述本次状态估计前的缓存状态是除所述 正常播放状态之外的 其他的缓存状态, 则将到上一次状态估计结束时所述缓存中媒体 数据对应 的持续播放时长与所述第一持续播放时长之和 作为所述第二持续播放时 长;

如果所述本次状态估计前的缓存状态是所述正 常播放状态, 则以到上一次 状态估计结束时所述缓存中媒体数据对应的持 续播放时长与所述第一持续播 放时长之和, 减去所述本次状态估计周期内正常播放所需的 媒体数据对应的 持续播放时长, 得到所述第二持续播放时长。

结合第一方面或第一方面的第一种可能的实现 方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能 的实现方式或第一方面的 第四种可能的实现方式, 在第一方面的第五种可能的实现方式中, 所述缓 存配置参数包括: 初始缓冲时间和再缓冲时间;

所述初始缓冲时间是指在所述终端第一次播放 媒体数据前, 为实现正 常播放所述缓存中最少应该存储的媒体数据对 应的持续播放时长;

所述再缓冲时间是指从所述终端在播放媒体数 据过程中再缓冲开始, 到所述终端重新播放媒体数据前, 所述缓存中最少应该存储的媒体数据对 应的持续播放时长;

所述根据所述本次状态估计前的缓存状态、 预设的缓存配置参数和所 述第二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以及 本次缓存状态的开始时间和持续时间, 包括: 如果所述本次状态估计前的缓存状态为所述初 始缓冲状态, 在所述第 二持续播放时长大于或等于所述初始缓冲时间 时, 确定本次缓存状态为正 常播放状态并记录本次缓存状态的开始时间和 持续时间, 或者, 在所述第 二持续播放时长小于所述初始缓冲时间时, 确定本次缓存状态为所述初始 缓冲状态并更新本次缓存状态的持续时间;

如果所述本次状态估计前的缓存状态为所述再 缓冲状态, 在所述第二 持续播放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播 放状态并记录本次缓存状态的开始时间和持续 时间, 或者, 在所述第二持 续播放时长小于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更 新本次缓存状态的持续时间。

结合第一方面或第一方面的第一种可能的实现 方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能 的实现方式或第一方面的 第四种可能的实现方式, 在第一方面的第六种可能的实现方式中, 所述方 法还包括:

如果所述本次状态估计前的缓存状态为所述正 常播放状态, 在所述第 二持续播放时长小于或等于预设门限, 确定本次缓冲状态为再缓冲状态并 记录本次缓冲状态的开始时间和持续时间, 在所述第二持续播放时长大于 所述预设门限时, 确定本次缓存状态为正常播放状态并更新本次 缓存状态 的持续时间。

结合第一方面或第一方面的第一种可能的实现 方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能 的实现方式或第一方面的 第四种可能的实现方式, 在第一方面的第七种可能的实现方式中, 所述方 法还包括:

如果所述本次状态估计前的缓存状态为所述正 常播放状态, 在所述最 大 DTS或最大 PTS小于本次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本次缓 冲状态的开始时间和持续 时间, 在所述最大 DTS或最大 PTS大于或等于本次状态估计周期内正常播 放所需的 DTS或 PTS时, 确定本次缓存状态为正常播放状态并更新本次 缓 存状态的持续时间。

结合第一方面或第一方面的第一种可能的实现 方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能 的实现方式或第一方面的 第四种可能的实现方式, 在第一方面的第八种可能的实现方式中, 所述方 法还包括:

如果所述本次状态估计前的缓存状态为所述结 束播放状态, 确定本次 缓存状态为结束播放状态。

结合第一方面或第一方面的第一种可能的实现 方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能 的实现方式或第一方面的 第四种可能的实现方式, 在第一方面的第九种可能的实现方式中, 所述方 法还包括:

如果所述本次状态估计前的缓存状态为所述停 止播放状态, 确定本次 缓存状态为停止播放状态。

结合第一方面的第五种可能的实现方式或第一 方面的第六种可能的 实现方式或第一方面的第七种可能的实现方式 或第一方面的第八种可能 的实现方式或第一方面的第九种可能的实现方 式, 在第一方面的第十种可 能的实现方式中, 在本次缓存状态与所述本次状态估计前的缓存 状态不一 致时, 所述记录本次缓存状态的开始时间和持续时间 , 包括:

根据所述第一持续播放时长和所述本次状态估 计前的缓存状态, 更新 当前媒体数据自身播放进度对应的时间点, 根据更新后的媒体数据自身播 放进度对应的时间点获取本次缓存状态的开始 时间和持续时间。

结合第一方面或第一方面的第一种可能的实现 方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能 的实现方式或第一方面的 第四种可能的实现方式或第一方面的第五种可 能的实现方式或第一方面 的第六种可能的实现方式或第一方面的第七种 可能的实现方式或第一方 面的第八种可能的实现方式或第一方面的第九 种可能的实现方式或第一 方面的第十种可能的实现方式, 在第一方面的第十一种可能的实现方式 中, 所述获取本次缓存状态以及本次缓存状态的开 始时间和持续时间之 后, 还包括:

根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间 和持续 时间进行修正。

结合第一方面的第十一种可能的实现方式, 在第一方面的第十二种可 能的实现方式中, 所述用户请求包括: 播放请求、 重新播放请求、 搜索请 求、 停止播放请求或结束播放请求;

所述根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间 和 持续时间进行修正, 包括:

如果所述用户请求为所述播放请求或所述搜索 请求, 则将本次缓存状 态修正为初始缓冲状态并记录修正后本次缓存 状态的开始时间和持续时 间;

如果所述用户请求为所述重新播放请求, 则将本次缓存状态修正为正 常播放状态并记录修正后本次缓存状态的开始 时间和持续时间;

如果所述用户请求为所述结束播放请求, 则将本次缓存状态修正为结 束播放状态并记录修正后本次缓存状态的开始 时间和持续时间;

如果所述用户请求为所述停止播放请求, 则将本次缓存状态修正为停 止播放状态并记录修正后本次缓存状态的开始 时间和持续时间。

第二方面提供一种缓存状态估计设备, 包括:

第一获取模块, 用于获取终端在本次状态估计周期内接收的媒 体数据 对应的第一持续播放时长;

计算模块, 用于根据本次状态估计前的缓存状态以及所述 第一持续播 放时长, 计算当前缓存中的媒体数据对应的第二持续播 放时长;

状态估计模块, 用于根据所述本地状态估计前的缓存状态、 预设的缓 存配置参数和所述第二持续播放时长, 对所述缓存进行状态估计, 获取本 次缓存状态以及本次缓存状态的开始时间和持 续时间, 其中所述缓存的状 态包括初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态和停止 播放状态中的至少一个。

结合第二方面, 在第二方面的第一种可能的实现方式中, 所述第一获 取模块具体用于根据所述终端在本次状态估计 周期内接收的媒体数据的 字节数和当前媒体码率, 计算所述第一持续播放时长; 或者

所述第一获取模块具体用于解析所述终端在本 次状态估计周期内接 收的媒体数据, 获得所述终端在本次状态估计周期内接收的媒 体数据的帧 数, 根据所述终端在本次状态估计周期内接收的媒 体数据的帧数和当前媒 体帧率, 计算所述第一持续播放时长。 结合第二方面的第一种可能的实现方式, 在第二方面的第二种可能的 实现方式中, 所述缓存状态估计设备还包括: 第二获取模块, 用于在所述 第一获取模块计算所述第一持续播放时长之前 , 接收所述终端发送的反馈 报文, 所述反馈报文是所述终端针对在本次状态估计 周期内接收的媒体数 据所发送的, 根据所述反馈报文, 获取所述终端在本次状态估计周期内接 收的媒体数据的字节数; 或者,

第三获取模块, 用于在所述第一获取模块计算所述第一持续播 放时长 之前, 解析所述终端在本次状态估计周期内接收的媒 体数据, 获取所述终 端在本次状态估计周期内接收的媒体数据的字 节数。

结合第二方面, 在第二方面的第三种可能的实现方式中, 所述第一获 取模块具体用于解析所述终端在本次状态估计 周期内接收的媒体数据, 获 取所述媒体数据包括的完整帧的最大解码时间 戳 DTS和最小解码时间戳 DTS , 或者获取所述媒体数据包括的完整帧的最大显 示时间戳 PTS和最小 显示时间戳 PTS , 以所述最大 DTS与所述最小 DTS之差作为所述第一持续 播放时长, 或者以所述最大 PTS与所述最小 PTS之差作为所述第一持续播 放时长。

结合第二方面或第二方面的第一种可能的实现 方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能 的实现方式, 在第二方面的 第四种可能的实现方式中, 所述计算模块具体用于在所述本次状态估计前 的缓存状态是除所述正常播放状态之外的其他 缓存状态时, 将到上一次状 态估计结束时所述缓存中媒体数据对应的持续 播放时长与所述第一持续 播放时长之和作为所述第二持续播放时长, 或者在所述本次状态估计前的 缓存状态是所述正常播放状态时, 以到上一次状态估计结束时所述缓存中 媒体数据对应的持续播放时长与所述第一持续 播放时长之和, 减去所述本 次状态估计周期内正常播放所需的媒体数据对 应的持续播放时长, 得到所 述第二持续播放时长。

结合第二方面或第二方面的第一种可能的实现 方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能 的实现方式或第二方面的 第四种可能的实现方式, 在第二方面的第五种可能的实现方式中, 所述缓 存配置参数包括: 初始缓冲时间和再缓冲时间; 所述初始缓冲时间是指在所述终端第一次播放 媒体数据前, 为实现正 常播放所述缓存中最少应该存储的媒体数据对 应的持续播放时长;

所述再缓冲时间是指从所述终端播放媒体数据 过程中再缓冲开始, 到 所述终端重新播放媒体数据前, 所述缓存中最少应该存储的媒体数据对应 的持续播放时长;

所述状态估计模块具体用于如果所述本次状态 估计前的缓存状态为 所述初始缓冲状态, 在所述第二持续播放时长大于或等于所述初始 缓冲时 间时, 确定本次缓存状态为正常播放状态并记录本次 缓存状态的开始时间 和持续时间, 在所述第二持续播放时长小于所述初始缓冲时 间时, 确定本 次缓存状态为所述初始缓冲状态并更新本次缓 存状态的持续时间, 以及如 果所述本次状态估计前的缓存状态为所述再缓 冲状态, 在所述第二持续播 放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播放状态 并记录本次缓存状态的开始时间和持续时间, 在所述第二持续播放时长小 于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更新本次缓 存状 态的持续时间。

结合第二方面或第二方面的第一种可能的实现 方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能 的实现方式或第二方面的 第四种可能的实现方式, 在第二方面的第六种可能的实现方式中, 所述状 态估计模块还用于如果所述本次状态估计前的 缓存状态为所述正常播放 状态, 在所述第二持续播放时长小于或等于预设门限 , 确定本次缓冲状态 为再缓冲状态并记录本次缓冲状态的开始时间 和持续时间, 在所述第二持 续播放时长大于所述预设门限时, 确定本次缓存状态为正常播放状态并更 新本次缓存状态的持续时间。

结合第二方面或第二方面的第一种可能的实现 方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能 的实现方式或第二方面的 第四种可能的实现方式, 在第二方面的第七种可能的实现方式中, 所述状 态估计模块还用于如果所述本次状态估计前的 缓存状态为所述正常播放 状态, 在所述最大 DTS或最大 PTS小于本次状态估计周期内正常播放所需 的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本次缓 冲状态的 开始时间和持续时间, 在所述最大 DTS或最大 PTS大于或等于本次状态估 计周期内正常播放所需的 DTS或 PTS时, 确定本次缓存状态为正常播放状 态并更新本次缓存状态的持续时间。

结合第二方面或第二方面的第一种可能的实现 方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能 的实现方式或第二方面的 第四种可能的实现方式, 在第二方面的第八种可能的实现方式中, 所述状 态估计模块还用于如果所述本次状态估计前的 缓存状态为所述结束播放 状态, 确定本次缓存状态为结束播放状态。

结合第二方面或第二方面的第一种可能的实现 方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能 的实现方式或第二方面的 第四种可能的实现方式, 在第二方面的第九种可能的实现方式中, 所述状 态估计模块还用于如果所述本次状态估计前的 缓存状态为所述停止播放 状态, 确定本次缓存状态为停止播放状态。

结合第二方面的第五种可能的实现方式或第二 方面的第六种可能的 实现方式或第二方面的第七种可能的实现方式 或第二方面的第八种可能 的实现方式或第二方面的第九种可能的实现方 式, 在第二方面的第十种可 能的实现方式中, 所述状态估计模块用于记录本次缓存状态的开 始时间和 持续时间, 包括:

所述状态估计模块具体用于在本次缓存状态与 所述本次状态估计前 的缓存状态不一致时, 根据所述第一持续播放时长和所述本次状态估 计前 的缓存状态, 更新当前媒体数据自身播放进度对应的时间点 , 根据更新后 的媒体数据自身播放进度对应的时间点获取本 次缓存状态的开始时间和 持续时间。

结合第二方面或第二方面的第一种可能的实现 方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能 的实现方式或第二方面的 第四种可能的实现方式或结合第二方面的第五 种可能的实现方式或第二 方面的第六种可能的实现方式或第二方面的第 七种可能的实现方式或第 二方面的第八种可能的实现方式或第二方面的 第九种可能的实现方式或 第二方面的第十种可能的实现方式, 在第二方面的第十一种可能的实现方 式中,所述缓存状态估计设备还包括: 状态修正模块,用于根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间 和持续时间进行修正。 结合第二方面的第十一种可能的实现方式, 在第二方面的第十二种可 能的实现方式中, 所述用户请求包括: 播放请求、 重新播放请求、 搜索请 求、 停止播放请求或结束播放请求;

所述状态修正模块具体用于如果所述用户请求 为所述播放请求或所 述搜索请求, 则将本次缓存状态修正为初始缓冲状态并记录 修正后本次缓 存状态的开始时间和持续时间; 如果所述用户请求为所述重新播放请求, 则将本次缓存状态修正为正常播放状态并记录 修正后本次缓存状态的开 始时间和持续时间; 如果所述用户请求为所述结束播放请求, 则将本次缓 存状态修正为结束播放状态并记录修正后本次 缓存状态的开始时间和持 续时间; 如果所述用户请求为所述停止播放请求, 则将本次缓存状态修正 为停止播放状态并记录修正后本次缓存状态的 开始时间和持续时间。

本发明实施例提供的缓存状态估计方法及设备 , 根据终端在两次状态 估计之间接收的媒体数据对应的持续播放时长 以及本次状态估计前的缓 存状态, 获得当前缓存中媒体数据对应的持续播放时长 , 然后根据本次状 态估计前的缓存状态、 预设的缓存配置参数与当前缓存中媒体数据对 应的 持续播放时长, 对缓存进行状态估计获取本次缓存状态以及本 次缓存状态 的开始时间和持续时间, 该缓存状态估计过程不受传输协议的限制, 可以 用于对 TCP应用场景下的缓存状态进行估计, 为在 TCP应用场景下对音视 频的播放质量进行评估提供条件。 附图说明 为了更清楚地说明本发明实施例或现有技术中 的技术方案, 下面将对实 施例或现有技术描述中所需要使用的附图作一 简单地介绍, 显而易见地, 下 面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在 不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。

图 1为本发明实施例提供的一种缓存状态估计方 的流程图; 图 2为本发明实施例提供的一种缓存状态估计模 的示意图; 图 3为本发明实施例提供的各缓存状态之间的跳 关系示意图; 图 4为本发明实施例提供的一种缓存状态估计设 的结构示意图; 图 5为本发明实施例提供的另一种缓存状态估计 备的结构示意图; 图 6为本发明实施例提供的又一种缓存状态估计 备的结构示意图。

具体实施方式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本 发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描 述, 显然,所描述的实施例是本发明一部分实施例 , 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前 提 下所获得的所有其他实施例, 都属于本发明保护的范围。

图 1为本发明实施例提供的一种缓存状态估计方 的流程图。 如图 1 所示, 本实施例的方法包括:

歩骤 101、 获取终端在本次状态估计周期内接收的媒体数 据对应的第 一持续播放时长。

在一可选实施方式中, 获取第一持续播放时长包括: 根据所述终端在 本次状态估计周期内接收的媒体数据的大小和 当前媒体信息, 计算所述第 一持续播放时长。所述状态估计周期是指自上 一次状态估计的结束时刻到 本次状态估计的结束时刻之间的时间间隔, 或者是指子上一状态估计的开 始时刻到本次状态估计的开始时刻之间的时间 间隔。

一种情况, 上述终端在本次状态估计周期内接收的媒体数 据的大小可 以用终端在本次状态估计周期内接收的媒体数 据的字节数表示, 相应的, 当前媒体信息为当前媒体码率。 基于此, 歩骤 101的一种可选实施方式包 括: 根据终端在本次状态估计周期内接收的媒体数 据的字节数和当前媒体 码率, 计算所述第一持续播放时长。 例如, 可以根据公式 ^ 7 ^ : ^^^ 获得第一持续播放时长, 公式中的 表示终端在本次状态估计周期内接 收的媒体数据的字节数, 公式中的 Μ ^( ζ ')表示当前媒体码率, 公式中的 表示第一持续播放时长。 其中, 当前媒体码率可以是媒体平均码率或者是 媒体实时码率。

可选的, 本发明实施例提供的缓存状态估计方法可由终 端来完成, 则 所述终端在执行上述歩骤 101的可选实施方式之前, 即在根据所述终端在 本次状态估计周期内接收的媒体数据的字节数 和当前媒体码率, 计算所述 第一持续播放时长之前, 可以解析终端在本次状态估计周期内接收的媒 体 数据, 获取终端在本次状态估计周期内接收的媒体数 据的字节数。

可选的, 本发明实施例提供的缓存状态估计方法可由媒 体服务器或网 络节点来完成, 则媒体服务器或网络节点在执行上述歩骤 101的可选实施 方式之前, 即在根据所述终端在本次状态估计周期内接收 的媒体数据的字 节数和当前媒体码率, 计算所述第一持续播放时长之前, 可以接收所述终 端发送的反馈报文, 所述反馈报文是终端针对所述终端在本次状态 估计周 期内接收的媒体数据所发送的, 然后根据所述反馈报文, 获取所述终端在 本次状态估计周期内接收的媒体数据的字节数 。 其中, 根据应用场景的不 同, 上述反馈报文或者是基于 TCP的确认 (ACK ) 报文或者是 RTCP报文, 这些报文中携带有终端接收到媒体数据的字节 数等信息。

另一种情况, 上述终端在本次状态估计周期内接收的媒体数 据的大小 可以用所述终端在本次状态估计周期内接收的 媒体数据的帧数来表示; 相 应的, 当前媒体信息为当前媒体帧率。 基于此, 歩骤 101的另一种可选实 施方式包括: 解析所述终端在本次状态估计周期内接收的媒 体数据, 获得 所述终端在本次状态估计周期内接收的媒体数 据的帧数; 根据所述终端在 本次状态估计周期内接收的媒体数据的帧数和 当前媒体帧率, 计算所述第 一持续播放时长。 例如, 可以根据公式^ 7 ^ :^^ ^, 计算第一持续播放 时长, 公式中的^ 表示终端在本次状态估计周期内接收的媒体数 据的帧 数, 公式中的 表示当前媒体帧率, 公式中的 表示所述第一持续播 放时长。 在此说明, 在该情况下, 本实施例的缓存状态估计方法的执行主 体为终端。

在另一可选实施方式中, 获取第一持续播放时长包括: 解析所述终端 在本次状态估计周期内接收的媒体数据, 获取所述媒体数据包括的完整帧 的最大解码时间戳 (Decodi ng T ime Stamp , 简称为 DTS ) 和最小 DTS, 或 者获取所述媒体数据包括的完整帧的最大显示 时间戳(Pres entat i on T ime Stamp , 简称为 PTS ) 和最小 PTS ; 以最大 DTS与最小 DTS之差作为所述第 一持续播放时长, 或者以最大 PTS与最小 PTS之差作为所述第一持续播放 时长。 例如, 可以根据公式

RT(i) = m a x(DTS m , ... … ,Z)rS„) - ηώ ( )7¾, … ... ,Ζ)7¾)或公式

RT(i) = max(PTS m , ,PTS n ) -mm(PTS m , ,PTS n ) ^ 计算第一持续播放 时长, 公式中的 max ( ) 是一个取最大值的函数, min ( ) 是一个取最小值 的函数, 公式中的 ^ 5;表示终端接收到的第 m个数据帧携带的 DTS, DTS n 表示终端接收到的第 n个数据帧携带的 DTS , 公式中的 ^6表示终端接收 到的第 m个数据帧携带的 PTS, 表示终端接收到的第 n个数据帧携带 的 PTS。 在此说明, 该实施方式的执行主体为终端。

歩骤 102、 根据本次状态估计前的缓存状态以及所述第一 持续播放时 长, 计算当前缓存中的媒体数据对应的第二持续播 放时长。

基于歩骤 101的各种可选实施方式或情况, 在获取第一持续播放时长 之后, 可以根据本次状态估计前的缓存状态和第一持 续播放时长, 计算当 前缓存中的媒体数据对应的持续播放时长, 即第二持续播放时长。

本实施例提供一种缓存状态估计模型, 该模型以第一持续播放时长、 第二持续播放时长、 本次状态估计前的缓存状态以及缓存配置参数 等作为 其输入参数, 并以估计出的缓存状态、 该缓存状态的开始时间和持续时间 等信息作为其输出结果, 该模型的一种直观示意图如图 2所示。

在本发明各实施例中,所述缓存的缓存状态可 以包括:初始缓冲状态、 正常播放状态、再缓冲状态、结束播放状态和 停止播放状态中的至少一个。 其中, 缓存状态估计模型的初始状态设置为初始缓冲 状态, 也就是说, 如 果本次状态估计是第一次状态估计, 则本次状态估计前的缓存状态为初始 缓冲状态。 对于本次状态估计为非第一次状态估计时, 本次状态估计前的 缓存状态即为上一次状态估计获取的缓存状态 , 则本次状态估计前的缓存 状态可能是初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态和 停止播放状态中的任意一个状态。 相应的, 无论本次状态估计是否是第一 次状态估计, 则估计出的本次缓存状态也可能是初始缓冲状 态、 正常播放 状态、 再缓冲状态、 结束播放状态和停止播放状态中的任意一个状 态。 各 缓存状态之间的跳转是按照媒体播放的时间顺 序发生的。各缓存状态之间 的跳转关系如图 3所示。

基于上述缓存状态, 计算第二持续播放时长的过程可以包括: 如果本次状态估计前的缓存状态是除上述正常 播放状态之外的其他 缓存状态, 则将到上一次状态估计结束时所述缓存中媒体 数据对应的持续 播放时长与所述第一持续播放时长之和作为所 述第二持续播放时长, 例如 可以根据公式 S" Z ') = ^( Z '— 1) + ?? ,获得第二持续播放时长,公式中的 ^ 表示到上一次状态估计结束时缓存中媒体数据 对应的持续播放时长, 亦可 以表示到上一次状态估计结束时所述缓存中媒 体数据的大小, 公式中的 表示第二持续播放时长; 由于在两次状态估计之间的时间内终端未处 于上述正常播放状态, 故缓存中的媒体数据自上一次缓存状态估计结 束到 本次缓存状态估计开始未发生变化, 故将到上一次缓存状态估计结束时缓 存中的媒体数据对应的持续播放时长以及终端 在两次状态估计之间接收 到的媒体数据对应的持续播放时长相加, 即可获得当前缓存中媒体数据对 应的持续播放时长;

如果所述本次状态估计前的缓存状态是上述正 常播放状态, 则将到上 一次状态估计结束时所述缓存中媒体数据对应 的持续播放时长与第一持 续播放时长之和, 减去本次状态估计周期内正常播放所需的媒体 数据对应 的持续播放时长, 得到所述第二持续播放时长, 例如可以根据公式

BL(i) = BL(i -l) +RT l -T l j 获得第二持续播放时长, 公式中的^^ - 1 〕表示到上 一次状态估计结束时缓存中媒体数据对应的持 续播放时长, 亦可以表示到 上一次状态估计结束时所述缓存中媒体数据的 大小, 公式中的' 7 ^表示本次 状态估计周期内正常播放所需的媒体数据对应 的持续播放时长, 亦可以表 示本次状态估计周期内正常播放所需的媒体数 据的大小, 公式中的 表 示第二持续播放时长; 由于在两次状态估计之间的时间内终端处于正 常播 放状态, 故缓存中的媒体数据自上一次缓存状态估计结 束到本次缓存状态 估计开始发生了变化, 故将到上一次缓存状态估计结束时缓存中的媒 体数 据对应的持续播放时长与终端在两次状态估计 之间接收到的媒体数据对 应的持续播放时长相加, 并减去本次状态估计周期内正常播放所需的媒 体 数据对应的持续播放时长, 即可获得当前缓存中媒体数据对应的持续播放 时长。这里的本次状态估计前的缓存状态是指 上一次状态估计获取的缓存 状态。

歩骤 103、 根据本次状态估计前的缓存状态、 预设的缓存配置参数和 所述第二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以 及本次缓存状态的开始时间和持续时间, 其中所述缓存的状态包括初始缓 冲状态、 正常播放状态、 再缓冲状态、 结束播放状态和停止播放状态中的 至少一个。

基于上述, 在获取第二持续播放时长之后, 可以根据本次状态估计前 的缓存状态、 预设的缓存配置参数和第二持续播放时长, 对缓存进行状态 估计, 获取本次缓存状态以及本次缓存状态的开始时 间和持续时间。

可选的, 缓存配置参数可以包括: 初始缓冲时间和再缓冲时间。 所述 初始缓冲时间是指在终端第一次播放媒体数据 前, 为实现正常播放缓存中 最少应该存储的媒体数据对应的持续播放时长 。所述再缓冲时间是指从终 端播放媒体数据过程中再缓冲开始, 到所述终端重新播放媒体数据前, 所 述缓存中最少应该存储的媒体数据对应的持续 播放时长。 在此说明, 上述 各种持续播放时长的单位可以是毫秒, 但不限于此。

基于上述缓存配置参数, 歩骤 103, 即根据本次状态估计前的缓存状 态、 预设的缓存配置参数和所述第二持续播放时长 , 对所述缓存进行状态 估计,获取本次缓存状态以及本次缓存状态的 开始时间和持续时间,包括: 如果所述本次状态估计前的缓存状态为初始缓 冲状态, 在所述第二持 续播放时长大于或等于所述初始缓冲时间时, 确定本次缓存状态为正常播 放状态并记录本次缓存状态的开始时间和持续 时间, 在所述第二持续播放 时长小于所述初始缓冲时间时, 确定本次缓存状态为所述初始缓冲状态并 更新本次缓存状态的持续时间;

如果所述本次状态估计前的缓存状态为再缓冲 状态, 在所述第二持续 播放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播放状 态并记录本次缓存状态的开始时间和持续时间 , 在所述第二持续播放时长 小于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更新本次缓 存 状态的持续时间。

进一歩可选的, 除了可以根据本次状态估计前的缓存状态、 预设的缓 存配置参数和所述第二持续播放时长, 对所述缓存进行状态估计, 获取本 次缓存状态以及本次缓存状态的开始时间和持 续时间之外, 所述缓存状态 估计方法还可以包括:

如果所述本次状态估计前的缓存状态为正常播 放状态, 在所述第二持 续播放时长小于或等于预设的第二门限, 确定本次缓冲状态为再缓冲状态 并记录本次缓冲状态的开始时间和持续时间, 在所述第二持续播放时长大 于所述预设的第二门限时, 确定本次缓存状态为正常播放状态并更新本次 缓存状态的持续时间。

进一歩可选的, 除了上述对缓存进行状态估计的过程之外, 所述缓存 状态估计方法还可以包括:

如果所述本次状态估计前的缓存状态为正常播 放状态, 在所述最大

DTS或最大 PTS小于本次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本次缓 冲状态的开始时间和持续 时间, 在所述最大 DTS或最大 PTS大于或等于本次状态估计周期内正常播 放所需的 DTS或 PTS时, 确定本次缓存状态为正常播放状态并更新本次 缓 存状态的持续时间。这里的本次状态估计前的 缓存状态是指上一次状态估 计获取的缓存状态。

进一歩可选的, 除了上述对缓存进行状态估计的过程之外, 所述缓存 状态估计方法还可以包括:

如果所述本次状态估计前的缓存状态为结束播 放状态, 确定本次缓存 状态为结束播放状态。

进一歩可选的, 除了上述对缓存进行状态估计的过程之外, 所述缓存 状态估计方法还可以包括:

如果所述本次状态估计前的缓存状态为停止播 放状态, 确定本次缓存 状态为停止播放状态。

基于上述各种获取本次缓存状态以及本次缓存 状态的开始时间和持 续时间的实施方式, 在本次缓存状态与所述本次状态估计前的缓存 状态不 一致时, 所述记录本次缓存状态的开始时间和持续时间 , 包括:

根据所述第一持续播放时长和所述本次状态估 计前的缓存状态, 更新 当前媒体数据自身播放进度对应的时间点, 根据更新后的媒体数据自身播 放进度对应的时间点获取本次缓存状态的开始 时间和持续时间。表 1所示 为估计出的缓存状态以及各个缓存状态的开始 时间和持续时间。

表 1

正常播放 0 10 再缓冲 10 20 正常播放 10 5

停止播放 15 20

正常播放 15 10

再缓冲 25 20 正常播放 25 15

结束播放 40 在表 1中, 各缓存状态的开始时间是媒体数据自身播放进 度对应的各 个时间点。 基于上述各实施方式, 在获取本次缓存状态以及本次缓存状态 的开始时间和持续时间之后, 所述缓存状态估计方法还包括:

根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间 和持续 时间进行修正。

所述用户请求包括: 播放请求 (paly ) 、 重新播放请求 (resume ) 、 搜索请求 (seek ) 、 停止播放请求 (pause ) 或结束播放请求 (stop ) 。

其中, 根据所述用户请求的不同, 对本次缓存状态以及本次缓存状态 的开始时间和持续时间进行修正的过程有所不 同, 举例说明:

如果所述用户请求为播放请求或搜索请求, 则将本次缓存状态修正为 初始缓冲状态并记录修正后本次缓存状态的开 始时间和持续时间;

如果所述用户请求为重新播放请求, 则将本次缓存状态修正为正常播 放状态并记录修正后本次缓存状态的开始时间 和持续时间;

如果所述用户请求为结束播放请求, 则将本次缓存状态修正为结束播 放状态并记录修正后本次缓存状态的开始时间 和持续时间;

如果所述用户请求为停止播放请求, 则将本次缓存状态修正为停止播 放状态并记录修正后本次缓存状态的开始时间 和持续时间。

由上述可见, 本发明实施例可以根据终端在两次状态估计之 间接收的 媒体数据对应的持续播放时长以及本次状态估 计前的缓存状态, 获得当前 缓存中媒体数据对应的持续播放时长, 然后根据本次状态估计前的缓存状 态、 预设的缓存配置参数与当前缓存中媒体数据对 应的持续播放时长, 对 缓存进行状态估计获取本次缓存状态以及本次 缓存状态的开始时间和持 续时间, 该缓存状态估计过程不受传输协议的限制, 可以用于对 TCP应用 场景下的缓存状态进行估计, 为在 TCP应用场景下对音视频的播放质量进 行评估提供条件。 另外, 在本发明实施例中, 可以根据用户请求对缓存状 态进行修正, 充分考虑了用户行为对缓存状态的影响, 使得缓存状态估计 结果更接近真实、 更准确。

图 4为本发明实施例提供的一种缓存状态估计设 的结构示意图。 如 图 4所示, 本实施例的设备包括: 第一获取模块 41、 计算模块 42和状态 估计模块 43。

第一获取模块 41,用于获取终端在本次状态估计周期内接收 媒体数 据对应的第一持续播放时长。

计算模块 42, 与第一获取模块 41连接, 用于根据本次状态估计前的 缓存状态以及第一获取模块 41获取的第一持续播放时长, 计算当前缓存 中的媒体数据对应的第二持续播放时长。

状态估计模块 43, 与计算模块 42连接, 用于根据本地状态估计前的 缓存状态、 预设的缓存配置参数和计算模块 42计算的第二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以及本次缓存状态的开始时 间和持续时间。

在本实施例中, 所述缓存的缓存状态可以包括: 初始缓冲状态、 正常 播放状态、 再缓冲状态、 结束播放状态和停止播放状态中的至少一个。 其 中, 缓存状态估计的初始状态设置为初始缓冲状态 。 基于此, 如果本次状 态估计为第一次状态估计, 则本次状态估计前的缓存状态为初始缓冲状 态; 如果本次状态估计非第一次状态估计, 则本次状态估计前的缓存状态 可以为: 初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态或停 止播放状态。 相应的, 无论本次状态估计是否是第一次状态估计, 则估计 出的本次缓存状态可以为: 初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态或停止播放状态。

在一可选实施方式中, 第一获取模块 41具体用于根据所述终端在本 次状态估计周期内接收的媒体数据的大小和当 前媒体信息, 计算所述第一 持续播放时长。

一种情况, 所述终端在本次状态估计周期内接收的媒体数 据的大小为 所述终端在本次状态估计周期内接收的媒体数 据的字节数; 所述当前媒体 信息为当前媒体码率。 基于此, 第一获取模块 41具体用于根据所述终端 在本次状态估计周期内接收的媒体数据的字节 数和当前媒体码率, 计算所 述第一持续播放时长。

基于上述情况, 如图 5所示, 所述缓存状态估计设备还包括: 第二获 取模块 44或第三获取模块 45。

第二获取模块 44, 与第一获取模块 41连接, 用于在第一获取模块 41 计算所述第一持续播放时长之前, 接收所述终端发送的反馈报文, 所述反 馈报文是终端针对所述终端在本次状态估计周 期内接收的媒体数据所发 送的, 根据所述反馈报文, 获取所述终端在本次状态估计周期内接收的媒 体数据的字节数。

第三获取模块 45, 与第一获取模块 41连接, 用于在第一获取模块 41 计算所述第一持续播放时长之前, 解析所述终端在本次状态估计周期内接 收的媒体数据, 获取所述终端在本次状态估计周期内接收的媒 体数据的字 节数。

在此说明, 如果所述缓存状态估计设备为所述终端, 则所述缓存状态 估计设备可以包括上述第三获取模块 45 ;如果所述缓存状态估计设备为媒 体服务器, 则所述缓存状态估计设备可以包括上述第二获 取模块 44。

另一种情况, 所述终端在本次状态估计周期内接收的媒体数 据的大小 为所述终端在本次状态估计周期内接收的媒体 数据的帧数; 所述当前媒体 信息为当前媒体帧率。 则第一获取模块 41具体用于解析所述终端在本次 状态估计周期内接收的媒体数据, 获得所述终端在本次状态估计周期内接 收的媒体数据的帧数, 根据所述终端在本次状态估计周期内接收的媒 体数 据的帧数和当前媒体帧率, 计算所述第一持续播放时长。

在另一可选实施方式中, 第一获取模块 41具体用于解析所述终端在 本次状态估计周期内接收的媒体数据, 获取所述媒体数据包括的完整帧的 最大 DTS和最小 DTS , 或者获取所述媒体数据包括的完整帧的最大 PTS和 最小 PTS , 以最大 DTS与最小 DTS之差作为所述第一持续播放时长, 或者 以最大 PTS与最小 PTS之差作为所述第一持续播放时长。

基于上述, 计算模块 42具体可用于在所述本次状态估计前的缓存状 态是除正常播放状态之外的其他缓存状态时, 将到上一次状态估计结束时 所述缓存中媒体数据对应的持续播放时长与所 述第一持续播放时长之和 作为所述第二持续播放时长, 或者在所述本次状态估计前的缓存状态是正 常播放状态时, 将到上一次状态估计结束时所述缓存中媒体数 据对应的持 续播放时长与第一持续播放时长之和, 减去本次状态估计周期内正常播放 所需的媒体数据对应的持续播放时长, 得到所述第二持续播放时长。 这里 的本次状态估计前的缓存状态是指上一次状态 估计获取的缓存状态。

可选的, 所述缓存配置参数包括: 初始缓冲时间和再缓冲时间。 所述 初始缓冲时间是指在所述终端第一次播放媒体 数据前, 为实现正常播放所 述缓存中最少应该存储的媒体数据对应的持续 播放时长; 所述再缓冲时间 是指从所述终端播放媒体数据过程中再缓冲开 始, 到所述终端重新播放媒 体数据前, 所述缓存中最少应该存储的媒体数据对应的持 续播放时长。

基于此, 状态估计模块 43具体可用于如果所述本次状态估计前的缓 存状态为初始缓冲状态, 在所述第二持续播放时长大于或等于所述初始 缓 冲时间时, 确定本次缓存状态为正常播放状态并记录本次 缓存状态的开始 时间和持续时间, 在所述第二持续播放时长小于所述初始缓冲时 间时, 确 定本次缓存状态为所述初始缓冲状态并更新本 次缓存状态的持续时间, 以 及如果所述本次状态估计前的缓存状态为再缓 冲状态, 在所述第二持续播 放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播放状态 并记录本次缓存状态的开始时间和持续时间, 在所述第二持续播放时长小 于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更新本次缓 存状 态的持续时间。

进一歩可选的, 状态估计模块 43还用于如果所述本次状态估计前的 缓存状态为正常播放状态, 在所述第二持续播放时长小于或等于预设的第 二门限, 确定本次缓冲状态为再缓冲状态并记录本次缓 冲状态的开始时间 和持续时间, 在所述第二持续播放时长大于所述预设的第二 门限时, 确定 本次缓存状态为正常播放状态并更新本次缓存 状态的持续时间。

进一歩可选的, 状态估计模块 43还用于如果所述本次状态估计前的 缓存状态为正常播放状态, 在所述最大 DTS或最大 PTS小于本次状态估计 周期内正常播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并 记录本次缓冲状态的开始时间和持续时间, 在所述最大 DTS或最大 PTS大 于或等于本次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓 存状态为正常播放状态并更新本次缓存状态的 持续时间。这里的本次状态 估计前的缓存状态是指上一次状态估计获取的 缓存状态。

进一歩可选的, 状态估计模块 43还用于如果所述本次状态估计前的 缓存状态为结束播放状态, 确定本次缓存状态为结束播放状态。

进一歩可选的, 状态估计模块 43还用于如果所述本次状态估计前的 缓存状态为停止播放状态, 确定本次缓存状态为停止播放状态。

基于上述, 状态估计模块 43用于记录本次缓存状态的开始时间和持 续时间, 包括:

状态估计模块 43具体用于在本次缓存状态与所述本次状态估 前的 缓存状态不一致时, 根据所述第一持续播放时长和所述本次状态估 计前的 缓存状态, 更新当前媒体数据自身播放进度对应的时间点 , 根据更新后的 媒体数据自身播放进度对应的时间点获取本次 缓存状态的开始时间和持 续时间。

如图 5所示, 所述缓存状态估计设备还包括: 状态修正模块 46。

状态修正模块 46, 与状态估计模块 43连接, 用于根据用户请求, 对 状态估计模块 43估计出的本次缓存状态以及本次缓存状态的 始时间和 持续时间进行修正。

其中, 所述用户请求可以包括: 播放请求、 重新播放请求、搜索请求、 停止播放请求或结束播放请求。

状态修正模块 46具体用于如果所述用户请求为播放请求或搜 请求, 则将本次缓存状态修正为初始缓冲状态并记录 修正后本次缓存状态的开 始时间和持续时间; 如果所述用户请求为重新播放请求, 则将本次缓存状 态修正为正常播放状态并记录修正后本次缓存 状态的开始时间和持续时 间; 如果所述用户请求为结束播放请求, 则将本次缓存状态修正为结束播 放状态并记录修正后本次缓存状态的开始时间 和持续时间; 如果所述用户 请求为停止播放请求, 则将本次缓存状态修正为停止播放状态并记录 修正 后本次缓存状态的开始时间和持续时间。

在此说明, 所述缓存状态估计设备可以是所述终端, 或者可以是媒体 服务器或网络节点, 但不限于此。

本实施例提供的缓存状态估计设备的各功能模 块可用于执行图 1所示 缓存状态估计方法实施例的流程, 其具体工作原理不再赘述, 详见方法实 施例的描述。

本实施例提供的缓存状态估计设备, 可以根据终端在两次状态估计之 间接收的媒体数据对应的持续播放时长以及本 次状态估计前的缓存状态, 获得当前缓存中媒体数据对应的持续播放时长 , 然后根据本次状态估计前 的缓存状态、 预设的缓存配置参数与当前缓存中媒体数据对 应的持续播放 时长, 对缓存进行状态估计获取本次缓存状态以及本 次缓存状态的开始时 间和持续时间, 其对缓存状态进行估计的过程不受传输协议的 限制, 可以 用于对 TCP应用场景下的缓存状态进行估计, 为在 TCP应用场景下对音视 频的播放质量进行评估提供条件。

图 6为本发明实施例提供的又一种缓存状态估计 备的结构示意图。 如图 6所示, 所述缓存状态估计设备包括: 存储器 61和处理器 62。

存储器 61, 用于存储程序。 具体地, 所述程序可以包括程序代码, 所 述程序代码包括计算机操作指令。 存储器 61可能包含高速 RAM存储器, 也可能还包括非易失性存储器 (non-volati le memory ) , 例如至少一个 磁盘存储器。

处理器 62, 用于执行存储器 61存储的程序, 以用于: 获取终端在本 次状态估计周期内接收的媒体数据对应的第一 持续播放时长; 根据本次状 态估计前的缓存状态以及所述第一持续播放时 长, 计算当前缓存中的媒体 数据对应的第二持续播放时长; 根据本次状态估计前的缓存状态、 预设的 缓存配置参数和所述第二持续播放时长, 对所述缓存进行状态估计, 获取 本次缓存状态以及本次缓存状态的开始时间和 持续时间。

在本实施例中, 所述缓存的缓存状态包括: 初始缓冲状态、 正常播放 状态、 再缓冲状态、 结束播放状态和停止播放状态中的至少一个。 其中, 缓存状态估计的初始状态设置为初始缓冲状态 。 基于此, 如果本次状态估 计为第一次状态估计, 则本次状态估计前的缓存状态为初始缓冲状态 ; 如 果本次状态估计非第一次状态估计, 则本次状态估计前的缓存状态可以 为: 初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态或停止播 放状态; 相应的, 无论本次状态估计是否是第一次状态估计, 则估计出的 本次缓存状态可以为: 初始缓冲状态、 正常播放状态、 再缓冲状态、 结束 播放状态或停止播放状态。

在一可选实施方式中, 处理器 62用于获取第一持续播放时长包括: 处理器 62具体用于根据所述终端在本次状态估计周期 接收的媒体数据 的大小和当前媒体信息, 计算所述第一持续播放时长。

一种情况, 所述终端在本次状态估计周期内接收的媒体数 据的大小为 所述终端在本次状态估计周期内接收的媒体数 据的字节数; 所述当前媒体 信息为当前媒体码率。 处理器 62具体用于根据所述终端在本次状态估计 周期内接收的媒体数据的字节数和当前媒体码 率, 计算所述第一持续播放 时长。

可选的, 所述缓存状态估计设备还包括: 通信接口 63。

如果所述缓存状态估计设备为媒体服务器, 则通信接口 63可用于在 处理器 62计算所述第一持续播放时长之前, 接收所述终端发送的反馈报 文, 所述反馈报文是终端针对所述终端在本次状态 估计周期内接收的媒体 数据所发送的。 基于此, 处理器 62具体用于根据所述反馈报文, 获取所 述终端在本次状态估计周期内接收的媒体数据 的字节数, 然后根据所述终 端在本次状态估计周期内接收的媒体数据的字 节数和当前媒体码率, 计算 所述第一持续播放时长。

或者, 如果所述缓存状态估计设备为所述终端, 则通信接口 63可用 于在处理器 62计算所述第一持续播放时长之前, 接收媒体数据。 处理器 62具体用于解析通信接口 63在本次状态估计周期内接收的媒体数据, 获 取通信接口 63在本次状态估计周期内接收的媒体数据的字 数, 然后根 据通信接口 63在本次状态估计周期内接收的媒体数据的字 数和当前媒 体码率, 计算所述第一持续播放时长。

另一种情况, 终端在本次状态估计周期内接收的媒体数据的 大小为所 述终端在本次状态估计周期内接收的媒体数据 的帧数; 所述当前媒体信息 为当前媒体帧率。 基于此, 处理器 62具体用于解析所述终端在本次状态 估计周期内接收的媒体数据, 获得所述终端在本次状态估计周期内接收的 媒体数据的帧数, 根据所述终端在本次状态估计周期内接收的媒 体数据的 帧数和当前媒体帧率, 计算所述第一持续播放时长。

在另一可选实施方式中, 处理器 62用于获取第一持续播放时长包括: 处理器 62具体用于解析所述终端在本次状态估计周期 接收的媒体数据, 获取所述媒体数据包括的完整帧的最大 DTS和最小 DTS , 或者获取所述媒 体数据包括的完整帧的最大 PTS和最小 PTS , 以最大 DTS与最小 DTS之差 作为所述第一持续播放时长, 或者以最大 PTS与最小 PTS之差作为所述第 一持续播放时长。

在一可选实施方式中, 处理器 62用于计算第二持续播放时长包括: 处理器 62具体用于在所述本次状态估计前的缓存状态 除正常播放状态 之外的其他缓存状态时, 将到上一次状态估计结束时所述缓存中媒体数 据 对应的持续播放时长与所述第一持续播放时长 之和作为所述第二持续播 放时长, 或者在所述本次状态估计前的缓存状态是正常 播放状态时, 将到 上一次状态估计结束时所述缓存中媒体数据对 应的持续播放时长与第一 持续播放时长之和, 减去本次状态估计周期内正常播放所需的媒体 数据对 应的持续播放时长, 得到所述第二持续播放时长。 这里的本次状态估计前 的缓存状态是指上一次状态估计获取的缓存状 态。

可选的, 所述缓存配置参数包括: 初始缓冲时间和再缓冲时间。 所述 初始缓冲时间是指在所述终端第一次播放媒体 数据前, 为实现正常播放所 述缓存中最少应该存储的媒体数据对应的持续 播放时长; 所述再缓冲时间 是指从所述终端播放媒体数据过程中再缓冲开 始, 到所述终端重新播放媒 体数据前, 所述缓存中最少应该存储的媒体数据对应的持 续播放时长。

基于此, 处理器 62用于根据本次状态估计前的缓存状态、 预设的缓 存配置参数和所述第二持续播放时长, 对所述缓存进行状态估计, 获取本 次缓存状态以及本次缓存状态的开始时间和持 续时间包括: 处理器 62具 体用于如果所述本次状态估计前的缓存状态为 初始缓冲状态, 在所述第二 持续播放时长大于或等于所述初始缓冲时间时 , 确定本次缓存状态为正常 播放状态并记录本次缓存状态的开始时间和持 续时间, 在所述第二持续播 放时长小于所述初始缓冲时间时, 确定本次缓存状态为所述初始缓冲状态 并更新本次缓存状态的持续时间, 以及如果所述本次状态估计前的缓存状 态为再缓冲状态, 在所述第二持续播放时长大于或等于所述再缓 冲时间 时, 确定本次缓存状态为正常播放状态并记录本次 缓存状态的开始时间和 持续时间, 在所述第二持续播放时长小于所述再缓冲时间 时, 确定本次缓 存状态为再缓冲状态并更新本次缓存状态的持 续时间。

进一歩可选的, 处理器 62还用于如果所述本次状态估计前的缓存状 态为正常播放状态, 在所述第二持续播放时长小于或等于预设的第 二门 限, 确定本次缓冲状态为再缓冲状态并记录本次缓 冲状态的开始时间和持 续时间, 在所述第二持续播放时长大于所述预设的第二 门限时, 确定本次 缓存状态为正常播放状态并更新本次缓存状态 的持续时间。

进一歩可选的, 处理器 62还用于如果所述本次状态估计前的缓存状 态为正常播放状态, 在所述最大 DTS或最大 PTS小于本次状态估计周期内 正常播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本 次缓冲状态的开始时间和持续时间, 在所述最大 DTS或最大 PTS大于或等 于本次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓存状态 为正常播放状态并更新本次缓存状态的持续时 间。这里的本次状态估计前 的缓存状态是指上一次状态估计获取的缓存状 态。

进一歩可选的, 处理器 62还用于如果所述本次状态估计前的缓存状 态为结束播放状态, 确定本次缓存状态为结束播放状态。

进一歩可选的, 处理器 62还用于如果所述本次状态估计前的缓存状 态为停止播放状态, 确定本次缓存状态为停止播放状态。

其中, 处理器 62用于记录本次缓存状态的开始时间和持续时 , 包 括: 处理器 62具体用于在本次缓存状态与所述本次状态估 前的缓存状 态不一致时, 根据所述第一持续播放时长和所述本次状态估 计前的缓存状 态, 更新当前媒体数据自身播放进度对应的时间点 , 根据更新后的媒体数 据自身播放进度对应的时间点获取本次缓存状 态的开始时间和持续时间。

在一可选实施方式中, 通信接口 63还用于接收用户请求。 处理器 62 还用于根据所述用户请求, 对本次缓存状态以及本次缓存状态的开始时间 和持续时间进行修正。

所述用户请求包括: 播放请求、 重新播放请求、 搜索请求、 停止播放 请求或结束播放请求。

处理器 62用于根据所述用户请求, 对本次缓存状态以及本次缓存状 态的开始时间和持续时间进行修正, 包括: 处理器 62具体用于如果所述 用户请求为播放请求或搜索请求, 则将本次缓存状态修正为初始缓冲状态 并记录修正后本次缓存状态的开始时间和持续 时间; 如果所述用户请求为 重新播放请求, 则将本次缓存状态修正为正常播放状态并记录 修正后本次 缓存状态的开始时间和持续时间; 如果所述用户请求为结束播放请求, 则 将本次缓存状态修正为结束播放状态并记录修 正后本次缓存状态的开始 时间和持续时间; 如果所述用户请求为停止播放请求, 则将本次缓存状态 修正为停止播放状态并记录修正后本次缓存状 态的开始时间和持续时间。

本实施例的缓存状态估计设备除了包括存储器 61、 处理器 62和通信 接口 63之外, 还包括电源模块、 显示器、 输入输出设备等。

可选的, 在具体实现上, 如果存储器 61、 处理器 62和通信接口 63 等独立实现, 则存储器 61、处理器 62和通信接口 63等可以通过总线相互 连接并完成相互间的通信。 所述总线可以是工业标准体系结构 (Industry Standard Archi tecture , 简称为 ISA) 总线、 夕卜部设备互连 ( Peripheral Component , 简称为 PCI ) 总线或扩展工业标准体系结构 (Extended

Industry Standard Architecture , 简称为 EISA ) 总线等。 所述总线可以 分为地址总线、 数据总线、 控制总线等。 为便于表示, 图 6中仅用一条粗 线表示, 但并不表示仅有一根总线或一种类型的总线。

可选的, 在具体实现上, 如果存储器 61、 处理器 62和通信接口 63 等集成在一块芯片上实现, 则存储器 61、处理器 62和通信接口 63等可以 通过内部接口完成相同间的通信。

在此说明, 所述缓存状态估计设备可以是所述终端, 或者可以是媒体 服务器或网络节点, 但不限于此。

本实施例提供的缓存状态估计设备可用于执行 图 1所示缓存状态估计 方法实施例的流程, 其具体工作原理不再赘述, 详见方法实施例的描述。

本实施例提供的缓存状态估计设备, 可以根据终端在两次状态估计之 间接收的媒体数据对应的持续播放时长以及本 次状态估计前的缓存状态, 获得当前缓存中媒体数据对应的持续播放时长 , 然后根据本次状态估计前 的缓存状态、 预设的缓存配置参数与当前缓存中媒体数据对 应的持续播放 时长, 对缓存进行状态估计获取本次缓存状态以及本 次缓存状态的开始时 间和持续时间, 其对缓存状态进行估计的过程不受传输协议的 限制, 可以 用于对 TCP应用场景下的缓存状态进行估计, 为在 TCP应用场景下对音视 频的播放质量进行评估提供条件。

本领域普通技术人员可以理解: 实现上述各方法实施例的全部或部分 歩骤可以通过程序指令相关的硬件来完成。前 述的程序可以存储于一计算 机可读取存储介质中。 该程序在执行时, 执行包括上述各方法实施例的歩 骤; 而前述的存储介质包括: R0M、 RAM, 磁碟或者光盘等各种可以存储程 序代码的介质。

最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非 对其限制; 尽管参照前述各实施例对本发明进行了详细的 说明, 本领域的 普通技术人员应当理解: 其依然可以对前述各实施例所记载的技术方案 进 行修改, 或者对其中部分或者全部技术特征进行等同替 换; 而这些修改或 者替换, 并不使相应技术方案的本质脱离本发明各实施 例技术方案的范 围。