CN109769125B - 流媒体码率的动态调整方法、媒体服务器及转码服务器 - Google Patents
流媒体码率的动态调整方法、媒体服务器及转码服务器 Download PDFInfo
- Publication number
- CN109769125B CN109769125B CN201811486482.0A CN201811486482A CN109769125B CN 109769125 B CN109769125 B CN 109769125B CN 201811486482 A CN201811486482 A CN 201811486482A CN 109769125 B CN109769125 B CN 109769125B
- Authority
- CN
- China
- Prior art keywords
- code rate
- streaming media
- downloading
- current
- speed value
- 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
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供一种流媒体码率的动态调整方法、媒体服务器及转码服务器,所述方法包括:接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;根据所有下载速率值和所述流媒体码率,确定当前下载网速值;根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器。所述媒体服务器执行上述方法;所述转码服务器执行另一方法。本发明实施例提供方法、媒体服务器及转码服务器,能够缩短不同流媒体码率的切换延时时长,且能够对流媒体码率进行动态调整。
Description
技术领域
本发明实施例涉及流媒体技术领域,具体涉及一种流媒体码率的动态调整方法、媒体服务器及转码服务器。
背景技术
随着互联网技术的发展,越来越多的用户通过网络播放器进行流媒体播放,例如观看视频、收听音频。
现有技术中,大部分的播放器对于实时媒体流都采用如下的流程进行播放,首先与媒体服务器交互,交互完成之后便开始下载媒体数据,随后将媒体数据放置到播放缓冲区,解码器从播放缓冲区中取出数据进行解码,解码完成之后将数据交给显卡和声卡进行渲染和播放,一个简单的播放过程如上所述。当客户端出现由于网速突然变慢等因素,则客户端的播放缓冲区中的数据会不断的减少,直到在有数据的时候才进行码率切换,这时解码器已经没有数据进行解码,只能是等待,导致不同流媒体码率的切换延时时长过长。
因此,如何避免上述缺陷,能够缩短不同流媒体码率的切换延时时长,且能够对流媒体码率进行动态调整,成为亟须解决的问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种流媒体码率的动态调整方法、媒体服务器及转码服务器。
第一方面,本发明实施例提供一种流媒体码率的动态调整方法,所述方法包括:
接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;
在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;
根据所有下载速率值和所述流媒体码率,确定当前下载网速值;
根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。
第二方面,本发明实施例还提供一种流媒体码率的动态调整方法,所述方法包括:
接收媒体服务器发送的重置码率;
根据所述重置码率,更新流媒体封装数据。
第三方面,本发明实施例还提供一种媒体服务器,所述媒体服务器,包括:
接收单元,用于接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;
第一确定单元,用于在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;
第二确定单元,用于根据所有下载速率值和所述流媒体码率,确定当前下载网速值;
第三确定单元,用于根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。
第四方面,本发明实施例提供一种电子设备,包括:第一处理器、第一存储器和第一总线,其中,
所述第一处理器和所述第一存储器通过所述第一总线完成相互间的通信;
所述第一存储器存储有可被所述第一处理器执行的程序指令,所述第一处理器调用所述程序指令能够执行如下方法:
接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;
在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;
根据所有下载速率值和所述流媒体码率,确定当前下载网速值;
根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。
第五方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如下方法:
接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;
在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;
根据所有下载速率值和所述流媒体码率,确定当前下载网速值;
根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。
第六方面,本发明实施例还提供一种转码服务器,所述转码服务器包括:
接收模块,用于接收媒体服务器发送的重置码率;
更新模块,用于根据所述重置码率,更新流媒体封装数据。
第七方面,本发明实施例提供一种电子设备,包括:第二处理器、第二存储器和第二总线,其中,
所述第二处理器和所述第二存储器通过所述第二总线完成相互间的通信;
所述第二存储器存储有可被所述第二处理器执行的程序指令,所述第二处理器调用所述程序指令能够执行如下方法:
接收媒体服务器发送的重置码率;
根据所述重置码率,更新流媒体封装数据。
第八方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如下方法:
接收媒体服务器发送的重置码率;
根据所述重置码率,更新流媒体封装数据。
本发明实施例提供的流媒体码率的动态调整方法、媒体服务器及转码服务器,通过提前确定当前下载网速值,并根据当前下载网速值和流媒体码率,合理确定流媒体码率的重置码率,能够缩短不同流媒体码率的切换延时时长,且能够对流媒体码率进行动态调整。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例流媒体码率的动态调整方法流程示意图;
图2为本发明实施例流媒体码率的动态调整示意图;
图3为本发明另一实施例流媒体码率的动态调整方法流程示意图;
图4为本发明另一实施例流媒体码率的动态调整方法流程示意图;
图5为本发明实施例媒体服务器结构示意图;
图6为本发明实施例提供的电子设备实体结构示意图;
图7为本发明实施例转码服务器结构示意图;
图8为本发明实施例提供的电子设备实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例流媒体码率的动态调整方法流程示意图,如图1所示,本发明实施例提供的一种流媒体码率的动态调整方法,包括以下步骤:
S101:接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率。
具体的,媒体服务器接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率。图2为本发明实施例流媒体码率的动态调整示意图,如图2所示,转码服务器101将转码后的流媒体封装数据通过网络模块106发送到媒体服务器107。流媒体码率可以是未经过重置的流媒体码率,也可以是经过重置的流媒体码率。媒体服务器107收到流媒体封装数据之后,就可以对外提供媒体服务。播放器200通过请求播放201发送播放请求到媒体服务器107;媒体服务器107便通过链路202为播放器提供流媒体封装数据;当播放器对应的客户端开始下载数据的时候,下载速率计算模块108便开始工作,计算出客户端的当前下载网速值。
S102:在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值。
具体的,媒体服务器在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值。为了计算出当前下载网速值,先需要确定播放所述流媒体封装数据所需的下载速率值,下载速率值可以理解为每间隔一个采用周期采样到的采样速率值,预设时段可以根据实际情况自主设置,与当前时刻相邻的预设时段可以理解为在当前时刻之前相邻的预设时段,可选为2分钟,如果当前时刻为9:00:00,则与当前时刻相邻的预设时段为8:58:00~9:00:00对应的2分钟。下载速率值可以根据如下公式计算:
其中,bitrate(t')表示在t'时刻的下载速率值、Q表示是一个递增的函数、该函数的自变量为因变量为bitrate(t')、t表示发送 buf的一个采样时刻、t'表示在t之后连续发送buf的后一个采样时刻、b(t)表示在t时刻已经发送的流媒体封装数据的累积量、b(t')表示在t'时刻已经发送的流媒体封装数据的累积量。
连续的两个下载速率差值用bitdiff来表示,即:
bitdiff(t')={bitrate(t')-bitrate(t)}
下载速率值还可以根据如下公式计算:
S103:根据所有下载速率值和所述流媒体码率,确定当前下载网速值。
具体的,媒体服务器根据所有下载速率值和所述流媒体码率,确定当前下载网速值。具体可以包括如下步骤:
在所有下载速率值中分别获取最大下载速率值、最小下载速率值、以及所有下载速率值的平均值。即在上述所有的bitrate(t')中获取最大下载速率值,例如为其中t'1表示最大下载速率值对应的时刻;在上述所有的bitrate(t')中获取最小下载速率值,例如为其中t'2表示最小下载速率值对应的时刻;在上述所有的 bitrate(t')中获取平均值,记为
根据所述最大下载速率值和所述最小下载速率值分别对应的时刻与所述当前时刻的时间差的计算结果、所述平均值和所述流媒体码率,确定当前下载网速值。具体可以包括如下步骤:
分别计算所述最大下载速率值对应的时刻与所述当前时刻的第一时间差、所述最小下载速率值对应的时刻与所述当前时刻的第二时间差。参照上述举例,计算9:00:00与t'1之间的第一时间差T1;计算9:00:00与t'2之间的第二时间差T2。
若判断获知所述第一时间差小于所述第二时间差,则将所述平均值与流媒体码率的预设百分比之差作为所述当前下载网速值。预设百分比可以根据实际情况自主设置,可选为5%。如果T1小于T2,则当前下载网速值对应的时刻(即9:00:00)距离最大下载速率值对应的时刻(即t'1)更近,则说明当前下载网速处于下降趋势,所以,当前下载网速值应该小于平均值可以用当平均值减去(5%×流媒体码率)作为当前下载网速值。
若判断获知所述第一时间差大于所述第二时间差,则将所述平均值与流媒体码率的预设百分比之和作为所述当前下载网速值。如果T1大于T2,则当前下载网速值对应的时刻(即9:00:00)距离最小下载速率值对应的时刻(即t'2)更近,则说明当前下载网速处于上升趋势,所以,当前下载网速值应该大于平均值可以用当平均值加上(5%×流媒体码率)作为当前下载网速值。即本发明通过提前预判当前下载网速的上升或下降趋势,从而能够尽早确定当前下载网速值,从而快速确定流媒体码率的重置码率,进而能够缩短不同流媒体码率的切换延时时长,避免现有技术中由于切换延时时长过长导致的播放器处于等待显示状态或无法解码播放内容等情况发生。
S103:根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。
具体的,媒体服务器根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。可以具体包括如下步骤:
若判断获知所述流媒体码率小于等于所述当前下载网速值,则确定不重置码率。即如果流媒体码率小于等于客户端的当前下载网速值,则码率不作重置。
若判断获知所述流媒体码率大于所述当前下载网速值,则直接确定所述重置码率为所述当前下载网速值。
举例说明如下:流媒体码率为500Kb/s、当前下载网速值为 300Kb/s、则直接确定重置码率为300Kb/s。
本发明实施例提供的流媒体码率的动态调整方法,通过提前确定当前下载网速值,并根据当前下载网速值和流媒体码率,合理确定流媒体码率的重置码率,能够缩短不同流媒体码率的切换延时时长,且能够对流媒体码率进行动态调整。
在上述实施例的基础上,所述根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,包括:
若判断获知所述流媒体码率小于等于所述当前下载网速值,则确定不重置码率。
具体的,媒体服务器若判断获知所述流媒体码率小于等于所述当前下载网速值,则确定不重置码率。可参照上述实施例,不再赘述。
若判断获知所述流媒体码率大于所述当前下载网速值,则直接确定所述重置码率为所述当前下载网速值。
具体的,媒体服务器若判断获知所述流媒体码率大于所述当前下载网速值,则直接确定所述重置码率为所述当前下载网速值。可参照上述实施例,不再赘述。
本发明实施例提供的流媒体码率的动态调整方法,通过合理确定重置码率,进一步能够缩短不同流媒体码率的切换延时时长,且能够对流媒体码率进行动态调整。
在上述实施例的基础上,所述根据所有下载速率值和所述流媒体码率,确定当前下载网速值,包括:
在所有下载速率值中分别获取最大下载速率值、最小下载速率值、以及所有下载速率值的平均值。
具体的,媒体服务器在所有下载速率值中分别获取最大下载速率值、最小下载速率值、以及所有下载速率值的平均值。可参照上述实施例,不再赘述。
根据所述最大下载速率值和所述最小下载速率值分别对应的时刻与所述当前时刻的时间差的计算结果、所述平均值和所述流媒体码率,确定当前下载网速值。
具体的,媒体服务器根据所述最大下载速率值和所述最小下载速率值分别对应的时刻与所述当前时刻的时间差的计算结果、所述平均值和所述流媒体码率,确定当前下载网速值。可参照上述实施例,不再赘述。
本发明实施例提供的流媒体码率的动态调整方法,通过合理当前下载网速值,进一步能够缩短不同流媒体码率的切换延时时长,且能够对流媒体码率进行动态调整。
在上述实施例的基础上,所述根据所述最大下载速率值和所述最小下载速率值分别对应的时刻与所述当前时刻的时间差的计算结果、所述平均值和所述流媒体码率,确定当前下载网速值,包括:
分别计算所述最大下载速率值对应的时刻与所述当前时刻的第一时间差、所述最小下载速率值对应的时刻与所述当前时刻的第二时间差。
具体的,媒体服务器分别计算所述最大下载速率值对应的时刻与所述当前时刻的第一时间差、所述最小下载速率值对应的时刻与所述当前时刻的第二时间差。可参照上述实施例,不再赘述。
若判断获知所述第一时间差小于所述第二时间差,则将所述平均值与流媒体码率的预设百分比之差作为所述当前下载网速值。
具体的,媒体服务器若判断获知所述第一时间差小于所述第二时间差,则将所述平均值与流媒体码率的预设百分比之差作为所述当前下载网速值。可参照上述实施例,不再赘述。
若判断获知所述第一时间差大于所述第二时间差,则将所述平均值与流媒体码率的预设百分比之和作为所述当前下载网速值。
具体的,媒体服务器若判断获知所述第一时间差大于所述第二时间差,则将所述平均值与流媒体码率的预设百分比之和作为所述当前下载网速值。可参照上述实施例,不再赘述。
本发明实施例提供的流媒体码率的动态调整方法,通过合理当前下载网速值,进一步能够缩短不同流媒体码率的切换延时时长,且能够对流媒体码率进行动态调整。
图3为本发明另一实施例流媒体码率的动态调整方法流程示意图,如图3所示,本发明实施例提供的一种流媒体码率的动态调整方法,包括以下步骤:
S301:接收媒体服务器发送的重置码率。
具体的,转码服务器接收媒体服务器发送的重置码率。可参照图2中的重置码率109,即重置码率109从媒体服务器发送至转码服务器。
S302:根据所述重置码率,更新流媒体封装数据。
具体的,转码服务器根据所述重置码率,更新流媒体封装数据。所述流媒体封装数据预先以GOP为单位进行缓存,相应的,该步骤具体包括:
在确定当前GOP编码结束后,从所述缓存中读取所述流媒体封装数据,并根据所述重置码率,更新从所述缓存中读取的流媒体封装数据。GOP(Group of Pictures)策略影响编码质量:所谓GOP,意思是画面组,一个GOP就是一组连续的画面。进一步地,该步骤还具体包括:
根据所述重置码率,调整编码参数;
通过调整后的编码参数,更新从所述缓存中读取的流媒体封装数据。参照图2对在转码服务器中执行的方法作简要说明:
推流客户端100将视频数据推送到转码服务器101,或转码服务器101向推流客户端100拉取数据,采用这两种方式的任意一种让转码服务器101可以收到数据;转码服务器101收到数据之后,首先会对数据进行解析,解析出媒体数据编码参数,例如:使用的协议是hls协议,文件的封装使用mpegts、视频的编码采用264、音频的编码采用aac等;随即解码模块102开始工作,对接收到的数据进行解码;对于解码完成的数据可以进行缓存处理,即通过GOP103 进行缓存,通过将解码完成的数据以GOP为单位进行缓存,编码模块105使用设置编码参数104调整的编码参数对GOP103缓存中的数据进行编码,此处,获取数据的时候还是以GOP为单位进行读取的;当设置编码参数104被重新设置参数的时候,编码模块105需要将当前GOP的数据编码完成之后,才能进行调整编码参数,进而更新编码输出的码率,再发送更新的流媒体封装数据至媒体服务器 107;所述更新的流媒体封装数据携带有经过重置的流媒体码率(即更新编码输出的码率)。
本发明实施例提供的流媒体码率的动态调整方法,通过重置码率,更新流媒体封装数据,能够对流媒体码率进行动态调整。
在上述实施例的基础上,所述流媒体封装数据预先以GOP为单位进行缓存;相应的,所述根据所述重置码率,更新流媒体封装数据,包括:
在确定当前GOP编码结束后,从所述缓存中读取所述流媒体封装数据,并根据所述重置码率,更新从所述缓存中读取的流媒体封装数据。
具体的,转码服务器在确定当前GOP编码结束后,从所述缓存中读取所述流媒体封装数据,并根据所述重置码率,更新从所述缓存中读取的流媒体封装数据。可参照上述实施例,不再赘述。
本发明实施例提供的流媒体码率的动态调整方法,进一步能够对流媒体码率进行动态调整。
在上述实施例的基础上,所述根据所述重置码率,更新从所述缓存中读取的流媒体封装数据,包括:
根据所述重置码率,调整编码参数。
具体的,转码服务器根据所述重置码率,调整编码参数。可参照上述实施例,不再赘述。
通过调整后的编码参数,更新从所述缓存中读取的流媒体封装数据。
具体的,转码服务器通过调整后的编码参数,更新从所述缓存中读取的流媒体封装数据。可参照上述实施例,不再赘述。
本发明实施例提供的流媒体码率的动态调整方法,进一步能够对流媒体码率进行动态调整。
图4为本发明另一实施例流媒体码率的动态调整方法流程示意图;如图4所示的方法步骤可参照上述实施例的说明,不再赘述。
图5为本发明实施例媒体服务器结构示意图,如图5所示,本发明实施例提供了一种媒体服务器,包括接收单元501、第一确定单元502、第二确定单元503和第三确定单元504,其中:
接收单元501用于接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;第一确定单元502用于在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;第二确定单元503用于根据所有下载速率值和所述流媒体码率,确定当前下载网速值;第三确定单元504用于根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。
具体的,接收单元501用于接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;第一确定单元502 用于在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;第二确定单元503用于根据所有下载速率值和所述流媒体码率,确定当前下载网速值;第三确定单元504用于根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。
本发明实施例提供的媒体服务器,通过提前确定当前下载网速值,并根据当前下载网速值和流媒体码率,合理确定流媒体码率的重置码率,能够缩短不同流媒体码率的切换延时时长,且能够对流媒体码率进行动态调整。
本发明实施例提供的媒体服务器具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图6为本发明实施例提供的电子设备实体结构示意图,如图6 所示,所述电子设备包括:第一处理器(processor)601、第一存储器 (memory)602和第一总线603;
其中,所述第一处理器601、第一存储器602通过第一总线603 完成相互间的通信;
所述第一处理器601用于调用所述第一存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;根据所有下载速率值和所述流媒体码率,确定当前下载网速值;根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;根据所有下载速率值和所述流媒体码率,确定当前下载网速值;根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;根据所有下载速率值和所述流媒体码率,确定当前下载网速值;根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据。
图7为本发明实施例转码服务器结构示意图,如图所示,本发明实施例提供了一种转码服务器,包括接收模块701和更新模块 702,其中:
接收模块701用于接收媒体服务器发送的重置码率;更新模块 702用于根据所述重置码率,更新流媒体封装数据。
具体的,接收模块701用于接收媒体服务器发送的重置码率;更新模块702用于根据所述重置码率,更新流媒体封装数据。
本发明实施例提供的转码服务器,通过重置码率,更新流媒体封装数据,能够对流媒体码率进行动态调整。
本发明实施例提供的转码服务器具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图8为本发明实施例提供的电子设备实体结构示意图,如图8 所示,所述电子设备包括:第二处理器(processor)801、第二存储器 (memory)802和第二总线803;
其中,所述第二处理器801、第二存储器802通过第二总线803 完成相互间的通信;
所述第二处理器801用于调用所述第二存储器802中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:接收媒体服务器发送的重置码率;根据所述重置码率,更新流媒体封装数据。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收媒体服务器发送的重置码率;根据所述重置码率,更新流媒体封装数据。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收媒体服务器发送的重置码率;根据所述重置码率,更新流媒体封装数据。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。
Claims (10)
1.一种流媒体码率的动态调整方法,其特征在于,包括:
接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;
在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;
根据所有下载速率值和所述流媒体码率,确定当前下载网速值;
根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据;
所述根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,包括:
若判断获知所述流媒体码率小于等于所述当前下载网速值,则确定不重置码率;
若判断获知所述流媒体码率大于所述当前下载网速值,则直接确定所述重置码率为所述当前下载网速值;
所述根据所有下载速率值和所述流媒体码率,确定当前下载网速值,包括:
在所有下载速率值中分别获取最大下载速率值、最小下载速率值、以及所有下载速率值的平均值;
根据所述最大下载速率值和所述最小下载速率值分别对应的时刻与所述当前时刻的时间差的计算结果、所述平均值和所述流媒体码率,确定当前下载网速值;
所述根据所述最大下载速率值和所述最小下载速率值分别对应的时刻与所述当前时刻的时间差的计算结果、所述平均值和所述流媒体码率,确定当前下载网速值,包括:
分别计算所述最大下载速率值对应的时刻与所述当前时刻的第一时间差、所述最小下载速率值对应的时刻与所述当前时刻的第二时间差;
若判断获知所述第一时间差小于所述第二时间差,则将所述平均值与流媒体码率的预设百分比之差作为所述当前下载网速值;
若判断获知所述第一时间差大于所述第二时间差,则将所述平均值与流媒体码率的预设百分比之和作为所述当前下载网速值。
2.根据权利要求1所述的方法,其特征在于,包括:
接收媒体服务器发送的重置码率;
根据所述重置码率,更新流媒体封装数据。
3.根据权利要求2所述的方法,其特征在于,所述流媒体封装数据预先以GOP为单位进行缓存;相应的,所述根据所述重置码率,更新流媒体封装数据,包括:
在确定当前GOP编码结束后,从所述缓存中读取所述流媒体封装数据,并根据所述重置码率,更新从所述缓存中读取的流媒体封装数据。
4.根据权利要求3所述的方法,其特征在于,所述根据所述重置码率,更新从所述缓存中读取的流媒体封装数据,包括:
根据所述重置码率,调整编码参数;
通过调整后的编码参数,更新从所述缓存中读取的流媒体封装数据。
5.根据权利要求1所述的方法,其特征在于,所述转码服务器包括:
接收模块,用于接收媒体服务器发送的重置码率;
更新模块,用于根据所述重置码率,更新流媒体封装数据。
6.一种媒体服务器,其特征在于,包括:
接收单元,用于接收转码服务器发送的流媒体封装数据;所述流媒体封装数据携带有流媒体码率;
第一确定单元,用于在与当前时刻相邻的预设时段内,根据所述流媒体封装数据,确定播放所述流媒体封装数据所需的下载速率值;
第二确定单元,用于根据所有下载速率值和所述流媒体码率,确定当前下载网速值;
确定当前下载网速值,包括:
在所有下载速率值中分别获取最大下载速率值、最小下载速率值、以及所有下载速率值的平均值;
根据所述最大下载速率值和所述最小下载速率值分别对应的时刻与所述当前时刻的时间差的计算结果、所述平均值和所述流媒体码率,确定当前下载网速值;
所述根据所述最大下载速率值和所述最小下载速率值分别对应的时刻与所述当前时刻的时间差的计算结果、所述平均值和所述流媒体码率,确定当前下载网速值,包括:
分别计算所述最大下载速率值对应的时刻与所述当前时刻的第一时间差、所述最小下载速率值对应的时刻与所述当前时刻的第二时间差;
若判断获知所述第一时间差小于所述第二时间差,则将所述平均值与流媒体码率的预设百分比之差作为所述当前下载网速值;
若判断获知所述第一时间差大于所述第二时间差,则将所述平均值与流媒体码率的预设百分比之和作为所述当前下载网速值;
第三确定单元,用于根据所述当前下载网速值和所述流媒体码率的比较结果,确定所述流媒体码率的重置码率,并发送所述重置码率至所述转码服务器,以使所述转码服务器根据所述重置码率,更新流媒体封装数据;
确定所述流媒体码率的重置码率,包括:
若判断获知所述流媒体码率小于等于所述当前下载网速值,则确定不重置码率;
若判断获知所述流媒体码率大于所述当前下载网速值,则直接确定所述重置码率为所述当前下载网速值。
7.一种电子设备,其特征在于,包括:第一处理器、第一存储器和第一总线,其中:
所述第一处理器和所述第一存储器通过所述第一总线完成相互间的通信;
所述第一存储器存储有可被所述第一处理器执行的程序指令,所述第一处理器调用所述程序指令能够执行如权利要求1所述的方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1所述的方法。
9.一种电子设备,其特征在于,包括:第二处理器、第二存储器和第二总线,其中:
所述第二处理器和所述第二存储器通过所述第二总线完成相互间的通信;
所述第二存储器存储有可被所述第二处理器执行的程序指令,所述第二处理器调用所述程序指令能够执行如权利要求2至4任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求2至4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811486482.0A CN109769125B (zh) | 2018-12-06 | 2018-12-06 | 流媒体码率的动态调整方法、媒体服务器及转码服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811486482.0A CN109769125B (zh) | 2018-12-06 | 2018-12-06 | 流媒体码率的动态调整方法、媒体服务器及转码服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109769125A CN109769125A (zh) | 2019-05-17 |
CN109769125B true CN109769125B (zh) | 2021-06-15 |
Family
ID=66450616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811486482.0A Active CN109769125B (zh) | 2018-12-06 | 2018-12-06 | 流媒体码率的动态调整方法、媒体服务器及转码服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109769125B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110267100B (zh) * | 2019-07-12 | 2022-01-25 | 北京达佳互联信息技术有限公司 | Flv视频的码率切换方法、装置、电子设备及存储介质 |
CN113141524B (zh) | 2020-01-17 | 2023-09-29 | 北京达佳互联信息技术有限公司 | 资源传输方法、装置、终端及存储介质 |
WO2021217318A1 (zh) * | 2020-04-26 | 2021-11-04 | 华为技术有限公司 | 一种流媒体参数动态自适应网络的调整方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040240390A1 (en) * | 2003-05-30 | 2004-12-02 | Vidiator Enterprises Inc. | Method and apparatus for dynamic bandwidth adaptation |
CN101778104A (zh) * | 2009-12-29 | 2010-07-14 | 常州中流电子科技有限公司 | 一种实现自适应带宽播放流媒体的系统及其方法 |
CN105451099B (zh) * | 2014-08-19 | 2019-01-01 | 北京大学 | 视频码率调整方法和装置 |
CN106993199A (zh) * | 2017-04-28 | 2017-07-28 | 暴风集团股份有限公司 | 一种实时视频转码的方法及系统 |
-
2018
- 2018-12-06 CN CN201811486482.0A patent/CN109769125B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109769125A (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111135569B (zh) | 云游戏处理方法、装置、存储介质与电子设备 | |
US8997160B2 (en) | Variable bit video streams for adaptive streaming | |
US9060207B2 (en) | Adaptive video streaming over a content delivery network | |
CN106688239B (zh) | 视频下载方法、装置及系统 | |
CN105163134A (zh) | 直播视频的视频编码参数设置方法、装置及视频编码设备 | |
CN110121100B (zh) | 媒体文件的下载方法、装置、终端和计算机可读存储介质 | |
CN109769125B (zh) | 流媒体码率的动态调整方法、媒体服务器及转码服务器 | |
CN106162214B (zh) | 视频编码方法及视频直播客户端 | |
AU2012207151A1 (en) | Variable bit video streams for adaptive streaming | |
EP2903219A1 (en) | Method, player and terminal for selecting code stream segmentations based on stream media | |
CN105451099B (zh) | 视频码率调整方法和装置 | |
EP3142381A1 (en) | Network video playing method and device | |
TW201521394A (zh) | 在網路裝置所執行之進行流量對話中分配該網路可用頻寬之方法及其裝置 | |
KR20150062745A (ko) | 가상화 서비스 장치 및 방법 | |
JP2020521212A (ja) | Vrマルチメディアの経験品質を決定するための方法および装置 | |
CN111886875B (zh) | 一种通过网络传送媒体内容的方法及服务器 | |
EP3251019A1 (en) | Multiple protocol media streaming | |
JP2016059037A (ja) | 少なくとも2つの連続するセグメントに分離されたマルチメディアコンテンツを受信するための方法およびクライアント端末、ならびに対応するコンピュータプログラム製品およびコンピュータ可読媒体 | |
CN113490055A (zh) | 数据处理方法和装置 | |
CN113411643A (zh) | 一种视频质量优化方法、系统、电子设备及存储介质 | |
CN105245562A (zh) | 操作高速缓存器的方法以及对应的高速缓存器 | |
CN114245196B (zh) | 一种录屏推流方法、装置、电子设备及存储介质 | |
CN111617466A (zh) | 编码格式的确定方法、装置及云游戏的实现方法 | |
CN111866533B (zh) | 一种直播转码方法及装置 | |
CN111510761A (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 |