CN121000902A - 视频数据传输方法、装置、电子设备、存储介质和程序产品 - Google Patents

视频数据传输方法、装置、电子设备、存储介质和程序产品

Info

Publication number
CN121000902A
CN121000902A CN202511172043.2A CN202511172043A CN121000902A CN 121000902 A CN121000902 A CN 121000902A CN 202511172043 A CN202511172043 A CN 202511172043A CN 121000902 A CN121000902 A CN 121000902A
Authority
CN
China
Prior art keywords
value
video data
bandwidth
attribute
video
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
CN202511172043.2A
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.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Jingdong Technology Information Technology 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 Jingdong Technology Information Technology Co Ltd filed Critical Jingdong Technology Information Technology Co Ltd
Priority to CN202511172043.2A priority Critical patent/CN121000902A/zh
Publication of CN121000902A publication Critical patent/CN121000902A/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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • 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
    • 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/44227Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开提供了一种视频数据传输方法、装置、电子设备、存储介质和程序产品,可以应用于视频处理技术领域。该视频数据传输方法包括:根据待传输的视频流,生成视频数据包,其中,视频数据包包括与待传输的视频流对应的多个空间层级的候选视频流各自的视频数据,视频数据携带了用于表征空间层级的候选视频流的状态属性的扩展信息;将视频数据包发送至拉流端,以使拉流端根据视频数据包中的多个扩展信息,从多个空间层级的候选视频流中选择目标视频流。

Description

视频数据传输方法、装置、电子设备、存储介质和程序产品
技术领域
本公开涉及视频处理技术领域,更具体地,涉及一种视频数据传输方法、装置、电子设备、存储介质和程序产品。
背景技术
随着视频处理技术的发展,实时通信(Real-Time Communication,RTC)技术应运而生。实时通信在视频会议、在线教育、远程医疗等场景中得到了广泛应用。为了适应不同网络环境和设备性能,在进行实时通信的过程中还可以结合多流传输(即Simulcast)技术。多流传输技术能够同时生成并传输多个不同分辨率和码率的视频流,即不同空间层级的视频流,拉流端根据网络状况和设备能力选择合适的视频流进行播放。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:由于拉流端对于推流端多流推送的具体情况是无感知的,导致在推流端遭遇上行弱网场景时,无法较为有效地保障拉流端的播放效果。
发明内容
有鉴于此,本公开提供了一种视频数据传输方法、装置、电子设备、存储介质和程序产品。
根据本公开的一个方面,提供了一种视频数据传输方法,应用于推流端,上述方法包括:根据待传输的视频流,生成视频数据包,其中,上述视频数据包包括与上述待传输的视频流对应的多个空间层级的候选视频流各自的视频数据,上述视频数据携带了用于表征上述空间层级的候选视频流的状态属性的扩展信息;将上述视频数据包发送至拉流端,以使上述拉流端根据上述视频数据包中的多个上述扩展信息,从多个上述空间层级的候选视频流中选择目标视频流。
根据本公开的另一个方面,提供了一种视频数据传输方法,应用于拉流端,上述方法包括:响应于接收到来自于推流端的视频数据包,对上述视频数据包进行解析,得到多个空间层级的候选视频流各自的视频数据,其中,上述视频数据携带了用于表征上述空间层级的候选视频流的属性的扩展信息;根据基于多个上述扩展信息确定的选择策略,从多个上述空间层级的候选视频流中选择目标视频流。
根据本公开的另一个方面,提供了一种视频数据传输装置,应用于推流端,上述方法包括:生成模块,用于根据待传输的视频流,生成视频数据包,其中,上述视频数据包包括与上述待传输的视频流对应的多个空间层级的候选视频流各自的视频数据,上述视频数据携带了用于表征上述空间层级的候选视频流的状态属性的扩展信息;传输模块,用于将上述视频数据包发送至拉流端,以使上述拉流端根据上述视频数据包中的多个上述扩展信息,从多个上述空间层级的候选视频流中选择目标视频流。
根据本公开的另一个方面,提供了一种视频数据传输装置,应用于拉流端,上述方法包括:解析模块,用于响应于接收到来自于推流端的视频数据包,对上述视频数据包进行解析,得到多个空间层级的候选视频流各自的视频数据,其中,上述视频数据携带了用于表征上述空间层级的候选视频流的属性的扩展信息;选择模块,用于根据基于多个上述扩展信息确定的选择策略,从多个上述空间层级的候选视频流中选择目标视频流。
根据本公开的另一个方面,提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当上述一个或多个指令被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如本公开所述的方法。
根据本公开的另一个方面,提供了一种计算机可读存储介质,其上存储有可执行指令,上述可执行指令被处理器执行时使处理器实现如本公开所述的方法。
根据本公开的另一个方面,提供了一种计算机程序产品,上述计算机程序产品包括计算机可执行指令,上述计算机可执行指令在被执行时用于实现如本公开所述的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用视频数据传输方法的系统架构;
图2示意性示出了根据本公开实施例的视频数据传输方法的流程图;
图3A示意性示出了根据本公开实施例的视频数据包的示例示意图;
图3B示意性示出了根据本公开实施例的扩展信息的示例示意图;
图4示意性示出了根据本公开实施例的视频数据传输方法的流程图;
图5示意性示出了根据本公开实施例的目标视频流确定过程的示例示意图;
图6示意性示出了根据本公开实施例的视频数据传输装置的框图;
图7示意性示出了根据本公开实施例的视频数据传输装置的框图;以及
图8示意性示出了根据本公开实施例的适于实现视频数据传输方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本发明的技术方案中,所涉及的用户信息(包括但不限于用户个人信息、用户图像信息、用户设备信息,例如位置信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、存储、使用、加工、传输、提供、公开和应用等处理,均遵守 相关法律法规和标准,采取了必要保密措施,不违背公序良俗,并提供有相应的操作入口,供用户选择授权或者拒绝。
在利用个人信息进行自动化决策的场景下,本发明实施例提供的方法、设备和系统均为用户提供相应的操作入口,供用户选择同意或者拒绝自动化决策结果;若用户选择拒绝,则进入专家决策流程。此处的表述“自动化决策”是指通过计算机程序自动分析、评估个人的行为习惯、兴趣爱好或者经济、健康、信用状况等,并进行决策的活动。此处的表述“专家决策”是指专门从事某一领域的工作、具有专门的经验、知识和技能并达到一定的专业水平的人员进行决策的活动。
多流传输技术在实际应用中,通常会生成大、中、小三种分辨率的空间层视频流(例如,1080p、720p和360p)。服务器根据网络状况和接收端反馈,动态切换不同质量的视频流,以保证视频通话的流畅性和画质。
在多流传输技术的RTC应用场景中,通常会通过profile的方式给其所支持的大、中、小三种分辨率的视频流分别配置其最小码率、目标码率和最大码率,推流端会根据带宽估计模块获取到的结果进行带宽分配,如果总体带宽不足以支持某些数据流的推送,则会停止这些数据流的编码和发送,只发送分辨率更低、所需带宽更低的其他数据流。
例如,当使用多流传输技术的RTC推流端给大流、中流、小流配置的最小带宽分别为1200Kbps、700kbps、300kbps,拉流端A请求拉取大流、拉流端B请求拉取小流,而此时推流端的带宽估计模块根据当前网络情况仅估算出了1100Kbps的网络带宽,不足以支撑拉流端A和B原本所需1500Kbps带宽(即大流1200Kbps+小流300Kbps)的拉流预期,为了将总的输出带宽控制在预估带宽以内,此时推流端会放弃推送大流和小流的组合,转而推送中流和小流的组合。在上述情况下,对于请求拉取大流的A来说,实际拉到的数据流是中流,这种情况即为上行弱网导致的视频流降级。
上行弱网导致的视频流降级的选择策略通常由RTC媒体服务器控制。但是,相关技术中的的RTC媒体服务器对于推流端多流推送的具体情况是无感知的,具体来说:(1)服务端无法区分数据流的实时的推送情况,只能通过超时的方式去感知判断某路源流是否因为上行带宽不足而停止推送,尽管这种超时有可能仅是因为网络突发波动而非源流停推引起的;(2)没有形成标准和普遍使用的协议能使得服务器可以感知到源流的实际分配带宽、分配带宽变化趋势和源流的稳定性。由此,使得推流端在遭遇上行弱网的场景时会存在如下方面的问题:
一方面,流降级引发播放端卡顿、延迟。即由于RTC媒体服务端无法区分数据流的实时的推送情况,只能通过超时的方式去感知判断某路源流是否因为上行带宽不足而停止推送,即触发流降级依靠超时事件驱动,而超时事件的持续检测期间该流已经没有任何数据包发送,拉流端自然也没有足够的数据包去解码、渲染和播放,这就引发了拉流端的播放卡顿。
相关技术中多流传输技术的流降级机制不但依赖超时事件驱动,还需要向推流端请求关键帧来完成不同层级视频流的顺利切换,实际上完成一次流降级所需要的时长为超时感知周期+上行RTT(Round-Trip Time),这样的流降级所花费的成本往往很容易导致拉流端的播放卡顿。
另一方面,流降级/升级的结果可能不是最优选择。即由于RTC媒体服务器上流降级机制的触发由超时事件驱动,某些突发的网络抖动(例如,基站切换、4G信号转WIFI信号等场景)可能会导致服务端的误判,造成不必要的流降级,而实际上此时原视频流并没有停止推送。
对于不同分辨率的数据流配合不同的编码参数,其最终呈现的质量结果并不一定是和分辨率正相关的。例如,固定帧率情况下低码率的中流(720p)其实际观感质量可能并不如高码率下状态下的小流(360p)质量高;RTC媒体服务器虽然可以分别计算不同分辨率视频流的接受码率,但却不直接获悉不同视频流在推流端编码时的实际带宽分配情况,而服务器计算的接受码率在弱网场景下仍会受到网络波动的影响,导致这样计算出来的码率用于流降/升级的参考可靠性的降低,有可能导致某些上行弱网场景中理想情况下应降级到高码率小流的场景,仍保持使用低码率中流。
又一方面,特定弱网场景可能存在流频繁切换且卡顿明显。即某些限宽场景下,可能出现高层级视频流因带宽估计模块的震荡而引发的推流不稳定的情况,因总体估计带宽间歇性满足高层级视频流所需最小带宽边界,导致虽然高层级视频流偶尔能够推出,但存在间歇性中断。具体表现为:当预估带宽刚好满足某层级流的推送要求时,推流端可能会尝试推送该流。然而,由于网络状况不稳定,该流的推送质量往往不高,且很快又会因带宽下降而降级到低层级流。这种频繁的切换会导致接收端出现画面卡顿和质量波动。
例如,当使用Simulcast技术的RTC推流端给大流、中流、小流配置的最小带宽分别为1200Kbps、700kbps、300kbps,某网络链路上行限宽在1000Kbps~1300kbps之间波动的场景,就很可能引发大流推送间歇性断续,大流和中流来回切换的情况,且这样频繁的切换还可能会引起过于频繁的关键帧请求;极端情况下有可能出现推流端的某层级视频流在超时感知周期之内反复几次中断、重新推送的情况,这样即使该层级视频流基本不可用(数据包非常少),RTC媒体服务端仍然会认为该数据流可用,而不是降级到相对稳定的低层级流上,进而导致拉流端的播放卡顿。
综上,上述各方面的问题在RTC应用的上行弱网场景中尤为明显,较为严重地影响了实时通信过程中的用户体验,因而如何较为有效地解决在推流端遭遇上行弱网场景时,无法较为有效地保障拉流端的播放效果是亟待解决的问题。
为此,本公开提供了一种视频数据传输方法、装置、电子设备、存储介质和程序产品,可以应用于视频处理技术领域。该视频数据传输方法包括:根据待传输的视频流,生成视频数据包,其中,视频数据包包括与待传输的视频流对应的多个空间层级的候选视频流各自的视频数据,视频数据携带了用于表征空间层级的候选视频流的状态属性的扩展信息;将视频数据包发送至拉流端,以使拉流端根据视频数据包中的多个扩展信息,从多个空间层级的候选视频流中选择目标视频流。
图1示意性示出了根据本公开实施例的可以应用视频数据传输方法的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括推流端110、拉流端120和网络130。网络130用以不同设备之间提供通信链路的介质。
在一个实施例中,推流端110可以根据待传输的视频流,生成视频数据包,视频数据包包括与待传输的视频流对应的多个空间层级的候选视频流各自的视频数据,视频数据携带了用于表征空间层级的候选视频流的状态属性的扩展信息。在生成视频数据包之后,推流端110可以通过网络130将视频数据包发送至拉流端120。
拉流端120在接收到推流端的视频数据包,可以对视频数据包进行解析,得到多个空间层级的候选视频流各自的视频数据,视频数据携带了用于表征空间层级的候选视频流的属性的扩展信息。在此基础上,拉流端120根据基于多个扩展信息确定的选择策略,从多个空间层级的候选视频流中选择目标视频流。
应该理解,图1中的推流端、拉流端和网络的数目仅仅是示意性的。根据实现需要,可以具有任意数目的推流端、拉流端和网络。
应注意,以下方法中各个操作的序号仅作为该操作的表示以便描述,而不应被看作表示该各个操作的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。
图2示意性示出了根据本公开实施例的视频数据传输方法的流程图。
如图2所示,该视频数据传输方法200包括操作S210~S220。
在操作S210,根据待传输的视频流,生成视频数据包,其中,视频数据包包括与待传输的视频流对应的多个空间层级的候选视频流各自的视频数据,视频数据携带了用于表征空间层级的候选视频流的状态属性的扩展信息。
在操作S220,将视频数据包发送至拉流端,以使拉流端根据视频数据包中的多个扩展信息,从多个空间层级的候选视频流中选择目标视频流。
本公开提供的视频数据传输方法200应用于实时通信场景,实时通信是指通过网络将视频数据从推流端传输到拉流端的过程。推流端是指采集视频数据并将其编码、打包发送到网络上的设备或系统。拉流端是指从网络上接收视频数据包并进行解码、播放的设备或系统。例如,在视频会议中,推流端的参会者的摄像头和麦克风采集的视频数据可以通过网络实时传输给拉流端的其他参会者。
待传输的视频流是由视频数据组成的连续数据流,这些数据包含了音频和视频信息。推流端可以将待传输的视频流进行处理,得到视频数据包,使其能够以适合网络传输的格式进行发送。处理过程包括编码、封装等步骤,将待传输的视频流生成成多个候选视频流,并添加必要的头部信息和扩展信息。视频数据包是指将视频流进行分割和封装后形成的具有一定格式的数据单元,便于在网络上传输。
候选视频流是指在多流传输中,推流端生成的与待传输的视频流对应的多个不同空间层级的视频流。空间层级是指视频流的质量等级,每个空间层级可以对应不同的分辨率和不同的码率。需要说明的是,实时通信场景中时间层(Temporal layer)是指在视频编码中通过调整帧率来产生不同质量级别的视频层,以实现基于帧率的自适应比特率流媒体。实时通信场景中空间层(Spatial layer)是指在视频编码中通过调整分辨率来产生不同质量级别的视频层,以实现基于分辨率的多分辨率自适应流媒体。
对于空间层级的候选视频流各自的视频数据,扩展信息可以携带了用于表征空间层级的候选视频流的状态属性的信息。扩展信息是对视频数据进行补充说明的信息,可以用于帮助拉流端更好地进行解码、播放和质量控制。
在获得视频数据包之后,可以将视频数据包发送至拉流端。拉流端在接收到视频数据包,可以根据自身网络状况、设备性能等因素,从多个候选视频流中选择出最适合播放的目标视频流。
发送的具体方式可以根据实际业务需求进行配置,在此不作限定。例如,可以基于RTP协议进行视频数据包的传输;备选的,可以基于WebRTC进行视频数据包的传输;备选的,可以基于对象实时通信(Object Real-Time Communications,ORTC)进行视频数据包的传输;备选的,可以基于安全实时传输协议(Secure Real-time Transport Protocol,SRTP)进行视频数据包的传输;备选的,可以基于数据报传输层安全(Datagram Transport LayerSecurity,DTLS)进行视频数据包的传输。
根据本公开的实施例,通过在推流端生成携带扩展信息的视频数据包,并发送至拉流端以供其选择合适的目标视频流,实现了在不同网络环境和设备性能条件下,对视频传输质量的动态优化和自适应调整,能够有效提高视频通信的流畅性和稳定性,降低卡顿和丢包率,同时兼顾了视频质量的平衡,满足了实时通信场景下用户对视频体验的高要求。
下面参考图3A和图3B,对根据本发明实施例的视频数据传输方法200做进一步说明。
根据本公开的实施例,根据待传输的视频流,生成视频数据包可以包括以下操作:根据用于推流端的多个候选分辨率和多个候选码率,确定多个配置组合和每个配置组合各自的扩展信息,其中,每个配置组合包括一个候选分辨率和一个候选码率,配置组合与空间层级一一对应;根据配置组合和扩展信息,生成空间层级的候选视频流的视频数据。
候选分辨率是指推流端可以生成的视频流的不同分辨率选项。例如,常见的视频分辨率有1080p、720p、480p、360p等,每个分辨率对应不同的图像清晰度和码率需求。候选码率是指推流端可以设置的视频流的不同码率选项。码率决定了视频数据的传输速度和质量,例如,高码率通常对应更高的视频质量和更大的带宽需求。配置组合是指将一个候选分辨率和一个候选码率组合在一起,形成一个特定的空间层级的视频流配置。每个配置组合对应不同的视频质量和传输需求。
配置组合的生成方式可以根据实际业务需求进行配置,在此不作限定。例如,可以基于机器学习的动态生成配置组合,即利用机器学习算法分析历史传输数据和网络状况,动态生成多个配置组合,并为每个组合生成相应的扩展信息。备选的,可以基于用户自定义配置生成配置组合,即允许用户根据自身需求自定义候选分辨率和码率,推流端根据用户输入生成相应的配置组合和扩展信息。例如,用户可以选择1080p、720p、480p作为候选分辨率,选择2Mbps、1Mbps、500kbps作为候选码率,推流端根据这些选择生成配置组合。
扩展信息是指附加在视频数据包中的额外信息,用于传递多流传输中视频流空间层流的关键信息,帮助接收端进行选择和处理。扩展信息是实时传输协议数据包中的可选部分,允许在不改变实时传输协议基本结构的情况下,为特定应用或场景添加额外的信息。这种扩展机制提供了灵活性,使得协议可以适应不同的需求,如质量反馈、同步信息、或自定义元数据等。
扩展信息可以位于实时传输协议固定头部之后,其payload部分可以占1字节。扩展信息包含一个或多个属性字段,每个属性字段各自具有其特定的标识符和长度,使得拉流端能够正确解析这些额外信息,从而增强实时传输协议的功能,满足各种复杂的实时通信需求。
根据本公开的实施例,通过根据多个候选分辨率和候选码率确定多个配置组合,并为每个配置组合生成相应的扩展信息,使得推流端能够生成不同空间层级的候选视频流,能够有效适应不同的网络环境和设备性能,实现视频流的动态选择和优化传输。并且,通过携带扩展信息的视频数据包,拉流端可以实时了解每个空间层级的视频流状态,从而选择最合适的目标视频流进行播放,提高视频通信的流畅性和稳定性,降低卡顿和丢包率,提升用户体验。
图3A示意性示出了根据本公开实施例的视频数据包的示例示意图。
如图3A所示,在300A中,视频数据包300可以包括多个子视频数据包,子视频数据包与候选视频流一一对应。在此基础上,每个子视频数据包还携带了扩展信息,扩展信息用于表征空间层级的候选视频流的状态属性。
例如,子视频数据包310是与候选视频流311对应的,子视频数据包310中同时携带了与候选视频流311对应的的扩展信息312;子视频数据包320是与候选视频流321对应的,子视频数据包320中同时携带了与候选视频流321对应的的扩展信息322;…;以此类推,子视频数据包3N0是与候选视频流3N1对应的,子视频数据包3N0中同时携带了与候选视频流3N1对应的的扩展信息3N2。N为正整数。
图3B示意性示出了根据本公开实施例的扩展信息的示例示意图。
如图3B所示,在300B中,以扩展信息312为例,扩展信息312可以包括通过实时传输协议的扩展头承载的属性字段。属性字段包括以下中的至少之一:分辨率状态字段301、稳定状态字段302、码率状态字段303和带宽状态字段304。分辨率状态字段301用于表征候选视频流是否为推流端能够发送的最大分辨率的视频流,稳定状态字段302用于表征候选视频流的推送状态是否稳定,码率状态字段303用于表征视频数据包对候选视频流所分配的编码码率等级,带宽状态字段304用于表征候选视频流的带宽变化趋势。
分辨率状态字段301可以表示为Urgent(即U),占1 bit。例如,如果推流端能够发送1080p、720p和360p三种分辨率的视频流,那么1080p对应的分辨率状态字段将被标记为最大分辨率。稳定状态字段302可以表示为Stable(即S),占1 bit。例如,如果视频流的推送过程中没有出现丢包、卡顿或码率波动等现象,则稳定状态字段302将被标记为稳定。码率状态字段303可以表示为Bitrate Status(即BS),占2 bits。例如,码率状态字段303可以表示当前流的码率是否处于低、中、高或满的状态。带宽状态字段304可以表示为BandwidthTrendline(即BWTL),占2 bits。例如,带宽状态字段304可以表示带宽是上升、下降、波动还是稳定。此外,扩展信息312还可以包括备选字段305,备选字段305可以表示为保留位Reserve(即R)。
根据本公开的实施例,通过在RTP扩展头中承载包括分辨率状态字段、稳定状态字段、码率状态字段和带宽状态字段在内的属性字段,能够为拉流端提供全面的视频流状态信息,从而帮助接收端实时了解视频流的分辨率、稳定性、码率和带宽变化趋势,做出更智能的选择,优化视频流的播放质量,有助于提升视频通信的自适应性和用户体验,降低卡顿和缓冲现象的发生概率,确保视频流在不同网络条件下的流畅播放。
根据本公开的实施例,与分辨率状态字段301对应的分辨率状态值是通过以下方式确定的:在候选视频流不是推流端能够发送的最大分辨率的视频流的情况下,将分辨率状态值置为第一预设值;以及在候选视频流是推流端能够发送的最大分辨率的视频流的情况下,将分辨率状态值置为第二预设值。
分辨率状态值的有效值可以包括第一预设值和第二预设值。若分辨率状态值为第一预设值,则表示候选视频流不是推流端能够发送的最大分辨率的视频流;若分辨率状态值为第二预设值,则表示候选视频流是推流端能够发送的最大分辨率的视频流。
在一个示例中,第一预设值可以为0,第二预设值可以为1。例如,推流端当前推送大流(1080p)、中流(720p)、小流(360p),由于大流1080p是当前推流端所推送的最大分辨率的数据流,所以将大流的扩展信息的分辨率状态字段301的位置1,中流720p和小流360p扩展信息的分辨率状态字段301的位置置0。
根据本公开的实施例,通过明确标识视频流是否为推流端的最大分辨率流,使得拉流端能够快速感知推流端的能力变化并优先选择高质量的视频流,有助于及时做出流升级的决策,优化了视频流的选择过程,提升了用户体验。
根据本公开的实施例,与稳定状态字段302对应的稳定状态值是通过以下方式确定的:在候选视频流未满足预设稳定性条件的情况下,将稳定状态值置为第一预设值;以及在候选视频流满足预设稳定性条件的情况下,将稳定状态值置为第二预设值,其中,预设稳定性条件是基于视频数据包的生成时刻和最近一次检测到带宽充足事件的时刻之间的时间差与稳定参考时长确定的。
稳定状态值的有效值可以包括第一预设值和第二预设值。若稳定状态值为第一预设值,则表示候选视频流未满足预设稳定性条件;若稳定状态值为第二预设值,则表示候选视频流满足预设稳定性条件。
在一个示例中,第一预设值可以为0,第二预设值可以为1。例如,推流端当前推送候选视频流1和候选视频流2,若候选视频流1未满足预设稳定性条件,可以将候选视频流1的扩展信息的稳定状态字段302的位置0;若候选视频流2满足预设稳定性条件,可以将候选视频流2的扩展信息的稳定状态字段302的位置1。
预设稳定性条件是用于判断视频流是否稳定的条件,可以基于视频数据包的生成时刻(T2)与最近一次检测到带宽充足并开始推送事件的时刻(T1)之间的时间差与稳定参考时长(stream_stable_referncen_duration_ms)的比较。稳定参考时长是预设的时间阈值,用于判断视频流的稳定性。
例如,若时间差超过稳定参考时长,则可以认为视频流稳定。此外,还可以根据与码率状态字段303对应的码率状态值和与带宽状态字段304对应的带宽状态值中的至少之一,来判断判断视频流的稳定性。例如,若码率状态值为0时、带宽状态值不为0或1时,可以认为视频流稳定。反之则认为视频流暂时不稳定。
需要说明的是,稳定参考时长可以根据业务场景进行灵活配置,在此不作限定。例如,稳定参考时长的配置范围可以位于1000 ms~5000 ms的范围内。在一个示例中,如果对流畅性和实时性要求高,可以将稳定参考时长配置的相对大一些;如果对清晰度要求高,可以将稳定参考时长配置的相对小一些。
根据本公开的实施例,通过定义稳定状态字段及其取值方式,使得拉流端可以优先选择稳定性高的视频流,从而提升播放的流畅性和用户体验,能够有效减少因选择不稳定视频流而导致的卡顿和播放中断,减少用户体验的波动,确保视频通信的可靠性和稳定性。
根据本公开的实施例,与码率状态字段303对应的码率状态值是通过以下方式确定的:在分配的编码码率位于最小带宽与临界带宽之间的情况下,将码率状态值配置为第一预设值;在分配的编码码率位于临界带宽与目标带宽之间的情况下,将码率状态值配置为第二预设值;在分配的编码码率位于目标带宽与最大带宽之间的情况下,将码率状态值配置为第三预设值;以及在分配的编码码率是最大带宽的情况下,将码率状态值配置为第四预设值。
码率状态值的有效值可以包括第一预设值~第四预设值。在一个示例中,第一预设值可以为0,第二预设值可以为1,第三预设值可以为2,第四预设值可以为3。
最小带宽是指视频流能够维持基本可用质量所需的最低码率。临界带宽是指视频流质量开始显著下降的码率阈值,介于最小带宽和目标带宽之间。目标带宽是指视频流在正常网络条件下期望达到的码率。最大带宽是指推流端能够提供的最高码率。
若码率状态值为第一预设值,则表示分配的编码码率位于最小带宽与临界带宽之间,处于危低码率状态;若码率状态值为第二预设值,则表示分配的编码码率位于临界带宽与目标带宽之间,处于降低码率状态;若码率状态值为第三预设值,则表示分配的编码码率位于目标带宽与最大带宽之间,处于满码率状态;若码率状态值为第四预设值,则表示分配的编码码率是最大带宽,处于超码率状态。
临界带宽是根据最小带宽和码率判断参数(critical_bitrate_factor)确定的。例如,临界带宽可以等于最小带宽*(1+critical_bitrate_factor)。码率判断参数可以视业务场景而定,在此不作限定。在一个示例中,码率判断参数可以位于0.05~0.2。
根据本公开的实施例,通过定义码率状态字段及其取值方式,将码率状态分为危低、降低、满码率和超码率四个等级,使得拉流端可以根据当前网络条件和设备性能,选择最合适的视频流,从而优化播放质量和用户体验,能够有效提升视频通信的自适应性和稳定性,确保在不同网络环境下视频流的流畅播放,同时最大化利用可用带宽,提供最佳视频质量。
根据本公开的实施例,与带宽状态字段304对应的带宽状态值是通过以下方式确定的:对获取到的历史带宽分配数据进行平滑处理,得到平滑后的带宽分配数据;对平滑后的带宽分配数据进行线性回归分析,得到表征了带宽变化趋势的离散信息,其中,离散信息包括斜率、截距和决定系数中的至少之一;以及根据表征了带宽变化趋势的离散信息,确定带宽状态值。
历史带宽分配数据是指推流端在一定时间范围内记录的视频流的带宽分配情况,可以包括时间戳和对应的带宽值。在一个示例中,定期采集历史带宽分配数据,并存储在环形缓冲区中。
平滑处理是指对原始的历史带宽分配数据进行处理,以减少噪声和波动的影响,使数据更加平滑。平滑处理的具体方式可以根据实际业务需求进行配置,在此不作限定。例如,平滑处理的具体方式可以包括以下中的至少之一:指数移动平均、简单移动平均法、加权移动平均法和高斯滤波等。
在一个示例中,可以使用指数移动平均对原始的历史带宽分配数据进行平滑处理,如下公式(1)所示。
(1);
其中,当前时刻的指数移动平均值,表征平滑因子,表征当前时刻的原始数据,表征上一时刻的指数移动平均值。
在获得平滑后的带宽分配数据之后,可以对平滑后的带宽分配数据进行线性回归分析,得到表征了带宽变化趋势的离散信息。线性回归分析用于建模自变量与因变量之间的线性关系,输出包括斜率、截距和决定系数等参数。线性回归分析的具体方式可以根据实际业务需求进行配置,在此不作限定。例如,线性回归分析的具体方式可以包括以下中的至少之一:最小二乘法、梯度下降法、岭回归和主成分回归等。
离散信息是指从连续数据中提取的关键特征或参数,用于表征带宽变化的趋势。在一个示例中,离散信息包括斜率、截距和决定系数中的至少之一。斜率是指在带宽变化趋势中,斜率表示带宽随时间变化的速率,例如,正斜率表示带宽增加,负斜率表示带宽减少。截距是指线性回归模型中,当时间为零时的带宽预测值。决定系数是指模型对数据的拟合程度,例如,决定系数越接近1,表示模型拟合效果越好。
在一个示例中,可以使用最小二乘法对平滑后的带宽分配数据进行线性回归分析,如下公式(2)~(4)所示。在此过程中,可以采样增量式计算的方式更新各参数。
(2);
(3);
(4);
其中,表征斜率,表征样本的数量,表征x和y的交叉乘积和,表征x值的总和,表征y值的总和,表征x的平方和,表征决定系数,在表征y的平方和。
在获得离散信息之后,可以根据离散信息,确定带宽状态值。例如,可以将离散信息作为特征输入聚类算法(如Kmeans),将不同的带宽变化趋势划分为不同的类别,每个类别对应一个带宽状态值。备选的,可以利用决策树算法对离散信息进行分类,根据不同的条件分支确定带宽状态值。备选的,可以构建神经网络模型,将离散信息作为输入,带宽状态值作为输出,通过训练模型实现带宽状态的自动判定。
根据本公开的实施例,通过平滑处理和线性回归分析,从历史带宽分配数据中提取关键的离散信息,并据此确定带宽状态值,能够综合考虑长期趋势和短期波动,精确地表征视频流的带宽变化趋势,使得拉流端可以提前了解网络带宽的变化情况,从而及时调整视频流的选择策略,优化播放质量,减少卡顿和缓冲现象,提升了带宽状态评估的准确性和可靠性,确保了视频通信在不同网络条件下的稳定性和流畅性。
根据本公开的实施例,根据表征了带宽变化趋势的离散值,确定带宽状态值包括:在离散信息表征带宽变化趋势为持续下降的情况下,将带宽状态值配置为第一预设值;在离散信息表征带宽变化趋势为波动下降的情况下,将带宽状态值配置为第二预设值;在离散信息表征带宽变化趋势为总体上升的情况下,将带宽状态值配置为第三预设值;以及在离散信息表征带宽变化趋势为相对稳定的情况下,将带宽状态值配置为第四预设值。
带宽状态值的有效值可以包括第一预设值~第四预设值。在一个示例中,第一预设值可以为0,第二预设值可以为1,第三预设值可以为2,第四预设值可以为3。
若带宽状态值为第一预设值,则表示带宽变化趋势为持续下降,即斜率为负且决定系数较高的情况;若带宽状态值为第二预设值,则表示带宽变化趋势为波动下降,即斜率为负但决定系数较低的情况;若带宽状态值为第三预设值,则表示带宽变化趋势为总体上升,即斜率为正的情况;若带宽状态值为第四预设值,则表示带宽变化趋势为相对稳定,即斜率接近0且决定系数较高的情况。
根据本公开的实施例,通过定义带宽状态值及其与带宽变化趋势的对应关系,为拉流端提供了明确的带宽状态指示,使得拉流端能够根据不同的带宽状态值,及时调整视频流的选择策略,优化播放质量,减少卡顿和缓冲现象,从而确保视频通信在不同网络条件下的稳定性和流畅性。
图4示意性示出了根据本公开实施例的视频数据传输方法的流程图。
如图4所示,该视频数据传输方法400包括操作S410~S420。
在操作S410,响应于接收到来自于推流端的视频数据包,对视频数据包进行解析,得到多个空间层级的候选视频流各自的视频数据,其中,视频数据携带了用于表征空间层级的候选视频流的属性的扩展信息。
在操作S420,根据基于多个扩展信息确定的选择策略,从多个空间层级的候选视频流中选择目标视频流。
本公开提供的视频数据传输方法400应用于实时通信场景,实时通信是指通过网络将视频数据从推流端传输到拉流端的过程。推流端是指采集视频数据并将其编码、打包发送到网络上的设备或系统。拉流端是指从网络上接收视频数据包并进行解码、播放的设备或系统。例如,在视频会议中,推流端的参会者的摄像头和麦克风采集的视频数据可以通过网络实时传输给拉流端的其他参会者。
拉流端在接收到来自于推流端的视频数据包之后,可以对视频数据包进行解析,得到多个空间层级的候选视频流各自的视频数据。解析是指对接收到的视频数据包进行处理,提取出其中的有效信息的过程。
在获得各个空间层级的候选视频流各自的携带了用于表征空间层级的候选视频流的属性的扩展信息之后,可以基于多个扩展信息确定选择策略。选择策略用于从多个候选视频流中选择最适合于拉流端的目标视频流。目标视频流是指拉流端最终选定的、最适合当前网络条件和设备性能的视频流。
选择策略的确定方式可以根据实际业务需求进行配置,在此不作限定。在一个示例中,可以基于网络状况的动态确定选择策略,具体地,拉流端可以根据当前网络状况(如带宽、延迟、丢包率)动态调整选择策略,例如,如果网络带宽充足且稳定,优先选择高分辨率、高码率的视频流;如果网络带宽不足或不稳定,优先选择低分辨率、低码率的视频流。在另一个示例中,可以基于用户偏好的自定义确定选择策略,具体地,拉流端可以根据用户的自定义偏好设置选择策略,例如,用户可以设置优先选择高分辨率的视频流,即使网络带宽可能不足;或者设置优先选择低延迟的视频流,即使分辨率可能较低。
根据本公开的实施例,通过对接收到的视频数据包进行解析,获取多个空间层级的候选视频流及其扩展信息,然后根据选择策略选择最合适的目标视频流,能够有效提升视频通信的自适应性和用户体验,确保在不同网络条件和设备性能下视频流的流畅播放,有助于适应不同的应用场景和用户需求。
下面参考图5,对根据本发明实施例的视频数据传输方法400做进一步说明。
根据本公开的实施例,选择策略可以指示了选择方向;视频数据传输方法400还可以包括以下操作:获取历史视频数据包中与目标属性字段对应的历史属性值;以及根据多个历史属性值、视频数据包中的与目标属性字段对应的当前属性值和拉流端的实际属性值,确定选择方向。
历史视频数据包是指之前接收到的视频数据包,这些数据包包含了过去的视频数据和属性信息。目标属性字段是指在选择策略中重点关注的、用于评估视频流质量或适用性的特定属性字段。历史属性值是指从历史视频数据包中提取的与目标属性字段对应的值,用于分析过去的视频流特性。当前属性值是指从当前接收到的视频数据包中提取的与目标属性字段对应的值,用于反映当前视频流的特性。实际属性值是指拉流端本身的属性值。
在一个示例中,拉流端可以使用缓存机制存储最近接收到的视频数据包中的属性值,以便快速访问和分析。在另一个示例中,拉流端也可以将历史视频数据包中的属性值存储在数据库中,通过查询数据库获取历史属性值。
在获得与目标属性字段对应的历史属性值、当前属性值和实际属性值之后,可以根据与目标属性字段对应的历史属性值、当前属性值和实际属性值,确定选择方向。选择方向是指选择策略所指示的视频流选择的趋势或倾向,例如向更高分辨率或更低分辨率的方向选择。
在一个示例中,可以使用机器学习模型(如决策树、神经网络)对历史属性值、当前属性值和拉流端的实际属性进行训练,模型输出选择方向。在另一个示例中,可以使用规则引擎定义一系列规则,根据规则匹配结果确定选择方向,例如,如果当前网络带宽低于某个阈值,规则引擎触发选择低分辨率视频流的规则。
根据本公开的实施例,通过定义了综合考虑历史属性值、当前属性值和拉流端实际属性的选择策略,能够智能地确定视频流的选择方向,从而适应不同的网络条件和设备性能,提升视频通信的自适应性和用户体验。
根据本公开的实施例,在目标属性字段是分辨率状态字段的情况下,历史属性值是历史分辨率状态值、当前属性值是当前分辨率状态值、实际属性值包括需求空间层级和获得空间层级。在目标属性字段是稳定状态字段的情况下,当前属性值是当前稳定状态值;在目标属性字段是码率状态字段的情况下,实际属性值是获得码率状态值;在目标属性字段是带宽状态字段的情况下,实际属性值是获得带宽状态值。
历史分辨率状态值为1的视频流所对应的空间层级可以表示为last_urgent_sp_layer,当前分辨率状态值为1的视频流所对应的空间层级可以表示为new_urgent_sp_layer。需求空间层级是指当前拉流端请求的视频流空间层级,需求空间层级可以表示为prefered_sp_layer。获得空间层级是指当前拉流端实际拉到的视频流空间层级,获得空间层级可以表示为current_sp_layer。
根据本公开的实施例,通过明确不同目标属性字段下的历史属性值、当前属性值和实际属性值,为视频流的选择提供了详细的依据,能够确保拉流端在选择视频流时,充分考虑历史数据、当前状况和实际需求做出最优的选择,以适应不同的网络条件和设备性能,提升视频通信的稳定性和用户体验。
根据本公开的实施例,选择方向包括升级方向或降级方向;根据多个历史属性值、视频数据包中的与目标属性字段对应的当前属性值和拉流端的实际属性值,确定选择方向可以包括以下操作:在历史属性值、目标属性值和实际属性值满足预设升级条件的情况下,确定选择方向为升级方向;以及在历史属性值、目标属性值和实际属性值满足预设降级条件的情况下,确定选择方向为降级方向。
预设升级条件是指预先定义的、用于判断是否应该选择更高质量视频流的条件。在一个示例中,预设升级条件包括以下中的至少之一:当前分辨率状态值对应的空间层级大于或等于历史分辨率状态值对应的空间层级、当前分辨率状态对应的空间层级等于需求空间层级、获得空间层级小于需求空间层级、当前稳定状态字段值为第一目标值。第一目标值例如可以为1。
例如,若当前分辨率状态值对应的空间层级(new_urgent_sp_layer)大于历史分辨率状态值(last_urgent_sp_layer)对应的空间层级,且需求空间层级(prefered_sp_layer)等于当前分辨率状态值对应的空间层级(new_urgent_sp_layer),说明后续可能发生流升级事件,但仍需等待当前分辨率状态值对应的空间层级(new_urgent_sp_layer)对应流稳定后再触发流升级事件。
备选的,若当前分辨率状态值对应的空间层级(new_urgent_sp_layer)等于历史分辨率状态值对应的空间层级(last_urgent_sp_layer),且需求空间层级(prefered_sp_layer)等于当前分辨率状态值对应的空间层级(new_urgent_sp_layer),且获得空间层级(current_sp_layer)小于需求空间层级(prefered_sp_layer),说明此时该流趋于稳定,可以触发流升级事件。
预设降级条件是指预先定义的、用于判断是否应该选择较低质量视频流的条件。在一个示例中,预设降级条件包括以下中的至少之一:当前分辨率状态值小于历史分辨率状态值、历史分辨率状态值等于需求分辨率状态值、码率状态字段值为第二目标值、当前稳定状态字段值为第三目标值。第二目标值例如可以为3,第三目标值例如可以为2或3。
例如,若当前分辨率状态值对应的空间层级(new_urgent_sp_layer)小于历史分辨率状态值对应的空间层级(last_urgent_sp_layer),且需求空间层级(prefered_sp_layer)等于历史分辨率状态值对应的空间层级(last_urgent_sp_layer),说明此时与历史分辨率状态值对应的空间层级(last_urgent_sp_layer)的视频流已停推,可以直接触发流降级事件,选择合适且稳定的流层级进行降级。
备选的,若获得空间层级(current_sp_layer)的码率状态字段值为第二目标值,且当前稳定状态字段值为第三目标值,则可以视业务场景考虑提前触发流降级事件。
根据本公开的实施例,通过定义预设升级条件和预设降级条件,提供了灵活的视频流选择机制,可以综合考虑空间层级、流稳定性、码率状态和带宽趋势等多个因素,智能且全面地选择最合适的视频流质量,不仅提升了用户体验,还确保了视频通信的流畅性和稳定性,适应了多样化的实际应用场景。
根据本公开的实施例,通过定义升级方向和降级方向,并根据历史属性值、当前属性值和实际属性值综合判断选择方向,能够智能地适应不同的网络条件和设备性能,有助于确保在满足条件时选择更高质量的视频流以提升用户体验,同时在必要时选择较低质量的视频流以保证流畅播放,灵活应对各种场景,提高视频通信的稳定性和可靠性。
根据本公开的实施例,选择策略还指示了选择评估值,扩展信息包括至少一个属性字段各自的属性值;上述视频数据的传输方法400还可以包括以下操作:根据预先设定的每个属性字段各自的权重范围和需求优先级,确定用于每个属性字段的权重;以及对于每个候选视频流,根据至少一个属性字段各自的属性值、以及用于每个属性字段的权重,确定每个候选音频流各自的选择评估值。
对于每个属性字段,可以根据预先设定的该属性字段的权重范围和需求优先级,确定用于该属性字段的权重。权重范围是指为每个属性字段预先设定的权重的取值范围,权重用于表示该属性字段在选择评估中的相对重要性。需求优先级是指用户或系统根据实际需求设定的对不同属性字段的优先级,用于指导权重的确定。
根据本公开的实施例,在属性字段为分辨率状态字段的情况下,分辨率状态字段的需求优先级是根据拉流端对空间层级的偏好程度确定的;在属性字段为码率状态字段的情况下,需求优先级是根据码率状态值对拉流端的播放效果的影响程度确定的;在属性字段为带宽状态字段的情况下,需求优先级是根据带宽状态值对拉流端的播放效果的影响程度确定的。
对于分辨率状态字段,与分辨率状态字段对应的权重范围可以为0.2~0.4,在此不作限定。根据拉流端对空间层级的偏好程度确定需求优先级,并基于需求优先级在该权重范围内选择用于分辨率状态字段的权重。偏好程度是指拉流端对空间层级的偏好,可以基于用户设置或设备特性确定。例如,若对于空间层级的偏好程度更高,则需求优先级更高,对应的权重更高。
对于码率状态字段,与码率状态字段对应的权重范围可以为0.3~0.5,在此不作限定。根据码率状态值对拉流端的播放效果的影响程度确定需求优先级,并基于需求优先级在该权重范围内选择用于码率状态字段的权重。影响程度是指码率状态值对拉流端播放效果的影响大小,可以基于历史数据或实验结果评估。
对于带宽状态字段,与带宽状态字段对应的权重范围可以为0.2~0.4,在此不作限定。根据带宽状态值对拉流端的播放效果的影响程度确定需求优先级,并基于需求优先级在该权重范围内选择用于带宽状态字段的权重。影响程度是指带宽状态值对拉流端播放效果的影响大小,可以基于历史数据或实验结果评估。
根据本公开的实施例,通过动态调整不同属性字段的需求优先级和对应的权重,使视频流选择策略能够精准匹配拉流端的实际需求和网络条件,能够有效提升视频通信的自适应性和用户体验,确保在不同场景下选择最合适的视频流,优化播放效果。
在一个示例中,也可以使用机器学习算法动态调整权重,根据历史选择结果和用户反馈自动优化权重分配。在另一个示例中,也可以根据不同的使用场景预设不同的权重分配。
在获得每个属性字段的权重之后,可以根据各属性字段的属性值和权重,确定候选音频流的选择评估值。选择评估值是指用于评估候选视频流适合程度的数值,例如,选择评估值越高,表示该候选视频流越符合选择条件。
选择评估值可以表示为SourceStreamScore,具体的计算方式可以根据业务场景进行调整。在一个示例中,可以通过综合考虑空间层级、流稳定性、码率状态和带宽趋势等多个因素来确定选择评估值,如下公式(5)所示。
(5)
其中,表征选择评估值,表征空间层级索引,较高的空间层级对应较大的索引值,表征用于空间层级的权重,表征分辨率状态字段,表征码率状态字段,表征用于码率状态字段的权重,表征带宽状态字段,表征用于带宽趋势的权重,表征上一次计算的平滑选择评估值。
根据本公开的实施例,通过为每个属性字段分配权重,并根据属性值和权重计算选择评估值的灵活且可配置的视频流选择机制,能够根据实际需求和场景动态调整选择策略,确保选择出最合适的视频流,从而通用地适应不同的应用场景和用户需求,提升视频通信的稳定性和用户体验。
图5示意性示出了根据本公开实施例的目标视频流确定过程的示例示意图。
如图5所示,在500中,拉流端在接收到视频数据包510之后,可以对视频数据包510进行解析,得到多个空间层级的候选视频流各自的视频数据。例如,通过对视频数据包510进行解析,得到子视频数据包501、子视频数据包502、…、子视频数据包50N。N为正整数。
每个子视频数据包与候选视频流一一对应。在此基础上,每个子视频数据包还携带了扩展信息,扩展信息用于表征空间层级的候选视频流的状态属性。例如,子视频数据包501是与候选视频流5011对应的,子视频数据包501中同时携带了与候选视频流5011对应的的扩展信息5012;子视频数据包502是与候选视频流502对应的,子视频数据包502中同时携带了与候选视频流5021对应的的扩展信息5022;…;以此类推,子视频数据包50N是与候选视频流50N1对应的,子视频数据包50N中同时携带了与候选视频流50N1对应的的扩展信息50N2。N为正整数。
在解析得到多个扩展信息之后,可以根据多个扩展信息确定选择方向520和选择评估值530,并基于选择方向520和选择评估值530确定选择策略540。在此基础上,可以根据选择策略540,从多个空间层级的候选视频流中选择目标视频流550。
基于上述视频数据传输方法200,本发明还提供了一种视频数据传输装置。以下将结合图6对该装置进行详细描述。
图6示意性示出了根据本公开实施例的视频数据传输装置的框图。
如图6所示,视频数据传输装置600可以包括生成模块610和传输模块620。
生成模块610,用于根据待传输的视频流,生成视频数据包,其中,视频数据包包括与待传输的视频流对应的多个空间层级的候选视频流各自的视频数据,视频数据携带了用于表征空间层级的候选视频流的状态属性的扩展信息。
传输模块620,用于将视频数据包发送至拉流端,以使拉流端根据视频数据包中的多个扩展信息,从多个空间层级的候选视频流中选择目标视频流。
根据本公开的实施例,扩展信息包括通过实时传输协议的扩展头承载的属性字段,属性字段包括以下中的至少之一:分辨率状态字段、稳定状态字段、码率状态字段和带宽状态字段;分辨率状态字段用于表征候选视频流是否为推流端能够发送的最大分辨率的视频流,稳定状态字段用于表征候选视频流的推送状态是否稳定,码率状态字段用于表征视频数据包对候选视频流所分配的编码码率等级,带宽状态字段用于表征候选视频流的带宽变化趋势。
根据本公开的实施例,与分辨率状态字段对应的分辨率状态值是通过以下方式确定的:在候选视频流不是推流端能够发送的最大分辨率的视频流的情况下,将分辨率状态值置为第一预设值;以及在候选视频流是推流端能够发送的最大分辨率的视频流的情况下,将分辨率状态值置为第二预设值。
根据本公开的实施例,与稳定状态字段对应的稳定状态值是通过以下方式确定的:在候选视频流未满足预设稳定性条件的情况下,将稳定状态值置为第一预设值;以及在候选视频流满足预设稳定性条件的情况下,将稳定状态值置为第二预设值,其中,预设稳定性条件是基于视频数据包的生成时刻和最近一次检测到带宽充足事件的时刻之间的时间差与稳定参考时长确定的。
根据本公开的实施例,与码率状态字段对应的码率状态值是通过以下方式确定的:在分配的编码码率位于最小带宽与临界带宽之间的情况下,将码率状态值配置为第一预设值;在分配的编码码率位于临界带宽与目标带宽之间的情况下,将码率状态值配置为第二预设值;在分配的编码码率位于目标带宽与最大带宽之间的情况下,将码率状态值配置为第三预设值;以及在分配的编码码率是最大带宽的情况下,将码率状态值配置为第四预设值。
根据本公开的实施例,与带宽状态字段对应的带宽状态值是通过以下方式确定的:对获取到的历史带宽分配数据进行平滑处理,得到平滑后的带宽分配数据;对平滑后的带宽分配数据进行线性回归分析,得到表征了带宽变化趋势的离散信息,其中,离散信息包括斜率、截距和决定系数中的至少之一;以及根据表征了带宽变化趋势的离散信息,确定带宽状态值。
根据本公开的实施例,根据表征了带宽变化趋势的离散值,确定带宽状态值包括:在离散信息表征带宽变化趋势为持续下降的情况下,将带宽状态值配置为第一预设值;在离散信息表征带宽变化趋势为波动下降的情况下,将带宽状态值配置为第二预设值;在离散信息表征带宽变化趋势为总体上升的情况下,将带宽状态值配置为第三预设值;以及在离散信息表征带宽变化趋势为相对稳定的情况下,将带宽状态值配置为第四预设值。
根据本公开的实施例,生成模块610可以包括第一确定单元和生成单元。
第一确定单元,用于根据用于推流端的多个候选分辨率和多个候选码率,确定多个配置组合和每个配置组合各自的扩展信息,其中,每个配置组合包括一个候选分辨率和一个候选码率,配置组合与空间层级一一对应。
生成单元,用于根据配置组合和扩展信息,生成空间层级的候选视频流的视频数据。
基于上述视频数据传输方法400,本发明还提供了一种视频数据传输装置。以下将结合图7对该装置进行详细描述。
图7示意性示出了根据本公开实施例的视频数据传输装置的框图。
如图7所示,视频数据传输装置700可以包括解析模块710和选择模块720。
解析模块710,用于响应于接收到来自于推流端的视频数据包,对视频数据包进行解析,得到多个空间层级的候选视频流各自的视频数据,其中,视频数据携带了用于表征空间层级的候选视频流的属性的扩展信息。
选择模块720,用于根据基于多个扩展信息确定的选择策略,从多个空间层级的候选视频流中选择目标视频流。
根据本公开的实施例,选择策略是根据选择评估值确定的;视频数据传输装置700还可以包括获取模块和第一确定模块。
获取模块,用于获取历史视频数据包中与目标属性字段对应的历史属性值。
第一确定模块,用于根据多个历史属性值、视频数据包中的与目标属性字段对应的当前属性值和拉流端的实际属性值,确定选择方向。
根据本公开的实施例,选择方向包括升级方向或降级方向;确定模块可以包括第二确定单元和第三确定单元。
第二确定单元,用于在历史属性值、目标属性值和实际属性值满足预设升级条件的情况下,确定选择方向为升级方向。
第三确定单元,用于在历史属性值、目标属性值和实际属性值满足预设降级条件的情况下,确定选择方向为降级方向。
根据本公开的实施例,在目标属性字段是分辨率状态字段的情况下,历史属性值是历史分辨率状态值、当前属性值是当前分辨率状态值、实际属性值包括需求分辨率状态值和获得分辨率状态值;在目标属性字段是稳定状态字段的情况下,当前属性值是当前稳定状态值;在目标属性字段是码率状态字段的情况下,实际属性值是获得码率状态值;在目标属性字段是带宽状态字段的情况下,实际属性值是获得带宽状态值。
根据本公开的实施例,预设升级条件包括以下中的至少之一:当前分辨率状态值大于或等于历史分辨率状态值、当前分辨率状态等于需求分辨率状态值、获得分辨率状态值小于需求分辨率状态值、当前稳定状态字段值为第一目标值;预设降级条件包括以下中的至少之一:当前分辨率状态值小于历史分辨率状态值、历史分辨率状态值等于需求分辨率状态值、码率状态字段值为第二目标值、当前稳定状态字段值为第三目标值。
根据本公开的实施例,选择策略还指示了选择评估值,扩展信息包括至少一个属性字段各自的属性值;视频数据传输装置700可以包括第二确定模块和第三确定模块。
第二确定模块,用于根据预先设定的每个属性字段各自的权重范围和需求优先级,确定用于每个属性字段的权重。
第三确定模块,用于对于每个候选视频流,根据至少一个属性字段各自的属性值、以及用于每个属性字段的权重,确定每个候选音频流各自的选择评估值。
根据本公开的实施例,在属性字段为分辨率状态字段的情况下,分辨率状态字段的需求优先级是根据拉流端对空间层级的偏好程度确定的;在属性字段为码率状态字段的情况下,需求优先级是根据码率状态值对拉流端的播放效果的影响程度确定的;在属性字段为带宽状态字段的情况下,需求优先级是根据带宽状态值对拉流端的播放效果的影响程度确定的。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中视频数据传输装置部分与本公开的实施例中视频数据传输方法部分是相对应的,视频数据传输装置部分的描述具体参考视频数据传输方法部分,在此不再赘述。
图8示意性示出了根据本公开实施例的适于实现视频数据传输方法的电子设备的框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据本公开实施例的计算机电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分809加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器 801、ROM802以及RAM 803通过总线804彼此相连。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至输入/输出(I/O)接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至输入/输出(I/O)接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的视频数据传输方法。
在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的视频数据传输方法。
在该计算机程序被处理器801执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (20)

1.一种视频数据传输方法,应用于推流端,所述方法包括:
根据待传输的视频流,生成视频数据包,其中,所述视频数据包包括与所述待传输的视频流对应的多个空间层级的候选视频流各自的视频数据,所述视频数据携带了用于表征所述空间层级的候选视频流的状态属性的扩展信息;以及
将所述视频数据包发送至拉流端,以使所述拉流端根据所述视频数据包中的多个所述扩展信息,从多个所述空间层级的候选视频流中选择目标视频流。
2.根据权利要求1所述的方法,其中,所述扩展信息包括通过实时传输协议的扩展头承载的属性字段,所述属性字段包括以下中的至少之一:分辨率状态字段、稳定状态字段、码率状态字段和带宽状态字段;
所述分辨率状态字段用于表征所述候选视频流是否为所述推流端能够发送的最大分辨率的视频流,所述稳定状态字段用于表征所述候选视频流的推送状态是否稳定,所述码率状态字段用于表征所述视频数据包对所述候选视频流所分配的编码码率等级,所述带宽状态字段用于表征所述候选视频流的带宽变化趋势。
3.根据权利要求2所述的方法,其中,与所述分辨率状态字段对应的分辨率状态值是通过以下方式确定的:
在所述候选视频流不是所述推流端能够发送的最大分辨率的视频流的情况下,将所述分辨率状态值置为第一预设值;以及
在所述候选视频流是所述推流端能够发送的最大分辨率的视频流的情况下,将所述分辨率状态值置为第二预设值。
4.根据权利要求2所述的方法,其中,与所述稳定状态字段对应的稳定状态值是通过以下方式确定的:
在所述候选视频流未满足预设稳定性条件的情况下,将所述稳定状态值置为第一预设值;以及
在所述候选视频流满足所述预设稳定性条件的情况下,将所述稳定状态值置为第二预设值,其中,所述预设稳定性条件是基于所述视频数据包的生成时刻和最近一次检测到带宽充足事件的时刻之间的时间差与稳定参考时长确定的。
5.根据权利要求2所述的方法,其中,与所述码率状态字段对应的码率状态值是通过以下方式确定的:
在所述分配的编码码率位于最小带宽与临界带宽之间的情况下,将所述码率状态值配置为第一预设值;
在所述分配的编码码率位于所述临界带宽与目标带宽之间的情况下,将所述码率状态值配置为第二预设值;
在所述分配的编码码率位于所述目标带宽与最大带宽之间的情况下,将所述码率状态值配置为第三预设值;以及
在所述分配的编码码率是所述最大带宽的情况下,将所述码率状态值配置为第四预设值。
6.根据权利要求2所述的方法,其中,与所述带宽状态字段对应的带宽状态值是通过以下方式确定的:
对获取到的历史带宽分配数据进行平滑处理,得到平滑后的带宽分配数据;
对所述平滑后的带宽分配数据进行线性回归分析,得到表征了带宽变化趋势的离散信息,其中,所述离散信息包括斜率、截距和决定系数中的至少之一;以及
根据所述表征了带宽变化趋势的离散信息,确定所述带宽状态值。
7.根据权利要求6所述的方法,其中,所述根据所述表征了带宽变化趋势的离散值,确定所述带宽状态值包括:
在所述离散信息表征所述带宽变化趋势为持续下降的情况下,将所述带宽状态值配置为第一预设值;
在所述离散信息表征所述带宽变化趋势为波动下降的情况下,将所述带宽状态值配置为第二预设值;
在所述离散信息表征所述带宽变化趋势为总体上升的情况下,将所述带宽状态值配置为第三预设值;以及
在所述离散信息表征所述带宽变化趋势为相对稳定的情况下,将所述带宽状态值配置为第四预设值。
8.根据权利要求1至7中任一项所述的方法,其中,所述根据待传输的视频流,生成视频数据包包括:
根据用于所述推流端的多个候选分辨率和多个候选码率,确定多个配置组合和每个所述配置组合各自的扩展信息,其中,每个所述配置组合包括一个所述候选分辨率和一个所述候选码率,所述配置组合与所述空间层级一一对应;以及
根据所述配置组合和所述扩展信息,生成所述空间层级的候选视频流的视频数据。
9.一种视频数据传输方法,应用于拉流端,所述方法包括:
响应于接收到来自于推流端的视频数据包,对所述视频数据包进行解析,得到多个空间层级的候选视频流各自的视频数据,其中,所述视频数据携带了用于表征所述空间层级的候选视频流的属性的扩展信息;以及
根据基于多个所述扩展信息确定的选择策略,从多个所述空间层级的候选视频流中选择目标视频流。
10.根据权利要求9所述的方法,其中,所述选择策略指示了选择方向;
所述方法还包括,在所述对所述视频数据包进行解析,得到多个空间层级的候选视频流各自的视频数据之后:
获取历史视频数据包中与目标属性字段对应的历史属性值;以及
根据多个所述历史属性值、所述视频数据包中的与所述目标属性字段对应的当前属性值和所述拉流端的实际属性值,确定所述选择方向。
11.根据权利要求10所述的方法,其中,所述选择方向包括升级方向或降级方向;
所述根据多个所述历史属性值、所述视频数据包中的与所述目标属性字段对应的当前属性值和所述拉流端的实际属性值,确定所述选择方向包括:
在所述历史属性值、所述目标属性值和所述实际属性值满足预设升级条件的情况下,确定所述选择方向为升级方向;以及
在所述历史属性值、所述目标属性值和所述实际属性值满足预设降级条件的情况下,确定所述选择方向为降级方向。
12.根据权利要求11所述的方法,其中,在所述目标属性字段是所述分辨率状态字段的情况下,所述历史属性值是历史分辨率状态值、所述当前属性值是当前分辨率状态值、所述实际属性值包括需求空间层级和获得空间层级;
在所述目标属性字段是稳定状态字段的情况下,所述当前属性值是当前稳定状态值;在所述目标属性字段是码率状态字段的情况下,所述实际属性值是获得码率状态值;在所述目标属性字段是带宽状态字段的情况下,所述实际属性值是获得带宽状态值。
13.根据权利要求12所述的方法,其中,
所述预设升级条件包括以下中的至少之一:所述当前分辨率状态值对应的空间层级大于或等于所述历史分辨率状态值对应的空间层级、所述当前分辨率状态对应的空间层级等于所述需求空间层级、所述获得空间层级小于所述需求空间层级、所述当前稳定状态字段值为第一目标值;
所述预设降级条件包括以下中的至少之一:所述当前分辨率状态值对应的空间层级小于所述历史分辨率状态值对应的空间层级、所述历史分辨率状态值对应的空间层级等于所述需求空间层级、所述码率状态字段值为第二目标值、所述当前稳定状态字段值为第三目标值。
14.根据权利要求10所述的方法,其中,所述选择策略是根据选择评估值确定的,所述扩展信息包括至少一个属性字段各自的属性值;
所述方法还包括:
根据预先设定的每个所述属性字段各自的权重范围和需求优先级,确定用于每个所述属性字段的权重;以及
对于每个所述候选视频流,根据所述至少一个属性字段各自的属性值、以及用于每个所述属性字段的权重,确定每个所述候选音频流各自的选择评估值。
15.根据权利要求14所述的方法,其中,
在所述属性字段为分辨率状态字段的情况下,所述分辨率状态字段的需求优先级是根据所述拉流端对所述空间层级的偏好程度确定的;
在所述属性字段为码率状态字段的情况下,所述需求优先级是根据码率状态值对所述拉流端的播放效果的影响程度确定的;
在所述属性字段为带宽状态字段的情况下,所述需求优先级是根据带宽状态值对所述拉流端的播放效果的影响程度确定的。
16.一种视频数据传输装置,应用于推流端,所述方法包括:
生成模块,用于根据待传输的视频流,生成视频数据包,其中,所述视频数据包包括与所述待传输的视频流对应的多个空间层级的候选视频流各自的视频数据,所述视频数据携带了用于表征所述空间层级的候选视频流的状态属性的扩展信息;
传输模块,用于将所述视频数据包发送至拉流端,以使所述拉流端根据所述视频数据包中的多个所述扩展信息,从多个所述空间层级的候选视频流中选择目标视频流。
17.一种视频数据传输装置,应用于拉流端,所述方法包括:
解析模块,用于响应于接收到来自于推流端的视频数据包,对所述视频数据包进行解析,得到多个空间层级的候选视频流各自的视频数据,其中,所述视频数据携带了用于表征所述空间层级的候选视频流的属性的扩展信息;
选择模块,用于根据基于多个所述扩展信息确定的选择策略,从多个所述空间层级的候选视频流中选择目标视频流。
18.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序,
其特征在于,所述一个或多个处理器执行所述一个或多个计算机程序以实现根据权利要求1~15中任一项所述方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现根据权利要求1~15中任一项所述方法的步骤。
20.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现根据权利要求1~15中任一项所述方法的步骤。
CN202511172043.2A 2025-08-20 2025-08-20 视频数据传输方法、装置、电子设备、存储介质和程序产品 Pending CN121000902A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202511172043.2A CN121000902A (zh) 2025-08-20 2025-08-20 视频数据传输方法、装置、电子设备、存储介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202511172043.2A CN121000902A (zh) 2025-08-20 2025-08-20 视频数据传输方法、装置、电子设备、存储介质和程序产品

Publications (1)

Publication Number Publication Date
CN121000902A true CN121000902A (zh) 2025-11-21

Family

ID=97686467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202511172043.2A Pending CN121000902A (zh) 2025-08-20 2025-08-20 视频数据传输方法、装置、电子设备、存储介质和程序产品

Country Status (1)

Country Link
CN (1) CN121000902A (zh)

Similar Documents

Publication Publication Date Title
US20130304934A1 (en) Methods and systems for controlling quality of a media session
EP3210385B1 (en) Dynamic programming across multiple streams
US20140181266A1 (en) System, streaming media optimizer and methods for use therewith
US10277532B2 (en) Quality management of media encoding for multiple client devices
US9621607B2 (en) Systems and languages for media policy decision and control and methods for use therewith
Ramakrishnan et al. SDN based QoE optimization for HTTP-based adaptive video streaming
CN109379632B (zh) 一种动态自适应http流的码率渐进切换方法及系统
US20170347159A1 (en) Qoe analysis-based video frame management method and apparatus
US20150163273A1 (en) Media bit rate estimation based on segment playback duration and segment data length
US20130298170A1 (en) Video streaming quality of experience recovery using a video quality metric
Seppänen et al. An autonomous QoE-driven network management framework
CN113038187B (zh) 视频体验质量公平的实用网络带宽分配方法、设备及介质
US11902599B2 (en) Multiple protocol prediction and in-session adaptation in video streaming
US9819715B2 (en) Client side control of adaptive streaming
Hoßfeld et al. To each according to his needs: Dimensioning video buffer for specific user profiles and behavior
CN113747102B (zh) 视频通话处理方法、装置、设备及存储介质
CN120602051A (zh) 网络状态感知与自适应编码控制方法及装置
WO2014066975A1 (en) Methods and systems for controlling quality of a media session
Zhang et al. A QOE-driven approach to rate adaptation for dynamic adaptive streaming over http
CN121000902A (zh) 视频数据传输方法、装置、电子设备、存储介质和程序产品
JP6276206B2 (ja) 帯域割り当て制御装置及び帯域割り当て制御方法
Tarik et al. Adaptive Video Streaming with AI-Based Optimization for Dynamic Network Conditions
CN115695846B (zh) 一种连续隧道场景下优化自适应码率视频调度方法和系统
CN114640851B (zh) 基于质量感知的自适应全向视频流的传输方法
Navarro-Ortiz et al. Quality of experience based resource sharing in IEEE 802.11 e HCCA

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