CN116980662A - 流媒体播放方法、装置、电子设备、存储介质及程序产品 - Google Patents

流媒体播放方法、装置、电子设备、存储介质及程序产品 Download PDF

Info

Publication number
CN116980662A
CN116980662A CN202310153274.3A CN202310153274A CN116980662A CN 116980662 A CN116980662 A CN 116980662A CN 202310153274 A CN202310153274 A CN 202310153274A CN 116980662 A CN116980662 A CN 116980662A
Authority
CN
China
Prior art keywords
code rate
switching
playing
rate
predicted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310153274.3A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310153274.3A priority Critical patent/CN116980662A/zh
Publication of CN116980662A publication Critical patent/CN116980662A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种流媒体播放方法、装置、电子设备、存储介质及程序产品,涉及云计算、云存储、计算机视觉等技术领域。通过本申请提供的流媒体播放方法,通过确定当前播放码率、预测码率以及网络带宽变化率,利用当前播放码率和预测码率来预测当前网络的传输能力,以准确判断当前网络的切换状态;并在切换状态和切换指示信息符合码率切换条件时,利用预测码率和网络带宽变化率精准预测当前网络对应的目标码率,以进行码率切换。通过在播放端自动进行传输能力预测以及码率切换,可适时将当前码率自动调整为适应当前环境的码率进行传输、播放,在保证多媒体流播放的流畅性的前提下,尽可能提高了多媒体流播放的清晰度、灵活性和传输效率。

Description

流媒体播放方法、装置、电子设备、存储介质及程序产品
技术领域
本申请涉及云计算、云存储、计算机视觉等技术领域,本申请涉及一种流媒体播放方法、装置、电子设备、存储介质及程序产品。
背景技术
随着互联网技术的不断发展,越来越多的客户端可支持播放以视频、音频为主的流媒体,流媒体已经成为当前网络传输的主要部分。本领域中,通常按照一定的码率来传输流媒体的数据。
相关技术中,通过用户在终端手动操作切换流媒体的播放清晰度,终端向服务器发送获取请求;不同清晰度对应不同码率,清晰度越高,码率越大;服务器按照与用户所选清晰度相对应的码率向终端传输媒体流,终端则实时接收并播放。
然而,用户手动操作来切换码率的效率较低,导致流媒体传输的灵活性较差。
发明内容
本申请提供了一种流媒体播放方法、装置、电子设备、存储介质及程序产品,可以解决相关技术中流媒体传输的灵活性较差的问题。所述技术方案如下:
一方面,提供了一种流媒体播放方法,所述方法包括:
在播放发送端以第一码率传输的多媒体流过程中,基于所述多媒体流对应的各个数据包的接收信息,确定所述多媒体流在播放端的当前播放码率、当前网络的预测码率和网络带宽变化率;
基于当前播放码率和预测码率对当前网络进行传输能力预测,并基于预测结果获取当前网络的切换状态;
响应于所述切换状态和切换指示信息符合码率切换条件,基于所述预测码率和网络带宽变化率,确定所述当前网络对应的目标码率;
向发送端发送切换请求,并播放发送端以目标码率传输的多媒体流,所述切换请求用于指示将所述多媒体流切换为所述目标码率进行传输。
另一方面,提供了一种流媒体播放方法,所述方法包括:
以第一码率向播放端发送多媒体流对应的各个数据包;
接收所述播放端发送的各个数据包的标识信息和接收时间,向所述播放端返回当前网络的预测码率和网络带宽变化率;
响应于接收到播放端发送的切换请求,将所述第一码率切换为目标码率继续向所述播放端发送所述多媒体流;
其中,所述切换请求用于指示将所述多媒体流切换为所述目标码率进行传输,所述目标码率是播放端在切换状态和切换指示信息符合码率切换条件时,基于预测码率和网络带宽变化率确定的。
另一方面,提供了一种流媒体播放装置,所述装置包括:
第一确定模块,用于在播放发送端以第一码率传输的多媒体流过程中,基于所述多媒体流对应的各个数据包的接收信息,确定所述多媒体流在播放端的当前播放码率、当前网络的预测码率和网络带宽变化率;
预测模块,用于基于当前播放码率和预测码率对当前网络进行传输能力预测,并基于预测结果获取当前网络的切换状态;
第二确定模块,用于响应于所述切换状态和切换指示信息符合码率切换条件,基于所述预测码率和网络带宽变化率,确定所述当前网络对应的目标码率;
切换模块,用于向发送端发送切换请求;
播放模块,用于播放发送端以目标码率传输的多媒体流,所述切换请求用于指示将所述多媒体流切换为所述目标码率进行传输。
在一个可能实现方式中,所述码率切换条件包括:所述切换状态为待切换状态且切换指示信息指示在所述待切换状态下切换码率;
所述第二确定模块,用于:
响应于所述切换状态为待切换状态,获取所述当前网络的切换指示信息,所述切换指示信息用于指示在所述待切换状态下是否切换码率;
若所述切换指示信息指示在所述待切换状态下码率切换,则基于所述预测码率和网络带宽变化率,确定所述目标码率。
在一个可能实现方式中,所述切换指示信息包括带宽变化趋势;
所述第二确定模块,用于:
响应于所述切换状态为待降低码率的第一切换状态,若所述带宽变化趋势为非上升趋势,则基于所述预测码率和网络带宽变化率,确定所述第一切换状态对应的第一目标码率;若所述带宽变化趋势为上升趋势,则在所述第一切换状态下不进行码率切换;
响应于所述切换状态为待升高码率的第二切换状态,若所述带宽变化趋势为非下降趋势,则基于所述预测码率和网络带宽变化率,确定所述第二切换状态对应的第二目标码率;若所述带宽变化趋势为下降趋势,则在所述第二切换状态下不进行码率切换。
在一个可能实现方式中,所述切换指示信息包括丢包率;
所述第二确定模块,用于:
响应于所述切换状态为待降低码率的第一切换状态,若所述丢包率高于第一阈值且低于第二阈值,则基于所述预测码率和网络带宽变化率,确定所述第一切换状态对应的第一目标码率;若所述丢包率低于第一阈值,则在所述第一切换状态下不进行码率切换;
响应于所述切换状态为待升高码率的第二切换状态,若所述丢包率不高于第二阈值,则基于所述预测码率和网络带宽变化率,确定所述第二切换状态对应的第二目标码率;若所述丢包率高于第二阈值,则在所述第二切换状态下不进行码率切换。
在一个可能实现方式中,所述切换指示信息包括切换时间差;
所述第二确定模块,用于:
若所述切换时间差不低于第一目标阈值,则基于所述预测码率和网络带宽变化率,确定所述目标码率,所述切换时间差是指当前时间距离上一次码率切换时间的时间间隔。
在一个可能实现方式中,所述预测模块,用于:
基于当前播放码率和预测码率对当前网络进行传输能力预测,得到预测结果,所述预测结果表征当前网络的传输能力对播放端继续以当前播放码率播放多媒体流的支持程度;
若所述预测结果表征不支持继续以当前播放码率播放,则确定所述切换状态为待降低码率的第一切换状态;
若所述预测结果表征有剩余传输能力支持更大码率,则确定所述切换状态为待升高码率的第二切换状态;
若所述预测结果表征支持继续以当前播放码率播放,则确定所述切换状态为不切换码率的第三切换状态。
在一个可能实现方式中,所述预测模块,用于:
基于第一冗余信息对所述预测码率进行扩大,若扩大后的预测码率不高于所述当前播放码率,则确定所述预测结果表征不支持继续以当前播放码率播放;
基于第二冗余信息对所述预测码率进行缩小,若缩小后的预测码率不低于所述当前播放码率,则确定所述预测结果表征有剩余传输能力支持更大码率。
在一个可能实现方式中,所述第一确定模块,用于:
基于所述各个数据包的接收时间,确定所述当前播放码率;
向所述发送端发送所述各个数据包的标识信息和接收时间,从所述发送端中获取所述当前网络的预测码率和网络带宽变化率。
另一方面,提供了一种流媒体播放装置,所述装置包括:
发送模块,用于以第一码率向播放端发送多媒体流对应的各个数据包;
接收模块,用于接收所述播放端发送的各个数据包的标识信息和接收时间,向所述播放端返回当前网络的预测码率和网络带宽变化率;
所述发送模块,还用于响应于接收到播放端发送的切换请求,将所述第一码率切换为目标码率继续向所述播放端发送所述多媒体流;
其中,所述切换请求用于指示将所述多媒体流切换为所述目标码率进行传输,所述目标码率是播放端在切换状态和切换指示信息符合码率切换条件时,基于预测码率和网络带宽变化率确定的。
另一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现上述的流媒体播放方法。
另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的流媒体播放方法。
另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述的流媒体播放方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请提供的流媒体播放方法,通过确定当前播放码率、预测码率以及网络带宽变化率,利用当前播放码率和预测码率来预测当前网络的传输能力,以准确判断当前网络的切换状态;并在切换状态和切换指示信息符合码率切换条件时,利用预测码率和网络带宽变化率精准预测当前网络对应的目标码率,以进行码率切换。通过在播放端自动进行传输能力预测以及码率切换,可适时将当前码率自动调整为适应当前环境的码率进行传输、播放,在保证多媒体流播放的流畅性的前提下,尽可能提高了多媒体流播放的清晰度、多媒体流传输的灵活性和传输效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种实现流媒体播放的实施环境示意图;
图2为本申请实施例提供的一种流媒体播放方法的流程示意图;
图3为本申请实施例提供的一种流媒体播放方法的流程示意图;
图4为本申请实施例提供的一种流媒体播放方法中的示意图;
图5为本申请实施例提供的一种流媒体播放方法的示意图;
图6为本申请实施例提供的一种流媒体播放方法的示意图;
图7为本申请实施例提供的一种流媒体播放装置的结构示意图;
图8为本申请实施例提供的一种流媒体播放装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“该”和“所述”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
可以理解的是,在本申请的具体实施方式中,涉及到对象信息,如对象在播放多媒体流时的当前播放码率、接收各个数据包的接收时间、各个数据包的序列号等任何与对象相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
图1为本申请提供的一种流媒体播放方法的实施环境示意图。如图1所示,该实施环境包括:服务器101和终端102,该服务器101可以为应用程序的后台服务器。该终端102安装有应用程序,该终端102和该服务器102可以基于该应用程序进行数据交互。该应用程序可以为支持多媒体流播放的任意应用程序,例如,直播应用、视频应用、支持多媒体流播放的内容交互平台、社交平台等。
本申请中,可由服务器101传输多媒体流,终端102接收并向用户播放该多媒体流;该多媒体流的内容包括但不限于:视频、音频、图像、文字等。需要说明的是,该服务器101可以是独立的物理服务器,或是多个物理服务器构成的服务器集群或者分布式***,或是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。终端102可以是智能手机、平板电脑、笔记本电脑、数字广播接收器、台式计算机、车载终端(例如车载导航终端、车载电脑等)、智能音箱、智能手表等。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,也可基于实际应用场景需求确定,在此不作限定。
图2为本申请实施例提供的一种流媒体播放方法的流程示意图。该方法的执行主体可以为播放端,该播放端可以为终端,例如,电视机、手机等任意具备播放功能的电子设备,本申请实施例对该播放端的具体形式不做限定,下面仅以终端为例进行说明。如图2所示,该方法包括以下步骤。
步骤201、终端在播放发送端以第一码率传输的多媒体流过程中,基于该多媒体流对应的各个数据包的接收信息,确定该多媒体流在播放端的当前播放码率、当前网络的预测码率和网络带宽变化率。
本步骤中,发送端可以是存储并发送该多媒体流的发送设备,例如,该发送端可以是服务器、云存储设备、云计算中心设备等;本申请实施例对该发送端的具体表现形式不做限定,下面仅以发送端为服务器为例进行说明,例如,该服务器可以是直播应用、视频应用或者音频播放器等应用的后台服务器。该服务器中预先存储有多媒体流的多种码率的多媒体流,该多媒体流的内容包括但不限于:视频、音频、图像、文字等。本申请中,可由服务器传输多媒体流,终端接收并向用户播放该多媒体流;为了达到更好的QOE(Quality ofExperience,用户观看体验质量),可采用本申请的多媒体流播放方法,实现在终端和服务器之间基于ABR(Adaptive Bitrate Streaming,自适应码率)传输多媒体流并播放。其中,QOE由影响用户观看体验的多个因素决定,如卡顿情况、码率切换平滑度、播放清晰度等。
在一种可能实现方式中,该终端可基于对多媒体流对应的多个数据包的接收情况,来统计得到该当前播放码率,该预测码率和带宽变化率可以由服务器进行统计并同步给该终端。示例性的,步骤201可包括以下步骤2011-步骤2012实现。
步骤2011、终端基于该各个数据包的接收时间,确定该当前播放码率。
步骤2012、终端向该发送端发送该各个数据包的标识信息和接收时间,从该发送端中获取该当前网络的预测码率和网络带宽变化率。
本步骤中,该当前播放码率可以是终端在单位时间内所播放的多媒体流的数据量。示例性的,该终端在接收服务器发送的各个数据包的过程中,可基于各个数据包的接收时间和标识信息,统计单位时间内所接收并播放的各个数据包对应的数据量,得到该当前播放码率。例如,该多媒体流可包括视频流,该终端在接收各个数据包并播放的过程中,统计单位时间内从各个数据包中解析并输出播放的视频帧的数据量,得到该当前播放码率;如果多媒体流中还包括音视频流,则该当前播放码率可以是单位时间内的音频帧和视频帧的数据量。一示例中,还可选择多媒体流中属于特定类型的数据来表示该当前播放码率,该过程可包括:该终端在接收各个数据包并播放的过程中,该终端可从各个数据包中解析出多个类型的数据流,并从该多个类型的数据流中筛选出属于目标类型的数据流,统计单位时间内所解析并播放的目标类型的数据流的数据量,得到该当前播放码率。例如,在既有音频流又有视频流的媒体流中,可统计单位时间内视频流的数据量作为当前播放码率。
该预测码率可以是所预测的当前网络在下一时刻的码率,该预测码率能够表征当前网络在未来时刻的传输能力。该网络带宽变化率表征当前网络的带宽的变化趋势;该网络带宽变化率可表征当前网络的带宽在一段时间内为上升趋势、下降趋势或平稳趋势等;该终端可表示下一时刻的带宽相对于当前时刻的带宽的变化率;例如,带宽变化率可以为0.2,表示所预计的下一周期的带宽比当前周期增大20%;又如,带宽变化率可以为-0.05,表示所预计的下一周期的带宽比当前周期降低5%。
示例性的,服务器可基于该各个数据包的标识信息和接收时间,通过预先配置的目标算法,确定该当前网络的预测码率和网络带宽变化率。例如,该服务器可通过TransportCC(Transport-wide Congestion Control,拥塞控制算法),来预测当前网络的码率、并进行带宽估计;其中,TransportCC算法是WebRTC最新的拥塞控制算法;本申请通过利用该TransportCC算法,在终端侧记录各个数据包的接收时间,构造与各个数据包对应的响应报文,如TransportCC报文,并反馈给发送端。而在发送端,可基于终端侧的返回进行带宽估计、码率预测等,并反馈给终端以进行拥塞控制。本申请中,通过将该带宽估计算法预先配置在服务器侧而不是终端侧,以在服务器侧进行带宽估计和码率预测,方便服务器对该算法的实时维护和更新,提高了算法使用的灵活性。
其中,在利用WebRTC技术进行服务器和终端之间通信时,终端可将各个数据包的标识信息和接收时间封装为第一报文,并向服务器发送该第一报文。服务器基于第一报文中携带信息进行带宽估计和码率预测,并将当前网络的预测码率和网络带宽变化率封装为第二报文,将第二报文发送给终端。例如,第一报文可以是WebRTC技术中新增加的TransportCC报文;服务器可通过RTCP类型中的一种子类型RTCP-XR类型的报文来封装预测码率和网络带宽变化率,得到第二报文并发送至终端。例如,第二报文的报头中可新增字段,新增字段中可定义有预测码率和网络带宽变化率对应的报文位置。
数据包的标识信息可以是用于唯一标识该数据包的ID;例如,服务器和终端之间可基于WebRTC(Web Real-Time Communications)技术进行通信,该数据包可以是基于RTP(Real-time Transport Protocol,实时传输协议)的数据包,该标识信息可以是RTP数据包的序列号。需要说明的是,WebRTC技术允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流、音频流或者其他任意数据流的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。本申请中的直播场景示例中,服务器和终端之间可采用WebRTC技术的低延时直播框架。
步骤202、终端基于当前播放码率和预测码率对当前网络进行传输能力预测,并基于预测结果获取当前网络的切换状态。
本申请中,该当前网络的传输能力可以表征当前网络实际能传输的数据量;例如,虽然当前播放码率为200kbps,而传输能力表明当前网络能支持更大的500kbps。终端可对当前播放码率和预测码率进行比较,以对当前网络的传输能力进行预测,得到预测结果。该终端可基于该预测结果来获取该当前网络的切换状态。该切换状态表征当前网络是否处于待切换码率状态。示例性的,该预测结果表征当前网络的传输能力是否支持终端继续以当前播放码率播放该多媒体流,若不支持,该切换状态对应为待切换状态,也即是需切换码率的状态;若支持,该切换状态对应可以为非待切换状态,也即是暂不切换码率的状态。
在一些可能实施方式中,该终端还可基于该当前播放码率和预测码率,预测当前网络的传输能力对当前播放码率的支持程度,并基于该预测结果获取与之匹配的切换状态。示例性的,该步骤202可包括以下步骤2021-步骤2024。
步骤2021、终端基于当前播放码率和预测码率对当前网络进行传输能力预测,得到预测结果,该预测结果表征当前网络的传输能力对播放端继续以当前播放码率播放多媒体流的支持程度;
步骤2022、若该预测结果表征不支持继续以当前播放码率播放,则确定该切换状态为待降低码率的第一切换状态;
步骤2023、若该预测结果表征有剩余传输能力支持更大码率,则确定该切换状态为待升高码率的第二切换状态;
步骤2024、若该预测结果表征支持继续以当前播放码率播放,则确定该切换状态为不切换码率的第三切换状态。
一可能示例中,该支持程度可以采用数值表示,例如,支持程度120%、80%、99%、30%等,数值越大,表明支持程度越大;数值超过1,说明不仅完全支持以当前播放码率,还有剩余能力支持更大码率。
另一可能示例中,该支持程度还可以为预先划分好的几种情况,例如,该支持程度可以划分为:不支持、支持、有剩余传输能力支持更大码率。示例性的,若该预测结果表征当前网络不支持终端继续以当前播放码率播放,则该切换状态可以为待降低码率的第一切换状态;若该预测结果表征当前网络有剩余传输能力支持终端以更大码率播放,则该切换状态可以为切换为待升高码率的第二切换状态;当然,若该预测结果表征当前网络支持终端继续以当前播放码率播放,该切换状态也可以为暂不切换码率的第三切换状态。
在一些可能实施例中,该终端可采用冗余信息对预测码率进行扩大或缩小等调整,利用调整后的预测码率与当前播放码率进行对比,以更精准的衡量当前网络的传输能力,进而提高所确定的切换状态的准确性。示例性的,步骤2021可包括以下步骤A1-步骤A2:
步骤A1、终端基于第一冗余信息对该预测码率进行扩大,若扩大后的预测码率不高于该当前播放码率,则该预测结果表征不支持继续以当前播放码率播放。相应的,终端确定该切换状态为待降低码率的第一切换状态。
步骤A2、终端基于第二冗余信息对该预测码率进行缩小,若缩小后的预测码率不低于该当前播放码率,则确定该预测结果表征有剩余传输能力支持更大码率。相应的,终端确定该切换状态为待升高码率的第二切换状态。
示例性的,该第一冗余信息可以包括第一冗余系数,该终端可利用第一冗余系数对预测码率进行线性扩大,得到扩大后的预测码率。例如,第一冗余系数可以为大于1的数值;例如1.1,该终端可通过以下公式一对该预测码率进行扩大,并判断扩大后的预测码率是否高于该当前播放码率:
公式一:estimate_bitrate*1.1<current_bitrate;
其中,estimate_bitrate表示预测码率;current_bitrate表示当前播放码率;1.1表示第一冗余系数,其中,1.1比1多出来的0.1部分,代表对预测码率的冗余估计,也即是,预测码率中需有冗余估计部分,来保证实际以当前播放码率播放时对应的流畅播放过程。如果预测码率和当前播放码率符合上述公式一,也即是,扩大后的预测码率不高于该当前播放码率,则说明所估计的预测码率对应的网络带宽不足以支持以现有的播放码率继续播放下去。也即是预估网络带宽不足,再以当前播放码率继续播放则终端可能会产生卡顿的风险;则该终端确定该切换状态为待降低码率的第一切换状态。
示例性的,该第二冗余信息可以包括第二冗余系数,该终端可利用第二冗余系数对预测码率进行线性缩小,得到缩小后的预测码率。例如,第二冗余系数可以为0.75,该终端可通过以下公式二对该预测码率进行缩小,并判断缩小后的预测码率是否低于该当前播放码率:
公式二:estimate_bitrate*0.75>current_bitrate;
其中,estimate_bitrate表示预测码率;current_bitrate表示当前播放码率;0.75表示第二冗余系数,其中,1比0.75多出来的0.25部分,代表对预测码率的冗余估计,也即是,预测码率中需有足够多的冗余部分,来保证留有空闲宽带以支持更高的播放码率。如果预测码率和当前播放码率符合上述公式二,也即是,缩小后的预测码率仍高于当前播放码率,则说明所估计的预测码率对应的网络带宽,有剩余传输能力支持终端以更大码率播放。也即是预估网络带宽有剩余,继续以当前播放码率继续播放可能会浪费带宽;则该终端确定该切换状态为待升高码率的第二切换状态。
步骤203、终端响应于该切换状态和切换指示信息符合码率切换条件,基于该预测码率和网络带宽变化率,确定该当前网络对应的目标码率。
其中,该码率切换条件包括:该切换状态为待切换状态且切换指示信息指示在该待切换状态下切换码率;本步骤中,若当前网络为待切换状态且切换指示信息指示切换码率,则该终端可基于预测码率和网络带宽变化率,预测所要切换的目标码率。例如,该待切换状态为待降低码率的第一切换状态,则该终端可以确定低于第一码率的目标码率;若待切换状态为待升高码率的第二切换状态,则该终端可以确定高于第一码率的目标码率。
在一种可能实现方式中,该终端可逐步判断切换状态和切换指示信息是否符合切换条件,则该步骤203可包括:响应于该切换状态为待切换状态,该终端获取该当前网络的切换指示信息,该切换指示信息用于指示在该待切换状态下是否切换码率;若该切换指示信息指示在该待切换状态下码率切换,该终端则基于该预测码率和网络带宽变化率,确定该目标码率。
该切换指示信息包括带宽变化趋势、丢包率或者切换时间差中的至少一项,在待切换状态下,该终端可结合其中至少一项对该待切换状态的切换指示,来判断在该待切换状态下是否切换码率,并在判断切换码率时执行基于该预测码率和网络带宽变化率,确定该目标码率的步骤。示例性的,本步骤203的实现方式可包括以下方式一至方式三。
方式一、该切换指示信息包括带宽变化趋势;对应于不同的切换状态,带宽变化趋势不同所对应的切换指示也不同。相应的,步骤203可包括以下情况一和情况二两种情况:
情况一、响应于该切换状态为待降低码率的第一切换状态,若该带宽变化趋势为非上升趋势,该终端则基于该预测码率和网络带宽变化率,确定该第一切换状态对应的第一目标码率;若该带宽变化趋势为上升趋势,该终端则在该第一切换状态下不进行码率切换。
在第一切换状态下,若带宽变化趋势为上升趋势,则说明网络状态正在变好,该终端可以暂不进行切换,可以继续基于下一次的切换状态和切换指示信息进行判断之后,再做切换。若带宽变化趋势为上升趋势,如下降趋势或者不升不降的平稳趋势,则说明网络状态正在变差或维持现状,则该终端可确定第一切换状态对应的第一目标码率,该第一目标码率低于第一码率。
示例性的,可预先配置多个候选码率,该多个候选码率可以按照从小到大的升序顺序排列。在第一切换状态下,若带宽变化趋势为非上升趋势,则该终端可以根据第一码率,从预先配置的多个候选码率中选取比第一码率低的第一目标码率;例如,选择比第一码率低一档或低两档的第一目标码率。
一可能实现方式中,该终端还可以结合预测码率和网络带宽变化率,确定第一目标码率。例如,该终端可基于该预测码率和网络带宽变化率,通过以下公式三进行判断,并基于判断结果确定第一目标码率:
公式三:(estimate_bitrate-estimate*bwechangerate)*1.1<next lowerbitrate;
其中,estimate_bitrate表示预测码率;bwechangerate表示网络带宽变化率;estimate*bwechangerate表示预测码率和网络带宽变化率的乘积;1.1表示冗余系数。nextlower bitrate表示比第一码率低一档的码率,如可以是多个候选码率中与第一码率相邻且比第一码率低的码率。若预测码率和网络带宽变化率符合上述公式三,也即是,基于网络带宽变化率对预测码率进行调整后,仍不支持比第一码率更低一档的码率,则将比第一码率低两档的候选码率确定为该第一目标码率;否则若不符合上述公式三,也即是调整后的预测码率可支持比第一码率低一档的码率,则将比第一码率低一档的候选码率确定为该第一目标码率;基于此,可以减少后续降码率切换的次数,保证清晰度切换的平滑度,从而尽可能地保证QOE。
情况二、响应于该切换状态为待升高码率的第二切换状态,若该带宽变化趋势为非下降趋势,该终端则基于该预测码率和网络带宽变化率,确定该第二切换状态对应的第二目标码率;若该带宽变化趋势为下降趋势,该终端则在该第二切换状态下不进行码率切换。
在第二切换状态下,若带宽变化趋势为下降趋势,则说明网络状态正在变差,该终端可以暂不进行切换,可以继续基于下一次的切换状态和切换指示信息进行判断之后,再做切换。若带宽变化趋势为非下降趋势,如上升趋势或平稳趋势,则说明网络状态正在变好或维持现状,则该终端可确定第二切换状态对应的第二目标码率,该第二目标码率高于第一码率。
示例性的,可预先配置多个候选码率,该多个候选码率可以按照从小到大的升序顺序排列。若带宽变化趋势为非上升趋势,则该终端可以根据第一码率,从预先配置的多个候选码率中选取比第一码率高的第二目标码率;例如,选择比第一码率高一档或高两档的第二目标码率。
一可能实现方式中,该终端还可以结合预测码率和网络带宽变化率,确定第二目标码率。例如,该终端可基于该预测码率和网络带宽变化率,通过以下公式四进行判断,并基于判断结果确定第二目标码率:
公式四:(estimate_bitrate+estimate*bwechangerate)*0.75>next higherbitrate;
其中,estimate_bitrate表示预测码率;bwechangerate表示网络带宽变化率;estimate*bwechangerate表示预测码率和网络带宽变化率的乘积;1.1表示冗余系数。nexthigher bitrate表示比第一码率高的码率,例如,可以是多个候选码率中与第一码率相邻且比第一码率高的码率。若预测码率和网络带宽变化率符合上述公式四,也即是,基于网络带宽变化率对预测码率进行调整后,仍有剩余带宽支持比第一码率更高一档的码率,则将比第一码率高两档的候选码率确定为该第二目标码率;否则若不符合上述公式四,也即是调整后的预测码率可支持比第一码率高一档的码率,则将比第一码率高一档的候选码率确定为该第二目标码率,以保证清晰度切换的平滑度,从而尽可能地保证QOE。
方式二、该切换指示信息包括丢包率;对应于不同的切换状态,丢包率不同所对应的指示结果也不同。相应的,步骤203可包括以下情况三和情况四的两种情况:
情况三、响应于该切换状态为待降低码率的第一切换状态,若该丢包率高于第一阈值且低于第二阈值,终端则基于该预测码率和网络带宽变化率,确定该第一切换状态对应的第一目标码率;若该丢包率低于第一阈值,则在该第一切换状态下不进行码率切换。
在第一切换状态下,第一阈值小于第二阈值,该第一阈值、第二阈值可以是基于丢包率衡量网络状态的预设阈值。一示例中,若丢包率高于第一阈值且低于第二阈值,例如,第一阈值为0.1,第二阈值为0.5,也即是丢包率>0.1且≤0.5,说明当前网络较差,则该终端可确定比第一码率低的第一目标码率,例如,继续切换低一档码率,以更低清晰度进行播放,以保证流畅性。一示例中,若丢包率低于第一阈值,例如丢包率<0.1,则说明当前网络状态较好,在该第一切换状态下不进行码率切换。当然,若丢包率高于第二阈值,例如丢包率>0.5,则说明当前网络非常差,该终端可直接将多个候选码率中的最低候选码率确定为第一目标码率。
其中,该终端可基于数据包的序列号来统计单位时间内的丢包率。例如,当终端收到每个RTP包时,可以与上一个接收到的RTP包的序列号进行比较,如果所接收到的每个RTP包与上一个RTP包的序列号连续,则说明接收的数据包均正常,没有丢包;如果不连续,则不连续的序列号对应的RTP包没有正常收到,计入丢包统计;后续有再接收到的包,可进一步判断是否位于所统计的丢包队列,如果是,则说明这个RTP包已正常发送到了或者通过重传发送到了,那么丢包队列中则删除这个RTP包的记录。该终端可基于所统计的丢包队列,计算单位时间内的丢包率。
情况四、响应于该切换状态为待升高码率的第二切换状态,若该丢包率不高于第二阈值,终端则基于该预测码率和网络带宽变化率,确定该第二切换状态对应的第二目标码率;若该丢包率高于第二阈值,则在该第二切换状态下不进行码率切换。
在第二切换状态下,一示例中,若丢包率高于第二阈值,例如,丢包率>0.5,说明当前网络很差,则该终端可在第二切换状态下暂不进行码率切换,以保证流畅性。一示例中,若丢包率不高于第二阈值,例如丢包率≤0.5,则说明当前网络状态并不是很差,在该第二切换状态下可进行切换为更高的第二目标码率。
方式三、该切换指示信息包括切换时间差,该切换时间差是指当前时间距离上一次码率切换时间的时间间隔;若该切换时间差不低于第一目标阈值,终端则基于该预测码率和网络带宽变化率,确定该目标码率。
示例性的,若该切换时间差不低于第一目标阈值,在第一切换状态下,终端基于该预测码率和网络带宽变化率确定第一切换状态对应的第一目标码率。在第二切换状态下,终端基于该预测码率和网络带宽变化率确定第二切换状态对应的第二目标码率。
示例性的,在第一切换状态或第二切换状态下,若切换时间差小于第一目标阈值,则暂不进行切换。其中,该第一目标阈值可以为一次码率切换周期;例如,该终端可基于码率切换周期,执行一次步骤202-204的过程,以进行自适应码率切换。例如,一次码率切换周期可以为10s,第一目标阈值可以为10s,若上一次切换码率的时间距当前时间较短,不足10s,则暂不进行切换,以保证码率切换的平滑度。
需要说明的是,在情况三、情况四以及切换指示信息包括切换时间差时,终端切换为第一目标码率或切换为第二目标码率的实现方式,可以与情况一或情况二中对应的实现方式同理,如利用对应的公式三或公式四来实现,此处不再一一赘述。
需要说明的是,上述方式一至方式三,是从带宽变化趋势、丢包率或者切换时间差中任一项对待切换状态的切换指示,来执行目标码率确定过程;步骤203可采用上述三种方式中任一种实现。当然,本申请还可结合其中的两项或者三项,来判断在该待切换状态下是否切换码率,以执行目标码率确定过程。一可能示例中,该终端可结合切换时间差和带宽变化趋势进行码率切换判断;该终端可在切换时间差不低于第一目标阈值且带宽变化趋势为非上升趋势时,确定切换码率,并确定该第一切换状态所对应的第一目标码率切换码率。例如,若切换状态为第一切换状态,该终端获取切换时间差;若该切换时间差低于第一目标阈值,该终端不切换码率;若该切换时间差不低于第一目标阈值,该终端获取带宽变化趋势,若该带宽变化趋势为非上升趋势,该终端确定切换码率,并基于该预测码率和网络带宽变化率,确定该第一切换状态对应的第一目标码率;若带宽变化趋势为上升趋势,该终端则不进行码率切换。当然,也可以结合带宽变化趋势、丢包率和切换时间差这三项的切换指示,来执行目标码率确定过程,例如,在第一切换状态下,该终端在切换时间差不低于第一目标阈值、丢包率高于第一阈值且低于第二阈值、且带宽变化趋势为非上升趋势时,确定切换码率,并确定该第一切换状态所对应的第一目标码率切换码率。上述仅以第一切换状态为例进行说明,在第二切换状态下,也可结合带宽变化趋势、丢包率和切换时间差中的两项或三项的切换指示,来判断是否切换码率以及在切换时执行目标码率确定过程。无论是第一切换状态或第二切换状态,步骤203均可利用带宽变化趋势、丢包率和切换时间差中的任一项、两项或三项实现,本申请实施例对此不做限定。
步骤204、终端向发送端发送切换请求,并播放发送端以目标码率传输的多媒体流。
该切换请求用于指示将该多媒体流切换为该目标码率进行传输。该终端可基于该目标码率生成切换请求,并向服务器发送该切换请求。该服务器中预先配置有该多媒体流对应于多个候选码率的数据包,该服务器选取该目标码率所对应的数据包并进行发送。该终端接收该发送端以目标码率发送的多个数据包并进行播放。
在一种可能实现方式中,在基于步骤204进行码率切换之后,该终端还可以进一步观测下一次切换后的码率以及切换时间,以便后续切换综合判断。示例性的,在切换为第二切换状态对应的第二目标码率后,该终端还以获取在本次切换之后目标切换码率以及切换时间,例如,在当前切换之后的下一个切换周期对应的目标切换码率;若后续周期对应的目标切换码率小于第二目标码率且切换时间差小于第二目标阈值,则该终端在后续切换周期时先不进行码率切换。例如,第二目标阈值可以为10s。例如,如果从第一码率切换到较高的第二目标码率之后,短时间内很快(小于一个码率切换周期,如小于10s),则说明当前网络的网络带宽不支持以第二目标码率。该终端可将该第二目标码率确定为最高临界阈值,例如,将第二目标码率记录为高档位清晰度(forbid_higher_definition),在目标切换码率之后的下一次切换时,如果所需切换的码率等于或高于最高临界阈值,则终端确定暂不切换,则说明所需切换码率达到当前网络的传输能力的最高临界值,当前网络不支持该临界值,则不进行切换码率。当然,该可以一并记录后续周期对应的切换时间(time_forbid_higher_definition)进行综合判断,如所需切换的码率等于或高于最高临界阈值且切换时间差较短,则终端确定暂不切换。
图3是本申请提供的一种多媒体播放流程示意图,如图3所示,对于发送端,可包括以下步骤301-步骤303:
步骤301、发送端以第一码率向播放端发送多媒体流对应的各个数据包。
示例性的,该发送端可以为服务器。例如,目标应用的后台服务器,如直播应用、后台应用等的后台服务器。
步骤302、发送端接收该播放端发送的各个数据包的标识信息和接收时间,向该播放端返回当前网络的预测码率和网络带宽变化率。
示例性的,该发送端可以接收播放端返回的第一报文,并从第一报文中提取各个数据包的标识信息和接收时间,以基于第一报文中携带信息进行带宽估计和码率预测,通过预先配置的目标算法,确定该当前网络的预测码率和网络带宽变化率;并将当前网络的预测码率和网络带宽变化率封装为第二报文,将第二报文发送给终端。
步骤303、发送端响应于接收到播放端发送的切换请求,将该第一码率切换为目标码率继续向该播放端发送该多媒体流。
其中,该切换请求用于指示将该多媒体流切换为该目标码率进行传输,该目标码率是播放端在切换状态和切换指示信息符合码率切换条件时,基于预测码率和网络带宽变化率确定的。
示例性的,服务器可以预先将多媒体流进行转码处理,得到多个候选码率分别对应的数据包;在接收到终端的切换请求时,可基于切换请求确定目标码率所对应的数据包,向终端以目标码率发送多媒体流对应的各个数据包。
如图4所示,以直播应用为例,在直播场景中,由主播所在的主播终端采集音视频数据,主播终端进行编码、封装处理后推流至服务端,如直播应用的后台服务器;服务端在收到直播间中观众的客户端的拉流请求后,服务端将对应的主播发送的多媒体流下发至观众的客户端;客户端接收多媒体流,并对其进行解封装、解码、渲染播放等操作。通过本申请的多媒体流播放方法,可在直播过程中,通过确定当前播放码率、预测码率以及网络带宽变化率,利用当前播放码率和预测码率来预测当前网络的传输能力,以判断当前网络的切换状态。并在符合切换条件时,利用预测码率和网络带宽变化率精准预测当前网络对应的目标码率,以进行码率切换。通过终端自动进行传输能力预测以及码率切换,可将当前码率调整为自适应当前环境的码率进行传输、播放。另外,服务端会将主播端推送的流数据进行处理,转码成为不同码率的数据流,如图5所示,可转码成1080p、720p、360p等多种码率的数据流;基于此,使得播放环境较好的客户端(如个人计算机、电视机)可以拉取高码率的流,获得尽可能高的分辨率和清晰度;而播放环境较差的(如手机端),则可以拉取低码率的流,使播放的卡顿等异常情况尽量降低,获得更好的流畅度。能使不同的客户端均能自适应的匹配到更合适的码率,基于此,本申请的多媒体流播放方法,能够更好的满足不同客户端由于网络环境、硬件设备等差异决定的不同播放条件,尽可能的使不同的用户端都能获得更好的直播体验。
下面以图6所示的交互图,对本申请的多媒体流播放过程进行示例性介绍。如图6所示,服务端利用WebRTC技术向客户端传输RTP包,各个RTP包中携带序列号,客户端接收到RTP包之后,记录序列号和对应的接收时间,通过TransportCC报文反馈给服务端。服务端根据发送端反馈的数据,基于TransportCC拥塞控制算法确定当前网络的预测码率、网络带宽趋势、网络带宽变化速率BweChangeRate,并下发给客户端;其中,需注意的点1:服务端根据客户端反馈的数据,通过服务器中预配置的目标算法,计算出预测码率、网络带宽变化趋势、网络带宽变化速率BweChangeRate,通过RTCP-XR报文将这三个数据一起下发至客户端。需注意的点2:客户端收到预测码率、网络带宽变化趋势、网络带宽变化速率后,通过上述步骤202-203的过程,判断当前网络的切换状态,并在切换状态和切换指示信息符合码率切换条件时,利用预测码率和网络带宽变化率确定需切换的目标码率,以请求服务端进行切换;其中,在判断是否符合切换条件时,可结合当前播放码率、预测码率、带宽变化趋势、丢包率等进行判断。通过在客户端自动进行传输能力预测以及码率切换,可将当前码率调整为自适应当前环境的码率进行传输、播放;不用用户手动选择,自动根据网络状态切换到与用户播放环境最为匹配的清晰度档位,实现自适应码率切换的功能,提升用户QOE,从而达到提升直播整体观看体验及用户留存的目的。
本申请提供的流媒体播放方法,通过确定当前播放码率、预测码率以及网络带宽变化率,利用当前播放码率和预测码率来预测当前网络的传输能力,以准确判断当前网络的切换状态;并在切换状态和切换指示信息符合码率切换条件时,利用预测码率和网络带宽变化率精准预测当前网络对应的目标码率,以进行码率切换。通过在播放端自动进行传输能力预测以及码率切换,可适时将当前码率自动调整为适应当前环境的码率进行传输、播放,在保证多媒体流播放的流畅性的前提下,尽可能提高了多媒体流播放的清晰度、多媒体流传输的灵活性和传输效率。
本申请提供的流媒体播放方法,涉及云技术、云计算、云存储、计算机视觉等技术,如利用云存储技术对待传输的流媒体数据进行存储,利用云计算技术按照一定码率来传输流媒体数据等。
可以理解的是,计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能***。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建、自动驾驶、智慧交通等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。
目前,存储***的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件***上,文件***将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件***将每个对象分别写入该逻辑卷的物理存储空间,且文件***会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件***能够根据每个对象的存储位置信息让客户端对数据进行访问。
图7为本申请实施例提供的一种流媒体播放装置的结构示意图。如图7所示,该装置包括:
第一确定模块701,用于在播放发送端以第一码率传输的多媒体流过程中,基于该多媒体流对应的各个数据包的接收信息,确定该多媒体流在播放端的当前播放码率、当前网络的预测码率和网络带宽变化率;
预测模块702,用于基于当前播放码率和预测码率对当前网络进行传输能力预测,并基于预测结果获取当前网络的切换状态;
第二确定模块703,用于响应于该切换状态和切换指示信息符合码率切换条件,基于该预测码率和网络带宽变化率,确定该当前网络对应的目标码率;
切换模块704,用于向发送端发送切换请求;
播放模块705,用于播放发送端以目标码率传输的多媒体流,该切换请求用于指示将该多媒体流切换为该目标码率进行传输。
在一个可能实现方式中,该码率切换条件包括:该切换状态为待切换状态且切换指示信息指示在该待切换状态下切换码率;
该第二确定模块,用于:
响应于该切换状态为待切换状态,获取该当前网络的切换指示信息,该切换指示信息用于指示在该待切换状态下是否切换码率;
若该切换指示信息指示在该待切换状态下码率切换,则基于该预测码率和网络带宽变化率,确定该目标码率。
在一个可能实现方式中,该切换指示信息包括带宽变化趋势;
该第二确定模块,用于:
响应于该切换状态为待降低码率的第一切换状态,若该带宽变化趋势为非上升趋势,则基于该预测码率和网络带宽变化率,确定该第一切换状态对应的第一目标码率;若该带宽变化趋势为上升趋势,则在该第一切换状态下不进行码率切换;
响应于该切换状态为待升高码率的第二切换状态,若该带宽变化趋势为非下降趋势,则基于该预测码率和网络带宽变化率,确定该第二切换状态对应的第二目标码率;若该带宽变化趋势为下降趋势,则在该第二切换状态下不进行码率切换。
在一个可能实现方式中,该切换指示信息包括丢包率;
该第二确定模块,用于:
响应于该切换状态为待降低码率的第一切换状态,若该丢包率高于第一阈值且低于第二阈值,则基于该预测码率和网络带宽变化率,确定该第一切换状态对应的第一目标码率;若该丢包率低于第一阈值,则在该第一切换状态下不进行码率切换;
响应于该切换状态为待升高码率的第二切换状态,若该丢包率不高于第二阈值,则基于该预测码率和网络带宽变化率,确定该第二切换状态对应的第二目标码率;若该丢包率高于第二阈值,则在该第二切换状态下不进行码率切换。
在一个可能实现方式中,该切换指示信息包括切换时间差;
该第二确定模块,用于:
若该切换时间差不低于第一目标阈值,则基于该预测码率和网络带宽变化率,确定该目标码率,该切换时间差是指当前时间距离上一次码率切换时间的时间间隔。
在一个可能实现方式中,该预测模块,用于:
基于当前播放码率和预测码率对当前网络进行传输能力预测,得到预测结果,该预测结果表征当前网络的传输能力对播放端继续以当前播放码率播放多媒体流的支持程度;
若该预测结果表征不支持继续以当前播放码率播放,则确定该切换状态为待降低码率的第一切换状态;
若该预测结果表征有剩余传输能力支持更大码率,则确定该切换状态为待升高码率的第二切换状态;
若该预测结果表征支持继续以当前播放码率播放,则确定该切换状态为不切换码率的第三切换状态。
在一个可能实现方式中,该预测模块,用于:
基于第一冗余信息对该预测码率进行扩大,若扩大后的预测码率不高于该当前播放码率,则确定该预测结果表征不支持继续以当前播放码率播放;
基于第二冗余信息对该预测码率进行缩小,若缩小后的预测码率不低于该当前播放码率,则确定该预测结果表征有剩余传输能力支持更大码率。
在一个可能实现方式中,该第一确定模块,用于:
基于该各个数据包的接收时间,确定该当前播放码率;
向该发送端发送该各个数据包的标识信息和接收时间,从该发送端中获取该当前网络的预测码率和网络带宽变化率。
本申请提供的流媒体播放方法,通过确定当前播放码率、预测码率以及网络带宽变化率,利用当前播放码率和预测码率来预测当前网络的传输能力,以准确判断当前网络的切换状态;并在切换状态和切换指示信息符合码率切换条件时,利用预测码率和网络带宽变化率精准预测当前网络对应的目标码率,以进行码率切换。通过在播放端自动进行传输能力预测以及码率切换,可适时将当前码率自动调整为适应当前环境的码率进行传输、播放,在保证多媒体流播放的流畅性的前提下,尽可能提高了多媒体流播放的清晰度和多媒体流传输的灵活性。
图8为本申请实施例提供的一种流媒体播放装置的结构示意图。如图8所示,该装置包括:
发送模块801,用于以第一码率向播放端发送多媒体流对应的各个数据包;
接收模块802,用于接收该播放端发送的各个数据包的标识信息和接收时间,向该播放端返回当前网络的预测码率和网络带宽变化率;
该发送模块801,还用于响应于接收到播放端发送的切换请求,将该第一码率切换为目标码率继续向该播放端发送该多媒体流;
其中,该切换请求用于指示将该多媒体流切换为该目标码率进行传输,该目标码率是播放端在切换状态和切换指示信息符合码率切换条件时,基于预测码率和网络带宽变化率确定的。
本申请提供的流媒体播放方法,通过确定当前播放码率、预测码率以及网络带宽变化率,利用当前播放码率和预测码率来预测当前网络的传输能力,以准确判断当前网络的切换状态;并在切换状态和切换指示信息符合码率切换条件时,利用预测码率和网络带宽变化率精准预测当前网络对应的目标码率,以进行码率切换。通过在播放端自动进行传输能力预测以及码率切换,可适时将当前码率自动调整为适应当前环境的码率进行传输、播放,在保证多媒体流播放的流畅性的前提下,尽可能提高了多媒体流播放的清晰度和多媒体流传输的灵活性。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
图9是本申请实施例中提供了一种电子设备的结构示意图。如图9所示,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现流媒体播放方法的步骤,与相关技术相比可实现:
本申请提供的流媒体播放方法,通过确定当前播放码率、预测码率以及网络带宽变化率,利用当前播放码率和预测码率来预测当前网络的传输能力,以准确判断当前网络的切换状态;并在切换状态和切换指示信息符合码率切换条件时,利用预测码率和网络带宽变化率精准预测当前网络对应的目标码率,以进行码率切换。通过在播放端自动进行传输能力预测以及码率切换,可适时将当前码率自动调整为适应当前环境的码率进行传输、播放,在保证多媒体流播放的流畅性的前提下,尽可能提高了多媒体流播放的清晰度和多媒体流传输的灵活性。
在一个可选实施例中提供了一种电子设备,如图9所示,图9所示的电子设备900包括:处理器901和存储器903。其中,处理器901和存储器903相连,如通过总线902相连。可选地,电子设备900还可以包括收发器904,收发器904可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器904不限于一个,该电子设备900的结构并不构成对本申请实施例的限定。
处理器901可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器901也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线902可包括一通路,在上述组件之间传送信息。总线902可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线902可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器903可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质\其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器903用于存储执行本申请实施例的计算机程序,并由处理器901来控制执行。处理器901用于执行存储器903中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:服务器、终端或云计算中心设备等。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (14)

1.一种流媒体播放方法,其特征在于,所述方法包括:
在播放发送端以第一码率传输的多媒体流过程中,基于所述多媒体流对应的各个数据包的接收信息,确定所述多媒体流在播放端的当前播放码率、当前网络的预测码率和网络带宽变化率;
基于当前播放码率和预测码率对当前网络进行传输能力预测,并基于预测结果获取当前网络的切换状态;
响应于所述切换状态和切换指示信息符合码率切换条件,基于所述预测码率和网络带宽变化率,确定所述当前网络对应的目标码率;
向发送端发送切换请求,并播放发送端以目标码率传输的多媒体流,所述切换请求用于指示将所述多媒体流切换为所述目标码率进行传输。
2.根据权利要求1所述的方法,其特征在于,所述码率切换条件包括:所述切换状态为待切换状态且切换指示信息指示在所述待切换状态下切换码率;
所述响应于所述切换状态和切换指示信息符合码率切换条件,基于所述预测码率和网络带宽变化率,确定所述当前网络对应的目标码率,包括:
响应于所述切换状态为待切换状态,获取所述当前网络的切换指示信息,所述切换指示信息用于指示在所述待切换状态下是否切换码率;
若所述切换指示信息指示在所述待切换状态下码率切换,则基于所述预测码率和网络带宽变化率,确定所述目标码率。
3.根据权利要求2所述的方法,其特征在于,所述切换指示信息包括带宽变化趋势;
所述若所述切换指示信息指示在所述待切换状态下码率切换,则基于所述预测码率和网络带宽变化率,确定所述目标码率,包括:
响应于所述切换状态为待降低码率的第一切换状态,若所述带宽变化趋势为非上升趋势,则基于所述预测码率和网络带宽变化率,确定所述第一切换状态对应的第一目标码率;若所述带宽变化趋势为上升趋势,则在所述第一切换状态下不进行码率切换;
响应于所述切换状态为待升高码率的第二切换状态,若所述带宽变化趋势为非下降趋势,则基于所述预测码率和网络带宽变化率,确定所述第二切换状态对应的第二目标码率;若所述带宽变化趋势为下降趋势,则在所述第二切换状态下不进行码率切换。
4.根据权利要求2所述的方法,其特征在于,所述切换指示信息包括丢包率;
所述若所述切换指示信息指示在所述待切换状态下码率切换,则基于所述预测码率和网络带宽变化率,确定所述目标码率,包括:
响应于所述切换状态为待降低码率的第一切换状态,若所述丢包率高于第一阈值且低于第二阈值,则基于所述预测码率和网络带宽变化率,确定所述第一切换状态对应的第一目标码率;若所述丢包率低于第一阈值,则在所述第一切换状态下不进行码率切换;
响应于所述切换状态为待升高码率的第二切换状态,若所述丢包率不高于第二阈值,则基于所述预测码率和网络带宽变化率,确定所述第二切换状态对应的第二目标码率;若所述丢包率高于第二阈值,则在所述第二切换状态下不进行码率切换。
5.根据权利要求2所述的方法,其特征在于,所述切换指示信息包括切换时间差;
所述若所述切换指示信息指示在所述待切换状态下码率切换,则基于所述预测码率和网络带宽变化率,确定所述目标码率,包括:
若所述切换时间差不低于第一目标阈值,则基于所述预测码率和网络带宽变化率,确定所述目标码率,所述切换时间差是指当前时间距离上一次码率切换时间的时间间隔。
6.根据权利要求1所述的方法,其特征在于,所述基于当前播放码率和预测码率对当前网络进行传输能力预测,并基于预测结果获取当前网络的切换状态,包括:
基于当前播放码率和预测码率对当前网络进行传输能力预测,得到预测结果,所述预测结果表征当前网络的传输能力对播放端继续以当前播放码率播放多媒体流的支持程度;
若所述预测结果表征不支持继续以当前播放码率播放,则确定所述切换状态为待降低码率的第一切换状态;
若所述预测结果表征有剩余传输能力支持更大码率,则确定所述切换状态为待升高码率的第二切换状态;
若所述预测结果表征支持继续以当前播放码率播放,则确定所述切换状态为不切换码率的第三切换状态。
7.根据权利要求6所述的方法,其特征在于,所述基于当前播放码率和预测码率对当前网络进行传输能力预测,得到预测结果,包括:
基于第一冗余信息对所述预测码率进行扩大,若扩大后的预测码率不高于所述当前播放码率,则确定所述预测结果表征不支持继续以当前播放码率播放;
基于第二冗余信息对所述预测码率进行缩小,若缩小后的预测码率不低于所述当前播放码率,则确定所述预测结果表征有剩余传输能力支持更大码率。
8.根据权利要求1所述的方法,其特征在于,所述基于所述多媒体流对应的各个数据包的接收信息,确定所述多媒体流在播放端的当前播放码率、当前网络的预测码率和网络带宽变化率,包括:
基于所述各个数据包的接收时间,确定所述当前播放码率;
向所述发送端发送所述各个数据包的标识信息和接收时间,从所述发送端中获取所述当前网络的预测码率和网络带宽变化率。
9.一种流媒体播放方法,其特征在于,所述方法包括:
以第一码率向播放端发送多媒体流对应的各个数据包;
接收所述播放端发送的各个数据包的标识信息和接收时间,向所述播放端返回当前网络的预测码率和网络带宽变化率;
响应于接收到播放端发送的切换请求,将所述第一码率切换为目标码率继续向所述播放端发送所述多媒体流;
其中,所述切换请求用于指示将所述多媒体流切换为所述目标码率进行传输,所述目标码率是播放端在切换状态和切换指示信息符合码率切换条件时,基于预测码率和网络带宽变化率确定的。
10.一种流媒体播放装置,其特征在于,所述装置包括:
第一确定模块,用于在播放发送端以第一码率传输的多媒体流过程中,基于所述多媒体流对应的各个数据包的接收信息,确定所述多媒体流在播放端的当前播放码率、当前网络的预测码率和网络带宽变化率;
预测模块,用于基于当前播放码率和预测码率对当前网络进行传输能力预测,并基于预测结果获取当前网络的切换状态;
第二确定模块,用于响应于所述切换状态和切换指示信息符合码率切换条件,基于所述预测码率和网络带宽变化率,确定所述当前网络对应的目标码率;
切换模块,用于向发送端发送切换请求;
播放模块,用于播放发送端以目标码率传输的多媒体流,所述切换请求用于指示将所述多媒体流切换为所述目标码率进行传输。
11.一种流媒体播放装置,其特征在于,所述装置包括:
发送模块,用于以第一码率向播放端发送多媒体流对应的各个数据包;
接收模块,用于接收所述播放端发送的各个数据包的标识信息和接收时间,向所述播放端返回当前网络的预测码率和网络带宽变化率;
所述发送模块,还用于响应于接收到播放端发送的切换请求,将所述第一码率切换为目标码率继续向所述播放端发送所述多媒体流;
其中,所述切换请求用于指示将所述多媒体流切换为所述目标码率进行传输,所述目标码率是播放端在切换状态和切换指示信息符合码率切换条件时,基于预测码率和网络带宽变化率确定的。
12.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至9任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤。
CN202310153274.3A 2023-02-09 2023-02-09 流媒体播放方法、装置、电子设备、存储介质及程序产品 Pending CN116980662A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310153274.3A CN116980662A (zh) 2023-02-09 2023-02-09 流媒体播放方法、装置、电子设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310153274.3A CN116980662A (zh) 2023-02-09 2023-02-09 流媒体播放方法、装置、电子设备、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN116980662A true CN116980662A (zh) 2023-10-31

Family

ID=88482035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310153274.3A Pending CN116980662A (zh) 2023-02-09 2023-02-09 流媒体播放方法、装置、电子设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN116980662A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117499720A (zh) * 2023-11-10 2024-02-02 广州凯迪云信息科技有限公司 一种用于提高图像直播质量的方法及***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117499720A (zh) * 2023-11-10 2024-02-02 广州凯迪云信息科技有限公司 一种用于提高图像直播质量的方法及***

Similar Documents

Publication Publication Date Title
Petrangeli et al. An http/2-based adaptive streaming framework for 360 virtual reality videos
CN108810636B (zh) 视频播放方法、虚拟现实设备、服务器、***及存储介质
CN108989885B (zh) 视频文件转码***、分割方法、转码方法及装置
KR20180031547A (ko) 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치
WO2013059301A1 (en) Distributed real-time video processing
CN110662100A (zh) 一种信息处理方法、装置、***和计算机可读存储介质
US11202110B2 (en) Information processing apparatus, control method of the same, and storage medium
CN111093094A (zh) 视频转码方法、装置、***及电子设备及可读存储介质
US11356739B2 (en) Video playback method, terminal apparatus, and storage medium
CN115134632B (zh) 视频码率控制方法、设备、介质及内容分发网络cdn***
CN111447503A (zh) 一种多视点视频的视点切换方法、服务器和***
US10708667B1 (en) Combining fragments with different encodings
CN110784731B (zh) 一种数据流转码方法、装置、设备及介质
CN116980662A (zh) 流媒体播放方法、装置、电子设备、存储介质及程序产品
KR102293797B1 (ko) 영상 복잡도 정보를 이용한 화면 영역별 차등 대역폭 할당 방법 및 장치
Mushtaq et al. Quality of experience paradigm in multimedia services: application to OTT video streaming and VoIP services
Tanjung et al. Qoe optimization in dash-based multiview video streaming
CN108989905B (zh) 媒体流控制方法、装置、计算设备及存储介质
US11622135B2 (en) Bandwidth allocation for low latency content and buffered content
CN116980392A (zh) 媒体流处理方法、装置、计算机设备和存储介质
CN111669605A (zh) 多媒体数据与其关联互动数据的同步方法和装置
Thang et al. Video streaming over HTTP with dynamic resource prediction
KR20230144620A (ko) 포인트 클라우드 인코딩 및 디코딩 방법, 포인트 클라우드 인코딩 및 디코딩 장치, 컴퓨터로 판독 가능한 매체, 그리고 전자 디바이스
WO2024060720A1 (zh) 视频流传输控制方法及装置、***、电子设备、存储介质
US11350160B1 (en) Management of a client device buffer

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication