CN113573062B - 流量整形方法、装置与电子设备 - Google Patents

流量整形方法、装置与电子设备 Download PDF

Info

Publication number
CN113573062B
CN113573062B CN202010358023.5A CN202010358023A CN113573062B CN 113573062 B CN113573062 B CN 113573062B CN 202010358023 A CN202010358023 A CN 202010358023A CN 113573062 B CN113573062 B CN 113573062B
Authority
CN
China
Prior art keywords
media stream
target media
transmission rate
acceptable
time delay
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.)
Active
Application number
CN202010358023.5A
Other languages
English (en)
Other versions
CN113573062A (zh
Inventor
居然
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010358023.5A priority Critical patent/CN113573062B/zh
Priority to PCT/CN2021/081668 priority patent/WO2021218479A1/zh
Publication of CN113573062A publication Critical patent/CN113573062A/zh
Application granted granted Critical
Publication of CN113573062B publication Critical patent/CN113573062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources

Abstract

本申请提供一种流量整形方法、装置与电子设备,涉及通信技术领域,其中,该方法包括:确定待播放的目标媒体流对应的可接受时延,并根据可接受时延和目标媒体流的码流信息确定恒定传输速率,然后根据恒定传输速率传输目标媒体流。其中,可接受时延为客户端可接受的目标媒体流的媒体播放时延,目标媒体流是采用可变码率编码的,目标媒体流的码流信息包括目标媒体流包含的各分片的大小和播放时长。本申请提供的技术方案可以提高网络传输性能和媒体播放效果。

Description

流量整形方法、装置与电子设备
技术领域
本申请涉及通信技术领域,尤其涉及一种流量整形方法、装置与电子设备。
背景技术
在进行媒体传输时,一般都会对媒体进行编码后再进行传输,以提高传输效率。其中,可变码率(Variable Bit Rate,VBR)编码技术由于能够保证较高的媒体质量,而被普遍应用在各种媒体传输系统中。
VBR编码技术是根据图像或声音的复杂程度确定采用的编码码率,以视频传输为例,在图像不复杂的情况下,用比较低的码率编码;在图像复杂或者内容变化较大的情况下,用较大的码率编码,即VBR编码技术的码率可以随着图像的复杂程度的不同而变化,因而其编码效率较高,且可以保证视频质量。根据上述的VBR编码技术的编码原理可知,VBR编码技术具有码率变化大的特征,在实际应用中,其峰值码率可以达到甚至远远超过平均速率的数十倍,因此,采用VBR编码技术进行编码的媒体数据流量波动幅度较大。
而媒体流量波动会降低网络的资源利用率,且容易引起网络拥塞和延迟等问题,因而会导致网络传输性能较低,影响媒体播放效果。
发明内容
有鉴于此,本申请提供一种流量整形方法、装置与电子设备,用于提高网络传输性能和媒体播放效果。
为了实现上述目的,第一方面,本申请实施例提供一种流量整形方法,包括:
确定待播放的目标媒体流对应的可接受时延,并根据所述可接受时延和所述目标媒体流的码流信息确定恒定传输速率,然后根据所述恒定传输速率传输所述目标媒体流。其中,所述可接受时延为客户端可接受的目标媒体流的媒体播放时延,所述目标媒体流是采用可变码率编码的,所述目标媒体流的码流信息包括所述目标媒体流包含的各分片的大小和播放时长。
通过将VBR媒体流采用恒定传输速率传输,可以平滑传输数据流量,有效提高网络传输性能,同时相比生成恒定码率的媒体数据进行传输的方式,可以有效提高媒体质量和编码效率;另外,在确定恒定传输速率时,根据客户端的可接受时延和目标媒体流的码流信息进行确定,这样可以提高流量整形的精确度,减少客户端的卡顿现象,提高媒体播放效果。
在第一方面的一种可能的实施方式中,所述可接受时延是客户端发送的。
在第一方面的一种可能的实施方式中,所述可接受时延是预先设置的,或根据所述目标媒体流的广告播放时长确定的。
在第一方面的一种可能的实施方式中,所述方法还包括:向所述客户端发送所述可接受时延,以指示所述客户端在需要播放所述目标媒体流的下一媒体流的情况下,根据所述可接受时延请求所述下一媒体流。这样客户端可以更准确的确定传输下一媒体流的时间,减少媒体传输过早和过晚对媒体播放效果产生的影响。
在第一方面的一种可能的实施方式中,在所述根据所述可接受时延和所述目标媒体流的码流信息确定恒定传输速率之后,所述根据所述恒定传输速率传输所述目标媒体流之前,所述方法还包括:若网络带宽信息满足预设条件,则增大所述恒定传输速率。这样可以提高网络资源的利用率。
在第一方面的一种可能的实施方式中,所述目标媒体流具有对应的原始媒体流,所述原始媒体流是采用恒定码率编码的,且所述可接受时延是预先设置的;所述根据所述可接受时延和所述目标媒体流的码流信息确定恒定传输速率,包括:
将所述原始媒体流转换为采用可变码率编码的第一媒体流;并根据所述第一媒体流的码流信息和所述可接受时延,确定第一传输速率。
若预先设置的可保障传输速率减第一传输速率之差小于等于预设的速率阈值,则将所述第一媒体流确定为所述目标媒体流,将所述第一传输速率确定为所述恒定传输速率;若所述预先设置的可保障传输速率减第一传输速率之差大于所述速率阈值,则调整可变码率编码参数,返回执行将所述原始媒体流转换为采用可变码率编码的第一媒体流的步骤。
通过上述实施方式,可以将采用CBR编码的媒体转换成采用VBR编码的媒体,这样可以有效的提高媒体质量,进而提高媒体播放效果,并可以保持CBR的流量恒定特性,提高网络传输性能。
在第一方面的一种可能的实施方式中,所述目标媒体流的码流信息是采用时间序列分析方法确定的。这样可以扩大流量整形的适用范围。
在第一方面的一种可能的实施方式中,在所述根据所述恒定传输速率传输所述目标媒体流之前,所述方法还包括:与客户端协商确定所述客户端的媒体缓冲区大小,以指示客户端根据所述媒体缓冲区大小分配用于缓存目标媒体流的缓冲区,所述媒体缓冲区大小大于等于所述目标媒体流中数据量最大的分片的大小。这样可以进一步提高流量整形的精确度,减少客户端的卡顿现象,提高媒体播放效果。
在第一方面的一种可能的实施方式中,所述媒体缓冲区大小是所述客户端发送的,所述目标媒体流的分辨率是根据所述媒体缓冲区大小确定的。
在第一方面的一种可能的实施方式中,所述恒定传输速率与所述可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为所述恒定传输速率,d为所述可接受时延,ts为所述目标媒体流的播放起始时间,te为所述目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
第二方面,本申请实施例提供一种流量整形方法,包括:
确定待播放的目标媒体流对应的恒定传输速率;并根据所述恒定传输速率和所述目标媒体流的码流信息确定可接受时延,然后根据所述可接受时延和所述恒定传输速率传输所述目标媒体流,所述可接受时延为客户端可接受的目标媒体流的媒体播放时延。
通过将VBR媒体流采用恒定传输速率传输,可以平滑传输数据流量,有效提高网络传输性能,同时相比生成恒定码率的媒体数据进行传输的方式,可以有效提高媒体质量和编码效率;另外,在进行流量整形时,根据恒定传输速率和目标媒体流的码流信息确定客户端的可接受时延,然后根据可接受时延和恒定传输速率传输目标媒体流,这样可以提高流量整形的精确度,减少客户端的卡顿现象,提高媒体播放效果。
在第二方面的一种可能的实施方式中,所述确定待播放的目标媒体流对应的恒定传输速率,包括:根据网络带宽信息确定待播放的目标媒体流对应的恒定传输速率。这样可以提高确定的恒定传输速率的准确性,进而提高网络资源利用率。
在第二方面的一种可能的实施方式中,所述根据所述可接受时延和所述恒定传输速率传输所述目标媒体流,包括:若所述可接受时延满足预设要求,则采用所述恒定传输速率传输所述目标媒体流;若所述可接受时延不满足预设要求,则调整所述目标媒体流的分辨率,使基于调整后的目标媒体流的码流信息确定的可接受时延满足所述预设要求;并采用所述恒定传输速率传输调整后的所述目标媒体流。这样可以提高流量整形的精确度,提高客户端的媒体播放效果。
在第二方面的一种可能的实施方式中,在所述若所述可接受时延不满足预设要求,则调整所述目标媒体流的分辨率之前,所述方法还包括:
向所述客户端发送所述可接受时延;接收所述客户端发送的确认信息,所述确认信息用于指示所述可接受时延是否满足预设要求。
在第二方面的一种可能的实施方式中,所述恒定传输速率与所述可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为所述恒定传输速率,d为所述可接受时延,ts为所述目标媒体流的播放起始时间,te为所述目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
第三方面,本申请实施例提供一种流量整形方法,包括:
从媒体发送端获取待播放的目标媒体流的码流信息,然后根据预先确定的所述目标媒体流对应的可接受时延和所述目标媒体流的码流信息,确定恒定传输速率;再根据所述恒定传输速率传输所述目标媒体流。其中,所述目标媒体流是采用可变码率编码的;所述可接受时延为客户端可接受的目标媒体流的媒体播放时延,所述目标媒体流的码流信息包括所述目标媒体流包含的各分片的大小和播放时长。
通过将VBR媒体流采用恒定传输速率传输,可以平滑传输数据流量,有效提高网络传输性能,同时相比生成恒定码率的媒体数据进行传输的方式,可以有效提高媒体质量和编码效率;另外,在确定恒定传输速率时,根据客户端的可接受时延和目标媒体流的码流信息进行确定,这样可以提高流量整形的精确度,减少客户端的卡顿现象,提高媒体播放效果。
在第三方面的一种可能的实施方式中,所述根据所述恒定传输速率传输所述目标媒体流,包括:向所述媒体发送端发送数据传输请求,所述数据传输请求用于请求传输所述目标媒体流,所述数据传输请求中携带所述恒定传输速率;然后接收所述媒体发送端根据所述恒定传输速率发送的所述目标媒体流。
在第三方面的一种可能的实施方式中,所述方法还包括:在距离所述目标媒体流的播放结束时间的时长大于等于所述可接受时延的情况下,向所述媒体发送端请求获取下一媒体流。这样客户端可以更准确的确定传输下一媒体流的时间,减少媒体传输过早和过晚对媒体播放效果产生的影响。
在第三方面的一种可能的实施方式中,所述恒定传输速率与所述可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为所述恒定传输速率,d为所述可接受时延,ts为所述目标媒体流的播放起始时间,te为所述目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
第四方面,本申请实施例提供一种流量整形装置,包括:参数确定模块和传输模块,其中:
所述参数确定模块用于:确定待播放的目标媒体流对应的可接受时延,并根据所述可接受时延和所述目标媒体流的码流信息确定恒定传输速率,其中,所述可接受时延为客户端可接受的目标媒体流的媒体播放时延,所述目标媒体流是采用可变码率编码的,所述目标媒体流的码流信息包括所述目标媒体流包含的各分片的大小和播放时长;
所述传输模块用于:根据所述恒定传输速率传输所述目标媒体流。
在第四方面的一种可能的实施方式中,所述可接受时延是客户端发送的。
在第四方面的一种可能的实施方式中,所述可接受时延是预先设置的,或根据所述目标媒体流的广告播放时长确定的。
在第四方面的一种可能的实施方式中,所述传输模块还用于:向所述客户端发送所述可接受时延,以指示所述客户端在需要播放所述目标媒体流的下一媒体流的情况下,根据所述可接受时延请求所述下一媒体流。
在第四方面的一种可能的实施方式中,所述参数确定模块还用于:在所述根据所述可接受时延和所述目标媒体流的码流信息确定恒定传输速率之后,所述根据所述恒定传输速率传输所述目标媒体流之前,在网络带宽信息满足预设条件的情况下,增大所述恒定传输速率。
在第四方面的一种可能的实施方式中,所述目标媒体流具有对应的原始媒体流,所述原始媒体流是采用恒定码率编码的,且所述可接受时延是预先设置的;所述参数确定模块具体用于:
将所述原始媒体流转换为采用可变码率编码的第一媒体流;
根据所述第一媒体流的码流信息和所述可接受时延,确定第一传输速率;
若预先设置的可保障传输速率减第一传输速率之差小于等于预设的速率阈值,则将所述第一媒体流确定为所述目标媒体流,将所述第一传输速率确定为所述恒定传输速率;
若所述预先设置的可保障传输速率减第一传输速率之差大于所述速率阈值,则调整可变码率编码参数,返回执行将所述原始媒体流转换为采用可变码率编码的第一媒体流的步骤。
在第四方面的一种可能的实施方式中,所述目标媒体流的码流信息是采用时间序列分析方法确定的。
在第四方面的一种可能的实施方式中,所述参数确定模块还用于:在所述传输模块根据所述恒定传输速率传输所述目标媒体流之前,与客户端协商确定所述客户端的媒体缓冲区大小,以指示客户端根据所述媒体缓冲区大小分配用于缓存目标媒体流的缓冲区,所述媒体缓冲区大小大于等于所述目标媒体流中数据量最大的分片的大小。
在第四方面的一种可能的实施方式中,所述媒体缓冲区大小是所述客户端发送的,所述目标媒体流的分辨率是根据所述媒体缓冲区大小确定的。
在第四方面的一种可能的实施方式中,所述恒定传输速率与所述可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为所述恒定传输速率,d为所述可接受时延,ts为所述目标媒体流的播放起始时间,te为所述目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
第五方面,本申请实施例提供一种流量整形装置,包括:参数确定模块和传输模块,其中:
所述参数确定模块用于:确定待播放的目标媒体流对应的恒定传输速率;并根据所述恒定传输速率和所述目标媒体流的码流信息确定可接受时延,所述可接受时延为客户端可接受的目标媒体流的媒体播放时延;
所述传输模块用于:根据所述可接受时延和所述恒定传输速率传输所述目标媒体流。
在第五方面的一种可能的实施方式中,所述参数确定模块具体用于:
根据网络带宽信息确定待播放的目标媒体流对应的恒定传输速率。
在第五方面的一种可能的实施方式中,所述传输模块具体用于:在所述可接受时延满足预设要求的情况下,采用所述恒定传输速率传输所述目标媒体流;在所述可接受时延不满足预设要求的情况下,调整所述目标媒体流的分辨率,使基于调整后的目标媒体流的码流信息确定的可接受时延满足所述预设要求;并采用所述恒定传输速率传输调整后的所述目标媒体流。这样可以提高流量整形的精确度,提高客户端的媒体播放效果。
在第五方面的一种可能的实施方式中,所述传输模块还用于:在调整所述目标媒体流的分辨率之前,向所述客户端发送所述可接受时延;接收所述客户端发送的确认信息,所述确认信息用于指示所述可接受时延是否满足预设要求。
在第五方面的一种可能的实施方式中,所述恒定传输速率与所述可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为所述恒定传输速率,d为所述可接受时延,ts为所述目标媒体流的播放起始时间,te为所述目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
第六方面,本申请实施例提供一种流量整形装置,包括:
获取模块,用于从媒体发送端获取待播放的目标媒体流的码流信息,所述目标媒体流是采用可变码率编码的;
确定模块,用于根据预先确定的所述目标媒体流对应的可接受时延和所述目标媒体流的码流信息,确定恒定传输速率,其中,所述可接受时延为客户端可接受的目标媒体流的媒体播放时延,所述目标媒体流的码流信息包括所述目标媒体流包含的各分片的大小和播放时长;
传输模块,用于根据所述恒定传输速率传输所述目标媒体流。
在第六方面的一种可能的实施方式中,所述传输模块具体用于:
向所述媒体发送端发送数据传输请求,所述数据传输请求用于请求传输所述目标媒体流,所述数据传输请求中携带所述恒定传输速率;
接收所述媒体发送端根据所述恒定传输速率发送的所述目标媒体流。
在第六方面的一种可能的实施方式中,所述获取模块还用于:在距离所述目标媒体流的播放结束时间的时长大于等于所述可接受时延的情况下,向所述媒体发送端请求获取下一媒体流。
在第六方面的一种可能的实施方式中,所述恒定传输速率与所述可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为所述恒定传输速率,d为所述可接受时延,ts为所述目标媒体流的播放起始时间,te为所述目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
第七方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器用于存储计算机程序;处理器用于在调用计算机程序时执行上述第一方面、第二方面或第三方面所述的方法。
第八方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面、第二方面或第三方面所述的方法。
第九方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面、第二方面或第三方面所述的方法。
第十方面,本申请实施例提供一种芯片系统,包括处理器,所述处理器与存储器耦合,所述处理器执行存储器中存储的计算机程序,以实现上述第一方面、第二方面或第三方面所述的方法。其中,所述芯片系统可以为单个芯片,或者多个芯片组成的芯片模组。
可以理解的是,上述第四方面至第十方面的有益效果可以参见上述第一方面至第三方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用场景的示意图;
图2为本申请实施例提供的流量整形方法的流程示意图;
图3为本申请实施例提供的媒体流转换示意图;
图4为本申请实施例提供的确定恒定传输速率的流程示意图;
图5为本申请实施例提供的另一种应用场景的示意图;
图6为本申请实施例提供的一种流量整形装置的结构示意图;
图7为本申请实施例提供的另一种流量整形装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
为了便于理解,下面先对本申请实施例涉及的一些相关技术进行说明。
目前的媒体编码中,普遍采用VBR编码技术,以保证媒体质量和编码效率。以视频编码为例,VBR编码技术的码率可以随着图像的复杂程度的不同而变化,即该编码技术的码率变化较大,这样会导致媒体数据流量具有波动幅度大的特点。而媒体流量波动会降低网络的资源利用率,且容易引起网络拥塞和延迟等问题,因而会导致网络传输性能较低,并影响媒体播放效果。
目前业界解决上述问题的方案主要包括两种:一种是通过改变编码技术来生成恒定码率的媒体数据,例如采用恒定码率(Constant Bit Rate,CBR)、约束可变码率(Constraint Variable Bit Rate,CVBR)或平均码率(Average Bit Rate,ABR)等编码技术;另一种是通过流量整形技术调整VBR媒体流的传输速率,来减小媒体流量波动,进而提高网络传输性能和媒体播放效果。
对于第一种方案,其中,CBR是以恒定码率方式进行编码,在媒体内容变化较大的场景,例如运动场景中,由于码率恒定,因此会降低媒体质量,即CBR编码技术是以牺牲媒体质量来保证媒体流量的稳定,而且该编码技术编码效率较低。CVBR一般是让用户输入最大码率和最小码率,媒体内容变化较小时,码率稳定在最小码率,媒体内容变化较大时,码率大于最小码率且不超过最大码率,该编码技术仍然存在码率波动的问题,即存在一定的媒体流量波动问题,并且也牺牲了一定的媒体质量。ABR是在一定的时间范围内达到设定的码率,但是局部码率的峰值可以超过设定的码率,即平均码率恒定,该编码技术只是限制了平均码率,并没有消除码率的波动,因而同样存在一定的媒体流量波动问题。
对于第二种方案,其相关技术包括缓冲发送方法、传输控制协议(TransmissionControl Protocol,TCP)Pacing拥塞控制方法和约定访问速度(Committed Access Rate,CAR)等,其中,缓冲发送方法是将媒体数据放入缓冲区或队列内,再根据特定的算法(例如漏桶算法)均匀的向外发送这些被缓存的数据;TCPPacing拥塞控制方法与缓冲发送方法类似,是将一个TCP发送窗口内的媒体数据以确定的速率发送;CAR是限制流量不能超过设定的阈值,当超过设定的阈值后,可以进行缓存降速。目前的这些流量整形技术一般都是只根据数据流量的流量大小进行流量控制,其控制精度有限,比较容易引起客户端媒体卡顿的现象而影响媒体播放效果。
针对上述问题,本申请实施例提供一种流量整形方法,通过将VBR媒体流采用恒定传输速率传输,来平滑传输数据流量,提高网络传输性能,同时保证媒体质量;并且通过在进行流量整形时,综合考虑媒体数据的码流信息和客户端可接受时延等要素,来提高流量整形的精确度,缓解客户端的卡顿现象,提高媒体播放效果。
下面结合几种应用场景来详细描述本申请的技术方案。
图1为本申请实施例提供的一种应用场景的示意图,如图1所示,该应用场景中涉及的设备可以包括:服务端100和客户端200,服务端100和客户端200直接通过网络进行数据传输。
服务端100和客户端200都可以是服务器、桌上型计算机、笔记本电脑、掌上电脑、手机或智能电视等具备计算和存储等功能的电子设备。
服务端100与客户端200之间进行通信的网络可以包括以太网、无线局域网(Wireless Local Area Networks,WLAN)(如无线保真(Wireless Fidelity,Wi-Fi)网络)和/或移动通信网络等。
服务端100可以提供点播和直播服务,用户可以通过客户端200向服务端100请求获取媒体数据进行播放,其中,该媒体获取请求中可以携带待播放的目标媒体流的媒体标识、播放起止时间和媒体分辨率等信息;目标媒体流可以是视频流,也可以是音频流,为了便于理解,本申请实施例中以视频流为例进行示例性说明。
在服务端100接收到客户端200的媒体获取请求后,服务端100和客户端200可以根据目标媒体流的码流信息,对目标媒体流进行流量整形,以平滑传输数据流量,提高网络传输性能和媒体播放效果。其中,服务端100和客户端200在进行流量整形时,具体采用的流量整形方法可以参见图2。
图2为本申请实施例提供的流量整形方法的流程示意图,如图2所示,该方法可以包括如下步骤:
S110、服务端与客户端协商确定恒定传输速率和可接受时延。
本实施例中,服务端接收到客户端的媒体获取请求后,可以与客户端协商确定恒定传输速率和客户端的可接受时延等参数,其中,可接受时延为客户端可接受的目标媒体流的媒体播放时延,恒定传输速率和可接受时延相互约束,可以根据其中一个参数确定另一个参数。在具体确定另一个参数时,可以根据目标媒体流的码流信息和如下约束条件进行确定:
S(t)≤(t-ts+d)c,t∈[ts,te] (1)
其中,c为恒定传输速率,d为客户端的可接受时延,ts为目标媒体流的播放起始时间,te为目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
对于媒体流量已知的场景,例如视频点播场景,视频流(即目标媒体流)的码流信息可以根据服务端上的视频存储信息获知。该场景下,服务端上存储有各个视频文件,用户可以通过服务端提供的门户网站选择想要观看的视频进行下载和播放;服务端存储的视频文件可以预先采用分片技术分割成多个分片,各个分片可以单独传输、解码和播放,以便使视频边下载边播放。其中,视频文件中的分片的存储格式可以是HTTP实时流(HTTP LiveStreaming,HLS)协议中的TS格式,也可以是HTTP上的动态自适应流传输(DynamicAdaptive Streaming over HTTP,MPEG-DASH)标准中的m4s或mp4格式,还可以是其他格式,本实施例对此不做特别限定。每个分片包括至少一帧视频数据,每个分片具有对应的数据量大小和播放时长等码流信息,目标媒体流的码流信息包括目标媒体流包含的各分片的码流信息。
对于媒体流量未知的场景,例如视频直播场景,目标媒体流的码流信息可以采用时间序列分析方法进行估算,在具体实现时,可以采用任意一种相关的时间序列分析算法,本实施例对此不做特别限定。
本实施例中,确定恒定传输速率和可接受时延的过程可以在服务端执行,也可以在客户端执行,其中,在服务端执行时,服务端可以采用但不限于如下两种方式确定恒定传输速率和可接受时延:
第一种:先确定目标媒体流对应的可接受时延,再根据可接受时延和目标媒体流的码流信息确定目标媒体流对应的恒定传输速率。
具体的,可接受时延可以是客户端发送的,该可接受时延具体可以携带在媒体获取请求中,当然也可以携带在其他消息中,本实施例对此不做特别限定。
可接受时延也可以是服务端单独确定的,其中,服务端可以根据经验值或目前大多数客户端的基本配置信息,预先设置好可接受时延。在播放广告的情况下,服务端也可以根据目标媒体流的广告播放时长确定可接受时延,例如可以将可接受时延设定为不高于广告播放时长的值。
服务端确定了可接受时延后,可以根据该可接受时延、目标媒体流的码流信息和公式(1)中的约束条件,计算出用于传输该目标媒体流的恒定传输速率。
具体实现时,对于目标媒体流中每个分片的播放结束时间t,可以计算出该播放结束时间t与目标媒体流的播放起始时间ts之间的媒体数据量大小S(t),然后确定每个分片对应的恒定传输速率:S(t)/(t﹣ts+d),将各个分片对应的恒定传输速率中的最大值确定为该目标媒体流对应的恒定传输速率。下面举例进行说明:
图3为本申请实施例提供的媒体流转换示意图,如图3所示,目标媒体流包括四个TS格式的分片:0.ts(分片0)、1.ts(分片1)、2.ts(分片2)和3.ts(分片3),其中,分片0的大小为6KB,播放起止时间为0~1s;分片1的大小为4KB,播放起止时间为1~2s;分片2的大小为10KB,播放起止时间为2~3s;分片3的大小为4KB,播放起止时间为3~4s,即每个分片的播放时长均为1s,ts=0,te=4。
假设可接受时延d为2s,则对于分片0,t=1,对应的,S(t)=S(1)=6KB,t_sum=t﹣ts+d=1+2=3s;分片0对应的恒定传输速率c0=S(t)/t_sum=6/3=2KB/s。
对于分片1:t=2,S(t)=S(2)=6+4=10KB,t_sum=2+2=4s;分片1对应的恒定传输速率c1=S(t)/t_sum=10/4=2.5KB/s。
对于分片2:t=3,S(t)=S(3)=6+4+10=20KB,t_sum=3+2=5s;分片2对应的恒定传输速率c2=S(t)/t_sum=20/5=4KB/s。
对于分片3:t=4,S(t)=S(4)=6+4+10+4=24KB,t_sum=4+2=6s;分片3对应的恒定传输速率c3=S(t)/t_sum=24/6=4KB/s。
即各分片对应的恒定传输速率分别为:2KB/s、2.5KB/s、4KB/s和4KB/s,其中的最大值为4KB/s,则目标媒体流对应的恒定传输速率即可以为4KB/s。
如图3所示,原来需要4s传输完的四个分片,可以在6s内以恒定传输速率4KB/s传输完毕,即可以认为将VBR码流(即目标媒体流)转换成了恒定码流。对于转换后的恒定码流,服务端在第0秒开始传输分片0的前4KB数据;在第1秒开始传输分片0的后2KB数据和分片1的前2KB数据;在第2秒开始传输分片1的后2KB数据和分片2的前2KB数据;在第3秒到第5秒期间传输分片2的剩余8KB数据;在第5秒开始传输分片3的4KB数据。
服务端在确定了恒定传输速率后,在网络带宽资源比较空闲的情况下,也可以对确定的恒定传输速率进行调整,加快传输速度,提高网络资源利用率,即如果网络带宽信息满足预设条件,则可以增大恒定传输速率。
第二种:先确定目标媒体流对应的恒定传输速率,再根据恒定传输速率和目标媒体流的码流信息确定目标媒体流对应的可接受时延。
具体的,服务端可以根据经验值预先设置恒定传输速率,也可以根据网络带宽信息确定目标媒体流对应的恒定传输速率,比如:在可保障的网络带宽不低于100M的情况下,可以直接将发送速率确定为不高于100Mb/s的值。
服务端确定了恒定传输速率后,可以根据该恒定传输速率、目标媒体流的码流信息和公式(1)中的约束条件,计算出用于传输该目标媒体流的可接受时延。
具体实现时,对于目标媒体流中每个分片的播放结束时间t,可以计算出该播放结束时间t与目标媒体流的播放起始时间ts之间的媒体数据量大小S(t),然后确定每个分片对应的可接受时延:S(t)/c﹣(t﹣ts),将各个分片对应的可接受时延中的最大值确定为该目标媒体流对应的可接受时延。下面举例进行说明:
继续以上述图3为例,假设目标媒体流对应的恒定传输速率c为4KB/s,则对于分片0,ts=0,t=1,S(t)=S(1)=6KB,t﹣ts=1s;分片0对应的可接受时延d0=S(t)/c﹣(t﹣ts)=6/4﹣1=0.5s。
对于分片1:t=2,S(t)=S(2)=6+4=10KB,t﹣ts=2s;分片1对应的可接受时延d1=S(t)/c﹣(t﹣ts)=10/4﹣2=0.5s。
对于分片2:t=3,S(t)=S(3)=6+4+10=20KB,t﹣ts=3s;分片2对应的可接受时延d2=S(t)/c﹣(t﹣ts)=20/4﹣3=2s。
对于分片3:t=4,S(t)=S(4)=6+4+10+4=24KB,t﹣ts=4s;分片3对应的可接受时延d3=S(t)/c﹣(t﹣ts)=24/4﹣4=2s。
即各分片对应的可接受时延分别为:0.5s、0.5s、2s和2s,其中的最大值为2s,则目标媒体流对应的可接受时延即可以为2s。
服务端确定了可接受时延后,可以判断可接受时延是否满足预设要求,如果满足,可以直接采用确定的恒定传输速率传输目标媒体流;如果不满足,可以调整目标媒体流的分辨率,使基于调整后的目标媒体流的码流信息确定的可接受时延满足预设要求,然后再传输调整后的目标媒体流,以降低客户端的卡顿现象,提高媒体播放效果。
其中,服务端可以根据预先设置的时延阈值来判断可接受时延是否满足预设要求,例如判断可接受时延是否大于时延阈值,若大于,则认为可接受时延不满足预设要求,否则可以认为可接受时延满足预设要求。
服务端也可以向客户端发送可接受时延,根据客户端反馈的确认信息来判断可接受时延是否满足预设要求。即可以由客户端根据预先设置的时延阈值来判断可接受时延是否满足预设要求,若满足,客户端可以向服务端反馈用于指示可接受时延满足预设要求的确认信息,若不满足,客户端可以向服务端反馈用于指示可接受时延不满足预设要求的确认信息。
服务端在可接受时延不满足预设要求的情况下,可以通过降低目标媒体流的分辨率来减小可接受时延,例如可以将目标媒体流的分辨率从1080p降为720p,若可接受时延还不满足预设要求,可以再次降低分辨率。其中,目标媒体流的原始分辨率可以是客户端请求的,也可以是服务端预先确定的。当然,服务端在可接受时延不满足预设要求的情况下,也可以适当调整恒定传输速率,或者也可以不做处理,本实施例对此不做特别限定。
服务端在确定好可接受时延后,可以向客户端发送该可接受时延,这样客户端在需要播放目标媒体流的下一媒体流的情况下,可以根据可接受时延提前请求下一媒体流(详细描述可以参见后续步骤),以减少网络延迟现象,进而提高视频播放效果。
如前面所述,本实施例中,确定恒定传输速率和可接受时延的过程也可以在客户端执行。具体的,在客户端确定恒定传输速率和可接受时延时,客户端可以先确定目标媒体流对应的可接受时延,并从服务端获取目标媒体流的码流信息;然后根据预先确定的可接受时延和目标媒体流的码流信息,确定恒定传输速率。
在具体实现时,可接受时延可以是系统预先设置的,也可以是根据媒体缓冲区大小确定的,当然,客户端也可以从服务端获取可接受时延,本实施例对此不做特别限定。
客户端确定了可接受时延后,可以根据该可接受时延、目标媒体流的码流信息和公式(1)中的约束条件,计算出用于传输该目标媒体流的恒定传输速率。具体的实现过程与服务端类似,此处不再赘述。
与服务端类似,客户端也可以先确定恒定传输速率,再根据恒定传输速率和目标媒体流的码流信息,确定可接受时延;并可以在可接受时延不满足预设要求的情况下,请求服务端调整目标媒体流的分辨率,基于调整后的目标媒体流的码流信息重新确定可接受时延,使重新确定的可接受时延满足预设要求。具体的实现过程与服务端类似,此处不再赘述。
服务端或客户端确定了恒定传输速率之后,若传输起始时间是在对端进行控制,则可以将该恒定传输速率发送给对端,以便对端进行目标媒体流的传输控制。
本实施例中,为了进一步提高媒体播放效果,在进行流量整形过程中,还可以与客户端协商确定客户端的媒体缓冲区大小,以使客户端根据该媒体缓冲区大小分配用于缓存目标媒体流的缓冲区,降低由于客户端媒体缓冲区大小不足而造成的媒体丢失和卡顿现象。
其中,媒体缓冲区大小可以大于等于目标媒体流中数据量最大的分片的大小,以保证客户端可以有足够的空间缓存目标媒体流的完整分片。
本实施例中,媒体缓冲区大小可以是客户端根据自身的内存配置信息确定的,若确定可接受时延和恒定传输速率的过程在服务端执行,则客户端可以将媒体缓冲区大小发送给服务端,服务端可以根据媒体缓冲区大小确定目标媒体流的分辨率。
在具体实现时,服务端可以判断该媒体缓冲区大小是否满足要求,即判断该媒体缓冲区大小是否大于目标媒体流中数据量最大的分片的大小,若是,可以保持目标媒体流的分辨率不变,若不是,与基于可接受时延调整目标媒体流的分辨率类似,服务端可以调整目标媒体流的分辨率,使媒体缓冲区大小满足上述要求。
若确定可接受时延和恒定传输速率的过程在客户端执行,客户端可以在媒体缓冲区大小不满足要求时,请求服务端调整目标媒体流的分辨率,使媒体缓冲区大小满足上述要求。
本实施例中,媒体缓冲区大小也可以不是预先确定好的,而是根据目标媒体流中数据量最大的分片的大小确定的。例如:客户端未向服务端发送媒体缓冲区大小,服务端可以在确定好目标媒体流对应的可接受时延和恒定传输速率后,可以直接将媒体缓冲区大小确定为目标媒体流中数据量最大的分片的大小,然后将该媒体缓冲区大小发送给客户端。
S120、服务端与客户端之间以恒定传输速率传输目标媒体流。
服务端与客户端在协商好恒定传输速率和可接受时延后,就可以根据该恒定传输速率按播放时间先后顺序依次传输目标媒体流中的各分片。
其中,在进行传输时,服务端可以在协商好恒定传输速率后即以该恒定传输速率向客户端发送目标媒体流,即由服务端控制目标媒体流的传输起始时间;服务端也可以在协商好恒定传输速率后,接收到客户端发送的数据传输请求的情况下,向客户端发送目标媒体流,即由客户端控制目标媒体流的传输起始时间,其中,该数据传输请求中可以携带目标媒体流的标识,以表示该请求是用于请求传输目标媒体流,另外,该数据传输请求中可以携带恒定传输速率,以告诉服务端以该恒定传输速率传输目标媒体流。
服务端在传输目标媒体流时,可以通过传输层发送窗口、网卡出口速率或其他方式控制传输速率,使目标媒体流的传输速率为上述恒定传输速率。
为了方便传输,服务端或客户端可以为目标媒体流添加传输时间标签,即可以在传输目标媒体流之前,确定目标媒体流中每个分片的传输时间标签,标识每个分片的发送时刻。
客户端接收到服务端传输的媒体文件后,可以将其缓存在媒体缓冲区中,当接收到一个完整的分片后,可以在到达该分片的播放起始时间之前,从缓冲区中取出该分片进行解码,然后在满足该分片的播放要求时播放该分片,比如:可以在到达该分片的播放起始时间或接收到用户的播放指令时进行播放。在从缓冲区中取出该分片的数据后,客户端可以释放缓冲区,以接收新的媒体数据。
S130、客户端根据可接受时延向服务端请求获取下一媒体流。
客户端在目标媒体流播放结束前,可以向服务端请求下一媒体流进行播放。
在具体实现时,客户端可以在当前时间距离目标媒体流的播放结束时间的时长大于等于可接受时延的情况下,向服务端请求获取下一媒体流,服务端与客户端重复上述步骤S110和S120,完成参数协商,并传输该下一媒体流。其中,在进行下一媒体流的参数协商时,也可以根据目标媒体流对应的协商参数的值确定,例如:在确定目标媒体流对应的协商参数时,客户端向服务端发送了可接受时延,在确定下一媒体流对应的协商参数时,客户端可以不发送该可接受时延,服务端可以直接采用客户端上次发送的可接受时延确定恒定传输速率;同样的,如果是先确定恒定传输速率,也可以直接采用上次确定的恒定传输速率确定可接受时延;媒体缓冲区大小也可以采用类似的方法,本实施例对此均不做特别限定。
其中,该下一媒体流与目标媒体流可以是同一媒体中的不同片断,也可以属于不同的媒体。当然,在不需要播放下一媒体流时,也可以不执行该步骤S130。
本实施例中,通过将VBR媒体流采用恒定传输速率传输,可以平滑传输数据流量,有效提高网络传输性能,同时相比生成恒定码率的媒体数据进行传输的方式,可以有效提高媒体质量和编码效率;另外,本实施例中,在进行流量整形时,综合考虑媒体数据的码流信息和客户端可接受时延等要素,这样可以提高流量整形的精确度,减少客户端的卡顿现象,提高媒体播放效果。
下面介绍本申请的技术方案所适用的另一种应用场景。该应用场景下,为了便于带宽管理,采用CBR编码方式编码媒体,同时对媒体流量进行了带宽质量保障。该应用场景具体可以是交互式网络电视(Internet Protocol television,IPTV)场景或其他类似场景,本申请实施例中以IPTV场景为例进行示例性说明。
该应用场景下,可以由运营商统一设定客户端的可接受播放时延和可保障传输速率,其中,各媒体的可接受播放时延可以相同也可以不同,具体可以根据实际情况设置。
对于每个媒体,服务端可以将该媒体的CBR媒体流转换成VBR媒体流,并使转换后的VBR媒体流对应的恒定传输速率尽量接近或等于可保障传输速率。具体实现过程可以参见图4,图4为本申请实施例提供的确定恒定传输速率的流程示意图,如图4所示,该方法可以包括如下步骤:
S111、将原始媒体流转换为采用可变码率编码的第一媒体流。
本实施例中,可以将VBR媒体流转换成恒定的数据流量,因此,服务端可以将CBR编码的原始媒体流转换为VBR编码的媒体流(即第一媒体流),以提高媒体质量。
S112、根据第一媒体流的码流信息和可接受时延,确定第一传输速率c1。
在转换得到第一媒体流后,可以依据前述公式(1)确定第一媒体流对应的恒定传输速率(即第一传输速率c1),具体的确定过程与前面确定恒定传输速率的方式类似,此处不再赘述。
S113、判断预先设置的可保障传输速率c_q减第一传输速率c1之差是否小于等于预设的速率阈值c_t,若是则执行步骤S114,否则执行步骤S115。
具体的,在确定出第一传输速率c1后,可以判断第一传输速率c1与可保障传输速率c_q之间的接近程度,此处通过可保障传输速率c_q减第一传输速率c1的差值(即c_q﹣c1)与速率阈值c_t之间的大小关系来衡量该接近程度,在c_q﹣c1≤c_t的情况下,可以认为第一传输速率c1与可保障传输速率c_q之间的接近程度满足要求;在c_q﹣c1>c_t的情况下,可以认为第一传输速率c1与可保障传输速率c_q之间的接近程度不满足要求。
其中,该速率阈值可以根据实际需要设置,本实施例对此不做特别限定。在具体实现时,也可以是判断c_q﹣c1的值是否小于速率阈值c_t,在c_q﹣c1<c_t的情况下,认为第一传输速率c1与可保障传输速率c_q之间的接近程度满足要求;在c_q﹣c1≥c_t的情况下,认为第一传输速率c1与可保障传输速率c_q之间的接近程度不满足要求,本实施例对此不做特别限定。
S114、将第一媒体流确定为目标媒体流,将第一传输速率c1确定为恒定传输速率。
如果可保障传输速率c_q减第一传输速率c1之差小于等于速率阈值c_t,即c_q﹣c1≤c_t,说明第一传输速率c1与可保障传输速率c_q之间比较接近,此时可以将第一媒体流确定为目标媒体流,将第一传输速率确定为恒定传输速率。
S115、调整可变码率编码参数,返回执行步骤S111。
如果可保障传输速率c_q减第一传输速率c1之差大于速率阈值c_t,即c_q﹣c1>c_t,说明第一传输速率c1与可保障传输速率c_q之间的差别较大,此时可以调整可变码率编码参数,返回执行步骤S111,直至重新生成的第一媒体流对应的第一传输速率c1与可保障传输速率c_q之间的接近程度满足要求为止。
服务端根据CBR编码的原始媒体流转换得到VBR编码的目标媒体流之后,服务端与客户端之间可以采用目标媒体流对应的恒定传输速率传输目标媒体流,客户端也可以根据可接受时延向服务端请求获取下一媒体流,具体实现过程与前述步骤S120和S130类似,此处不再赘述。
本实施例提供的上述技术方案,可以将CBR编码的媒体流转换成VBR编码的媒体流进行传输,这样可以有效的提高媒体质量,进而提高媒体播放效果,并可以保持CBR的流量恒定特性,提高网络传输性能。
下面介绍本申请的技术方案所适用的另一种应用场景。
图5为本申请实施例提供的另一种应用场景的示意图,如图5所示,该应用场景中涉及的设备可以包括:服务端100、客户端200和网关设备300,服务端100、网关设备300和客户端200之间通过网络进行数据传输。
该应用场景与前述应用场景的不同之处在于,服务端100与客户端200之间还包括其他中转设备,该中转设备可以是图5中所示的网关设备300,也可以是其他设备,比如路由器等,中转设备可以包括一个或多个,本实施例中是以中转设备包括一个网关设备300为例进行示例性说明,其并非用于限制本申请。
具体的,网关设备300可以从服务端100下载媒体数据并进行缓存,客户端200可以向网关设备300请求目标媒体流进行播放,网关设备300可以基于客户端200的请求,对目标媒体流进行流量整形,网关设备300与客户端200之间的交互过程与图2中服务端100与客户端200之间的交互过程类似,此处不再赘述。也就是说,本申请中,实现流量整形的媒体发送端可以是服务端100,也可以是服务端100与客户端200之间的中转设备,这样可以有效扩大流量整形的适用范围。
本领域技术人员可以理解,以上实施例是示例性的,并非用于限定本申请。在可能的情况下,以上实施例中的一个或者几个步骤的执行顺序可以进行调整,也可以进行选择性组合,得到一个或多个其他实施例。本领域技术人员可以根据需要从上述步骤中任意进行选择组合,凡是未脱离本申请方案实质的,都落入本申请的保护范围。
基于同一发明构思,作为对上述方法的实现,本申请实施例提供了流量整形装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
图6为本申请实施例提供的一种流量整形装置的结构示意图,该装置可以应用于媒体发送端,如图6所示,本实施例提供的流量整形装置110可以包括:参数确定模块111和传输模块112,其中:
参数确定模块111用于:确定待播放的目标媒体流对应的可接受时延,并根据可接受时延和目标媒体流的码流信息确定恒定传输速率,其中,可接受时延为客户端可接受的目标媒体流的媒体播放时延,目标媒体流是采用可变码率编码的,目标媒体流的码流信息包括目标媒体流包含的各分片的大小和播放时长;
传输模块112用于:根据恒定传输速率传输目标媒体流。
其中,可接受时延可以是客户端发送的;可接受时延也可以是预先设置的,或根据目标媒体流的广告播放时长确定的。
作为本申请实施例一种可选的实施方式,传输模块112还用于:向客户端发送可接受时延,以指示客户端在需要播放目标媒体流的下一媒体流的情况下,根据可接受时延请求下一媒体流。
作为本申请实施例一种可选的实施方式,参数确定模块111还用于:在根据可接受时延和目标媒体流的码流信息确定恒定传输速率之后,根据恒定传输速率传输目标媒体流之前,在网络带宽信息满足预设条件的情况下,增大恒定传输速率。
作为本申请实施例一种可选的实施方式,目标媒体流具有对应的原始媒体流,原始媒体流是采用恒定码率编码的,且可接受时延是预先设置的;参数确定模块111具体用于:
将原始媒体流转换为采用可变码率编码的第一媒体流;
根据第一媒体流的码流信息和可接受时延,确定第一传输速率;
若预先设置的可保障传输速率减第一传输速率之差小于等于预设的速率阈值,则将第一媒体流确定为目标媒体流,将第一传输速率确定为恒定传输速率;
若预先设置的可保障传输速率减第一传输速率之差大于速率阈值,则调整可变码率编码参数,返回执行将原始媒体流转换为采用可变码率编码的第一媒体流的步骤。
作为本申请实施例一种可选的实施方式,目标媒体流的码流信息是采用时间序列分析方法确定的。
作为本申请实施例一种可选的实施方式,参数确定模块111还用于:在传输模块112根据恒定传输速率传输目标媒体流之前,与客户端协商确定客户端的媒体缓冲区大小,以指示客户端根据媒体缓冲区大小分配用于缓存目标媒体流的缓冲区,媒体缓冲区大小大于等于目标媒体流中数据量最大的分片的大小。
作为本申请实施例一种可选的实施方式,媒体缓冲区大小是客户端发送的,目标媒体流的分辨率是根据媒体缓冲区大小确定的。
作为本申请实施例一种可选的实施方式,恒定传输速率与可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为恒定传输速率,d为可接受时延,ts为目标媒体流的播放起始时间,te为目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
在另一实施例中,作为一种可选的实施方式,参数确定模块111用于:确定待播放的目标媒体流对应的恒定传输速率;并根据恒定传输速率和目标媒体流的码流信息确定可接受时延,可接受时延为客户端可接受的目标媒体流的媒体播放时延;
传输模块112用于:根据可接受时延和恒定传输速率传输目标媒体流。
作为本申请实施例一种可选的实施方式,参数确定模块111具体用于:根据网络带宽信息确定待播放的目标媒体流对应的恒定传输速率。
作为本申请实施例一种可选的实施方式,传输模块112具体用于:在可接受时延满足预设要求的情况下,采用恒定传输速率传输目标媒体流;在可接受时延不满足预设要求的情况下,调整目标媒体流的分辨率,使基于调整后的目标媒体流的码流信息确定的可接受时延满足预设要求;并采用恒定传输速率传输调整后的目标媒体流。这样可以提高流量整形的精确度,提高客户端的媒体播放效果。
作为本申请实施例一种可选的实施方式,传输模块112还用于:在调整目标媒体流的分辨率之前,向客户端发送可接受时延;接收客户端发送的确认信息,确认信息用于指示可接受时延是否满足预设要求。
本实施例提供的装置可以执行上述方法实施例中媒体发送端所执行的方法,其实现原理与技术效果类似,此处不再赘述。
图7为本申请实施例提供的另一种流量整形装置的结构示意图,该装置可以应用于客户端,如图7所示,本实施例提供的流量整形装置120可以包括:
获取模块121,用于从媒体发送端获取待播放的目标媒体流的码流信息,目标媒体流是采用可变码率编码的;
参数确定模块122,用于根据预先确定的目标媒体流对应的可接受时延和目标媒体流的码流信息,确定恒定传输速率,其中,可接受时延为客户端可接受的目标媒体流的媒体播放时延,目标媒体流的码流信息包括目标媒体流包含的各分片的大小和播放时长;
传输模块123,用于根据恒定传输速率传输目标媒体流。
作为本申请实施例一种可选的实施方式,传输模块123具体用于:
向媒体发送端发送数据传输请求,数据传输请求用于请求传输目标媒体流,数据传输请求中携带恒定传输速率;
接收媒体发送端根据恒定传输速率发送的目标媒体流。
作为本申请实施例一种可选的实施方式,获取模块121还用于:在距离目标媒体流的播放结束时间的时长大于等于可接受时延的情况下,向媒体发送端请求获取下一媒体流。
作为本申请实施例一种可选的实施方式,恒定传输速率与可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为恒定传输速率,d为可接受时延,ts为目标媒体流的播放起始时间,te为目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
本实施例提供的装置可以执行上述方法实施例中客户端所执行的方法,其实现原理与技术效果类似,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
基于同一发明构思,本申请实施例还提供了一种电子设备。图8为本申请实施例提供的电子设备的结构示意图,如图8所示,本实施例提供的电子设备可以包括:处理器210、存储器220和通信模块230等。
其中,处理器210可以包括中央处理器210、应用处理器210(applicationprocessor,AP)、基带处理器210等处理器210中的一种或多种。处理器210可以是无线路由器的神经中枢和指挥中心。处理器210可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。存储器220可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器210通过运行存储在存储器220的指令,从而执行电子设备的各种功能应用以及数据处理。存储器220可以包括存储程序区和存储数据区,比如存储待播放的声音信号的数据等。例如,该存储器220可以是双倍速率同步动态随机存储器220DDR或闪存Flash等。
通信模块230可以提供应用在电子设备上的包括无线局域网(Wireless LocalArea Networks,WLAN)(如无线保真(Wireless Fidelity,Wi-Fi)网络),蓝牙(Bluetooth,BT),移动通信网络,全球导航卫星系统(Global Navigation Satellite System,GNSS),调频(Frequency Modulation,FM),近距离无线通信技术(Near Field Communication,NFC),红外技术(Infrared,IR)等通信的解决方案。通信模块230可以是集成至少一个通信处理模块的一个或多个器件。该通信模块230可以包括天线,该天线可以只有一个阵元,也可以是包括多个阵元的天线阵列。该通信模块230可以通过天线接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。通信模块230还可以从处理器210接收待发送的信号,对其进行调频、放大,经天线转为电磁波辐射出去。
电子设备还可以包括电源管理模块(未示出),电源管理模块可以接收电池和/或充电器的输入,为处理器210、存储器220和通信模块230等供电。
需要说明的是,上述图8并不构成对电子设备结构的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如电子设备还可以包括显示屏、指示灯、马达、控件(例如按键)、陀螺仪传感器、加速度传感器等。
该电子设备可以是上述的媒体发送端,也可以是客户端。
本实施例提供的电子设备可以执行上述方法实施例,其实现原理与技术效果类似,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例所述的方法。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时实现上述方法实施例所述的方法。
本申请实施例还提供一种芯片系统,该芯片系统包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现上述方法实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘或磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质可以包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
在本申请所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (22)

1.一种流量整形方法,其特征在于,包括:
确定待播放的目标媒体流对应的可接受时延,所述可接受时延为客户端可接受的目标媒体流的媒体播放时延;
根据所述可接受时延和所述目标媒体流的码流信息确定恒定传输速率,其中,所述目标媒体流是采用可变码率编码的,所述目标媒体流的码流信息包括所述目标媒体流包含的各分片的大小和播放时长;
根据所述恒定传输速率传输所述目标媒体流。
2.根据权利要求1所述的方法,其特征在于,所述可接受时延是客户端发送的。
3.根据权利要求1所述的方法,其特征在于,所述可接受时延是预先设置的,或根据所述目标媒体流的广告播放时长确定的。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
向所述客户端发送所述可接受时延,以指示所述客户端在需要播放所述目标媒体流的下一媒体流的情况下,根据所述可接受时延请求所述下一媒体流。
5.根据权利要求1所述的方法,其特征在于,在所述根据所述可接受时延和所述目标媒体流的码流信息确定恒定传输速率之后,所述根据所述恒定传输速率传输所述目标媒体流之前,所述方法还包括:
若网络带宽信息满足预设条件,则增大所述恒定传输速率。
6.根据权利要求1所述的方法,其特征在于,所述目标媒体流具有对应的原始媒体流,所述原始媒体流是采用恒定码率编码的,且所述可接受时延是预先设置的;所述根据所述可接受时延和所述目标媒体流的码流信息确定恒定传输速率,包括:
将所述原始媒体流转换为采用可变码率编码的第一媒体流;
根据所述第一媒体流的码流信息和所述可接受时延,确定第一传输速率;
若预先设置的可保障传输速率减第一传输速率之差小于等于预设的速率阈值,则将所述第一媒体流确定为所述目标媒体流,将所述第一传输速率确定为所述恒定传输速率;
若所述预先设置的可保障传输速率减第一传输速率之差大于所述速率阈值,则调整可变码率编码参数,返回执行将所述原始媒体流转换为采用可变码率编码的第一媒体流的步骤。
7.根据权利要求1所述的方法,其特征在于,所述目标媒体流的码流信息是采用时间序列分析方法确定的。
8.根据权利要求1所述的方法,其特征在于,在所述根据所述恒定传输速率传输所述目标媒体流之前,所述方法还包括:
与客户端协商确定所述客户端的媒体缓冲区大小,以指示客户端根据所述媒体缓冲区大小分配用于缓存目标媒体流的缓冲区,所述媒体缓冲区大小大于等于所述目标媒体流中数据量最大的分片的大小。
9.根据权利要求8所述的方法,其特征在于,所述媒体缓冲区大小是所述客户端发送的,所述目标媒体流的分辨率是根据所述媒体缓冲区大小确定的。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述恒定传输速率与所述可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为所述恒定传输速率,d为所述可接受时延,ts为所述目标媒体流的播放起始时间,te为所述目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
11.一种流量整形方法,其特征在于,包括:
确定待播放的目标媒体流对应的恒定传输速率,所述目标媒体流是采用可变码率编码的;
根据所述恒定传输速率和所述目标媒体流的码流信息确定可接受时延,所述可接受时延为客户端可接受的目标媒体流的媒体播放时延;
根据所述可接受时延和所述恒定传输速率传输所述目标媒体流。
12.根据权利要求11所述的方法,其特征在于,所述确定待播放的目标媒体流对应的恒定传输速率,包括:
根据网络带宽信息确定待播放的目标媒体流对应的恒定传输速率。
13.根据权利要求11所述的方法,其特征在于,所述根据所述可接受时延和所述恒定传输速率传输所述目标媒体流,包括:
若所述可接受时延满足预设要求,则采用所述恒定传输速率传输所述目标媒体流;
若所述可接受时延不满足预设要求,则调整所述目标媒体流的分辨率,使基于调整后的目标媒体流的码流信息确定的可接受时延满足所述预设要求;并采用所述恒定传输速率传输调整后的所述目标媒体流。
14.根据权利要求13所述的方法,其特征在于,在所述若所述可接受时延不满足预设要求,则调整所述目标媒体流的分辨率之前,所述方法还包括:
向所述客户端发送所述可接受时延;
接收所述客户端发送的确认信息,所述确认信息用于指示所述可接受时延是否满足预设要求。
15.根据权利要求11-14任一项所述的方法,其特征在于,所述恒定传输速率与所述可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为所述恒定传输速率,d为所述可接受时延,ts为所述目标媒体流的播放起始时间,te为所述目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
16.一种流量整形方法,其特征在于,包括:
从媒体发送端获取待播放的目标媒体流的码流信息,所述目标媒体流是采用可变码率编码的;
根据预先确定的所述目标媒体流对应的可接受时延和所述目标媒体流的码流信息,确定恒定传输速率,其中,所述可接受时延为客户端可接受的目标媒体流的媒体播放时延,所述目标媒体流的码流信息包括所述目标媒体流包含的各分片的大小和播放时长;
根据所述恒定传输速率传输所述目标媒体流。
17.根据权利要求16所述的方法,其特征在于,所述根据所述恒定传输速率传输所述目标媒体流,包括:
向所述媒体发送端发送数据传输请求,所述数据传输请求用于请求传输所述目标媒体流,所述数据传输请求中携带所述恒定传输速率;
接收所述媒体发送端根据所述恒定传输速率发送的所述目标媒体流。
18.根据权利要求16所述的方法,其特征在于,所述方法还包括:
在距离所述目标媒体流的播放结束时间的时长大于等于所述可接受时延的情况下,向所述媒体发送端请求获取下一媒体流。
19.根据权利要求16-18任一项所述的方法,其特征在于,所述恒定传输速率与所述可接受时延之间满足如下条件:
S(t)≤(t-ts+d)c,t∈[ts,te]
其中,c为所述恒定传输速率,d为所述可接受时延,ts为所述目标媒体流的播放起始时间,te为所述目标媒体流的播放结束时间,S(t)为ts到t之间的媒体数据量大小。
20.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在调用所述计算机程序时执行如权利要求1-19任一项所述的方法。
21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-19任一项所述的方法。
22.一种芯片系统,其特征在于,所述芯片系统包括处理器,所述处理器与存储器耦合,所述处理器执行存储器中存储的计算机程序,以实现如权利要求1-19任一项所述的方法。
CN202010358023.5A 2020-04-29 2020-04-29 流量整形方法、装置与电子设备 Active CN113573062B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010358023.5A CN113573062B (zh) 2020-04-29 2020-04-29 流量整形方法、装置与电子设备
PCT/CN2021/081668 WO2021218479A1 (zh) 2020-04-29 2021-03-19 流量整形方法、装置与电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010358023.5A CN113573062B (zh) 2020-04-29 2020-04-29 流量整形方法、装置与电子设备

Publications (2)

Publication Number Publication Date
CN113573062A CN113573062A (zh) 2021-10-29
CN113573062B true CN113573062B (zh) 2023-12-29

Family

ID=78157752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010358023.5A Active CN113573062B (zh) 2020-04-29 2020-04-29 流量整形方法、装置与电子设备

Country Status (2)

Country Link
CN (1) CN113573062B (zh)
WO (1) WO2021218479A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979757B (zh) * 2022-06-02 2024-01-30 北京字跳网络技术有限公司 视频发布方法、装置、设备及存储介质
CN114915593B (zh) * 2022-06-10 2023-05-09 北京世纪好未来教育科技有限公司 基于Redis的流量控制方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655547A (zh) * 2004-09-09 2005-08-17 上海川海信息科技有限公司 一种流媒体传输系统中的速率控制方法
CN103152497A (zh) * 2013-03-29 2013-06-12 贵阳朗玛信息技术股份有限公司 手机VoIP系统中动态比特率的实现方法、装置及系统
CN103780907A (zh) * 2014-01-27 2014-05-07 浙江宇视科技有限公司 一种视频数据流量整形的方法和装置
CN105338422A (zh) * 2014-06-09 2016-02-17 杭州海康威视数字技术股份有限公司 视频图像数据的网络发送速率的平滑方法
WO2018133601A1 (zh) * 2017-01-20 2018-07-26 中兴通讯股份有限公司 一种流媒体传输方法、装置、服务器及终端
CN108668146A (zh) * 2017-03-27 2018-10-16 华为技术有限公司 一种调整流媒体码率的方法及设备
CN110996125A (zh) * 2019-11-18 2020-04-10 腾讯科技(深圳)有限公司 一种视频流的生成方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7530089B1 (en) * 2004-03-29 2009-05-05 Nortel Networks Limited System and method for improving video quality using a constant bit rate data stream
US8474001B2 (en) * 2009-02-10 2013-06-25 Cisco Technology, Inc. Near real time delivery of variable bit rate media streams

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655547A (zh) * 2004-09-09 2005-08-17 上海川海信息科技有限公司 一种流媒体传输系统中的速率控制方法
CN103152497A (zh) * 2013-03-29 2013-06-12 贵阳朗玛信息技术股份有限公司 手机VoIP系统中动态比特率的实现方法、装置及系统
CN103780907A (zh) * 2014-01-27 2014-05-07 浙江宇视科技有限公司 一种视频数据流量整形的方法和装置
CN105338422A (zh) * 2014-06-09 2016-02-17 杭州海康威视数字技术股份有限公司 视频图像数据的网络发送速率的平滑方法
WO2018133601A1 (zh) * 2017-01-20 2018-07-26 中兴通讯股份有限公司 一种流媒体传输方法、装置、服务器及终端
CN108668146A (zh) * 2017-03-27 2018-10-16 华为技术有限公司 一种调整流媒体码率的方法及设备
CN110996125A (zh) * 2019-11-18 2020-04-10 腾讯科技(深圳)有限公司 一种视频流的生成方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2021218479A1 (zh) 2021-11-04
CN113573062A (zh) 2021-10-29

Similar Documents

Publication Publication Date Title
JP6469788B2 (ja) メディアコンテンツの適応型ストリーミングのための品質情報の使用
US11310302B2 (en) Method and apparatus for streaming dash content over broadcast channels
US8474001B2 (en) Near real time delivery of variable bit rate media streams
WO2019154221A1 (zh) 发送流数据的方法及数据发送设备
CN110636339B (zh) 基于码率的调度方法、装置及电子设备
CN108063769B (zh) 一种内容服务的实现方法、装置及内容分发网络节点
CN113573062B (zh) 流量整形方法、装置与电子设备
CN108881931B (zh) 一种数据缓冲方法及网络设备
JP7011941B2 (ja) クライアント及び受信方法
US20240121455A1 (en) Method, apparatus, electronic device and storage medium for video bitrate switching
US20240040136A1 (en) Method to optimize the quality of video delivered over a network
CN106791860A (zh) 一种自适应视频编码控制系统及方法
MX2013013373A (es) Metodo para adaptacion dinamica de la tasa de bits recibida y receptor asociado.
US9736730B2 (en) Wireless video download rate optimization
US9571790B2 (en) Reception apparatus, reception method, and program thereof, image capturing apparatus, image capturing method, and program thereof, and transmission apparatus, transmission method, and program thereof
US10270832B1 (en) Method and system for modifying a media stream having a variable data rate
US11206295B1 (en) System and method for streaming content selection
WO2017114393A1 (zh) Http流媒体传输方法及装置
KR102419087B1 (ko) 미디어 스트리밍 제어 장치 및 방법
US20160014181A1 (en) Content transfer method, content transfer apparatus and content receiving apparatus
WO2018021950A1 (en) Device and method for controlling media streaming from a server to a client
CN117176703A (zh) 视频传输优化方法及其装置
CN117560522A (zh) 码率确定方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant