CN115278308B - 媒体流处理方法、装置、设备及存储介质 - Google Patents

媒体流处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115278308B
CN115278308B CN202210899769.6A CN202210899769A CN115278308B CN 115278308 B CN115278308 B CN 115278308B CN 202210899769 A CN202210899769 A CN 202210899769A CN 115278308 B CN115278308 B CN 115278308B
Authority
CN
China
Prior art keywords
media stream
frame
current media
proportion
current
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
CN202210899769.6A
Other languages
English (en)
Other versions
CN115278308A (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.)
Beijing Zitiao Network Technology Co Ltd
Original Assignee
Beijing Zitiao Network 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 Beijing Zitiao Network Technology Co Ltd filed Critical Beijing Zitiao Network Technology Co Ltd
Priority to CN202210899769.6A priority Critical patent/CN115278308B/zh
Publication of CN115278308A publication Critical patent/CN115278308A/zh
Application granted granted Critical
Publication of CN115278308B publication Critical patent/CN115278308B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0127Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供了一种媒体流处理方法、装置、设备及存储介质。该方法包括:确定当前媒体流的网络运行性能特征和预置的源帧率;根据网络运行性能特征,确定当前媒体流的插帧比例;根据源帧率和插帧比例,对当前媒体流进行编码,并传输给客户端。客户端根据当前媒体流的源帧率和插帧比例,对当前媒体流进行解码;根据插帧比例对解码后的当前媒体流进行插帧,并显示插帧后的当前媒体流。本申请利用与网络运行性能适配的插帧方式,通过采样较少帧数的媒体流和相应插帧来达到源帧率下的处理要求,实现媒体流的灵活编解码,无需采用固定的源帧率进行编解码,保证媒体流编解码与网络运行性能间的稳定适配性,通过插帧避免媒体流出现播放卡顿的现象。

Description

媒体流处理方法、装置、设备及存储介质
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种媒体流处理方法、装置、设备及存储介质。
背景技术
对于各类媒体流,通常会采用串流方式对媒体流进行相应的编解码处理,以实现媒体流的高效播放。
通常情况下,服务端会按照一定的源帧率来不断采样图像帧,然后按照该源帧率对采样后的各个图像帧进行编码,并传输给客户端。客户端会按照源帧率来接收编码后的媒体流,然后按照该源帧率对其进行解码,并渲染到屏幕,来实现媒体流的播放。
然而,媒体流采用固定帧率进行编解码,会导致媒体流的处理方式不够灵活高效。在网络状态出现拥塞的情况下,可能会出现媒体流播放卡顿的现象。
发明内容
本申请实施例提供一种媒体流处理方法、装置、设备及存储介质,实现媒体流的灵活编解码,保证媒体流编解码与网络运行间的稳定适配性,避免媒体流出现播放卡顿的现象。
第一方面,本申请实施例提供了一种媒体流处理方法,应用于服务端,该方法包括:
确定当前媒体流的网络运行性能特征和预置的源帧率;
根据所述网络运行性能特征,确定所述当前媒体流的插帧比例;
根据所述源帧率和所述插帧比例,对所述当前媒体流进行编码,并传输给客户端。
第二方面,本申请实施例提供了一种媒体流处理方法,应用于客户端,该方法包括:
接收服务端传输的当前媒体流;
根据所述当前媒体流的源帧率和插帧比例,对所述当前媒体流进行解码;
根据所述插帧比例对解码后的当前媒体流进行插帧,并显示插帧后的当前媒体流。
第三方面,本申请实施例提供了一种媒体流处理装置,配置于服务端,该装置包括:
媒体流信息确定模块,用于确定当前媒体流的网络运行性能特征和预置的源帧率;
插帧比例确定模块,用于根据所述网络运行性能特征,确定所述当前媒体流的插帧比例;
媒体流编码传输模块,用于根据所述源帧率和所述插帧比例,对所述当前媒体流进行编码,并传输给客户端。
第四方面,本申请实施例提供了一种媒体流处理装置,配置于客户端,该装置包括:
媒体流接收模块,用于接收服务端传输的当前媒体流;
媒体流解码模块,用于根据所述当前媒体流的源帧率和插帧比例,对所述当前媒体流进行解码;
媒体流插帧显示模块,用于根据所述插帧比例对解码后的当前媒体流进行插帧,并显示插帧后的当前媒体流。
第五方面,本申请实施例提供了一种电子设备,该电子设备包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行本申请第一方面或第二方面中提供的媒体流处理方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行如本申请第一方面或第二方面中提供的媒体流处理方法。
第七方面,本申请实施例提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现如本申请第一方面或第二方面中提供的媒体流处理方法。
本申请实施例提供的一种媒体流处理方法、装置、设备和存储介质,服务端会确定当前媒体流的网络运行性能特征和预置的源帧率,然后根据网络运行性能特征,为当前媒体流确定一个插帧比例,以便根据源帧率和该插帧比例,对当前媒体流进行编码,并传输给客户端。客户端对于接收到的当前媒体流,会根据当前媒体流的源帧率和插帧比例,对当前媒体流进行解码,然后根据插帧比例对解码后的当前媒体流进行插帧,并显示插帧后的当前媒体流。通过上述方案,利用与网络运行性能适配的插帧方式,即可通过采样较少帧数的媒体流和相应插帧来达到源帧率下的处理要求,从而实现媒体流的灵活编解码,无需采用固定的源帧率进行编解码,保证媒体流编解码与网络运行性能间的稳定适配性,通过插帧即可避免媒体流出现播放卡顿的现象。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例示出的一种媒体流处理方法的流程图;
图2为本申请实施例示出的当前媒体流的具体编码过程的方法流程图;
图3为本申请实施例示出的当前媒体流编码过程的原理示意图;
图4为本申请实施例示出的另一种媒体流处理方法的流程图;
图5为本申请实施例示出的一种媒体流处理方法的流程图;
图6为本申请实施例示出的一种媒体流处理装置的原理框图;
图7为本申请实施例示出的一种媒体流处理装置的原理框图;
图8是本申请实施例示出的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
考虑到采用固定帧率对媒体流进行编解码时,如果网络不稳定便可能会出现媒体流播放卡顿的问题。为了解决上述问题,本申请实施例提供了一种实现媒体流灵活编解码的方案。通过网络运行性能特征,为当前媒体流确定一个适合的插帧比例,然后按照该插帧比例,通过采样较少帧数的媒体流和相应插帧即可达到源帧率下的处理要求。因此,在网络不稳定时通过减少媒体流的采样帧数,结合插帧方式,来实现媒体流的灵活编解码,无需采用固定的源帧率来进行编解码,保证媒体流编解码与网络运行性能间的稳定适配性,通过插帧即可避免媒体流出现播放卡顿的现象。
图1为本申请实施例示出的一种媒体流处理方法的流程图。该方法可应用于服务端,可以由本申请提供的配置于服务端的媒体流处理装置来执行,其中,该媒体流处理装置可以通过任意的软件和/或硬件的方式实现。示例性地,该媒体流处理装置可以应用于任一服务端中,该服务端可以包括但不限于笔记本电脑、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等可支持大数据运算的服务器,本申请对服务端的具体类型不作任何限制。
具体的,如图1所示,该方法可以包括如下步骤:
S110,确定当前媒体流的网络运行性能特征和预置的源帧率。
其中,媒体流可以为采用流式传输的方式形成的各类媒体内容,可以包括但不限于音频流、视频流、流式多媒体文件等。对于任一媒体流,通常会在服务端与客户端之间采用串流技术进行处理。
在本申请中,媒体流的串流处理过程可以为:服务端会按照一个帧率对应的帧间隔,定期从串流应用采样对应的应用画面,得到对应的媒体流。然后,采用上述帧率对采样后的媒体流进行编码并传输给客户端。客户端采用上述帧率对接收到的媒体流进行解码,并渲染到客户端界面内,以将媒体流实时显示给用户。
考虑到在媒体流串流过程中,网络传输的稳定性(例如网络带宽)和用于处理媒体流的硬件运行性能(例如图形处理器(Graphics Processing Unit,简称为GPU)的处理性能)均会影响到媒体流的处理性能。
因此,为了保证媒体流处理与网络运行间的适配性,本申请首先会分析用于处理媒体流的硬件运行性能,例如GPU性能等。而且,通过在服务端与客户端之间执行相应的数据交互,来分析对应的网络传输性能。进而,综合分析该硬件运行性能和网络传输性能,来确定对应的网络运行性能特征,以便后续为当前媒体流确定与当前网络运行适合的编码帧率,来保证媒体流的灵活编解码。
而且,在串流过程中,通过媒体流处理的帧率来表示单位时间内媒体流处理的帧数。帧率越高,媒体流处理后会显示更为流畅、清晰和逼真,但对于编解码效率和显卡性能的要求也就越高。也就是,帧率越高,要求编解码延时越小,使得在多媒体串流过程中的单位时间内能够处理更多帧数的媒体流。由此可知,媒体流的帧率与运行串流应用的硬件性能相关。因此,为了保证媒体流处理的高效性,本申请会预先分析用于运行与媒体流相关的串流应用的硬件性能。然后,按照该硬件性能,为本申请中当前待处理的媒体流预先设置一个适合的帧率,作为本申请中为当前媒体流预置的源帧率。
S120,根据网络运行性能特征,确定当前媒体流的插帧比例。
根据网络运行性能特征,能够实时判断当前网络对于媒体流处理是否存在一定压力,而可能会导致媒体流处理不及时的问题。此时,通过媒体流中的插帧方式,可以采用插帧来代替媒体流中的某些采样帧,而相应减少媒体流的采样帧数,从而在保持源帧率下媒体流处理的基础上,能够减少媒体流处理的实际帧数,提升媒体流的处理效率,降低媒体流的处理压力。
因此,通过网络运行性能特征表征的当前对于媒体流的网络处理能力,可以为当前媒体流设定一个适合当前网络的插帧比例,以便后续据此分析当前媒体流中的插帧位置,来取消该位置下的帧采样操作,从而减少当前媒体流中的采样帧数,降低媒体流处理的压力。
作为本申请中的一种示例性方案,如果该网络运行性能特征表征当前网络对于媒体流的处理性能极高,能够满足当前媒体流的完整高效处理要求,说明无需插帧也能保证当前媒体流的完整显示。所以,本申请可以直接将当前媒体流的插帧比例设定为0,表示无需插帧即可实现高性能下的媒体流处理。
而如果网络运行性能特征表征当前网络对于媒体流的处理性能较为低端或者网络拥堵极为严重,无法满足当前媒体流的完整高效处理要求,则需要根据网络运行环境,在当前媒体流中插入不同数量的帧,即相应减少当前媒体流中不同数量的采样帧数,来适应当前网络对于媒体流的处理性能。所以,本申请可以针对网络运行性能特征表征当前网络对于媒体流的处理性能高低,为当前媒体流设定不同的插帧比例,以在不同网络运行环境下,支持在当前媒体流中插入不同数量的帧,来代替当前媒体流中不同数量的采样帧,从而降低当前网络对于当前媒体流中采样帧的处理压力。
S130,根据源帧率和插帧比例,对当前媒体流进行编码,并传输给客户端。
在确定当前媒体流的插帧比例后,源帧率对应的帧间隔能够表示当前媒体流无需插帧时的原始采样间隔。而在当前媒体流按照该插帧比例进行采样时,会保持每采样几帧,便保留一个插帧位置的格式,来获取当前媒体流,使得当前媒体流内的采样帧和插帧能够满足插帧比例的要求。
例如,插帧比例为1/6时,按照源帧率对应的帧间隔每采样5帧后,会延时一个帧间隔,不执行实际的帧采样操作,而保留出一个插帧位置,从而获取到满足1/6插帧比例的当前媒体流。
然后,根据当前媒体流内的实际采样帧数,来对采样后的当前媒体流进行编码,以相应减少当前媒体流在源帧率下的编码帧数,降低当前网络对于媒体流的处理压力。最后,将编码后的当前媒体流传输给客户端,由客户端对该当前媒体流执行相应的解码显示等处理操作。
应当理解的是,为了保证服务端和客户端对于当前媒体流的同步处理,服务端在根据网络运行性能特征确定出当前媒体流的插帧比例之后,还会向客户端同步当前媒体流的插帧比例,以便由客户端根据预置的源帧率和该插帧比例,确定当前媒体流的编码帧数,从而按照该编码帧数,对所接收到的当前媒体流进行相同帧率下的解码,保证媒体流编解码的一致性。
本申请实施例提供的技术方案,服务端会确定当前媒体流的网络运行性能特征和预置的源帧率,然后根据网络运行性能特征,为当前媒体流确定一个插帧比例,以便根据源帧率和该插帧比例,对当前媒体流进行编码,并传输给客户端。通过上述方案,利用与网络运行性能适配的插帧方式,即可通过采样较少帧数的媒体流和相应插帧来达到源帧率下的处理要求,从而实现媒体流的灵活编码,无需采用固定的源帧率进行编码,保证媒体流编码与网络运行性能间的稳定适配性。
根据本申请的一个或多个实施例,为了保证当前媒体流的编码准确性,本申请可以根据源帧率和插帧比例,来具体判断当前媒体流的编码逻辑、采样逻辑和插帧逻辑。如图2所示,本申请中当前媒体流的具体编码过程可以包括如下步骤:
S210,根据源帧率和插帧比例,确定当前媒体流的编码帧率、帧采样时间和插帧时间。
根据网络运行性能特征,为当前媒体流设定出适合当前网络的插帧比例之后,该插帧比例能够表示出当前媒体流中需要插帧的帧数与实际采样帧数之间的关系。那么,根据插帧比例可以确定出在对当前媒体流采样几帧后需要插入一帧。例如插帧比例为1/6时,那么在采样5帧后,需要插入一帧。
本申请中,根据预置的源帧率,可以确定出对当前媒体流进行采样的帧间隔。那么,根据该源帧率对应的帧间隔和该插帧比例,即可确定出当前媒体流的帧采样时间和插帧时间。
而且,对于当前媒体流的编码主要是对实际采样后的各个帧进行编码,编码阶段不考虑实际的插帧,而是在客户端解码阶段,会采用插针来保证当前媒体流的显示不间断。所以,根据插帧比例可以确定出实际的采样帧比例,然后根据源帧率和采样帧比例的乘积,即可计算出当前媒体流的编码帧率。
作为本申请中的一种示例性方案,假设源帧率为72Hz,插帧比例为1/6。那么,可以计算出当前媒体流的编码帧率为72*(1-1/6)=60Hz。
而源帧率对应的帧间隔为13ms,说明对于当前媒体流,在无需插帧时会每隔13ms执行一次帧采样操作。而存在插帧需求时,如图3所示,本申请会设定每6个帧间隔为一组,那么每一组内前5个帧间隔对应的时间点为帧采样时间,而后一个帧间隔对应的时间点为插帧时间。可以理解为,每一组内最后一个采样帧完成采样后会延时26ms,再继续执行下一次的帧采样操作,以保留出对应的插帧位置。
S220,根据帧采样时间对当前媒体流进行采样,并采用编码帧率对采样后的当前媒体流进行编码。
在确定出当前媒体流的帧采样时间后,按照该帧采样时间,不断从串流应用中采样当前媒体流的各个帧。然后,采用当前媒体流的编码帧率对各个已采样帧进行实际的编码操作,从而得到编码后的当前媒体流。
S230,根据插帧时间在编码后的当前媒体流中设定对应的插帧标识,以使客户端在插帧标识指向的目标流位置处进行插帧。
考虑到当前媒体流中插帧的目的主要是为了保证当前媒体流在客户端解码后的不间断显示。所以,在服务端对于当前媒体流的编码阶段,为了保证媒体流编码的高效性,降低服务端对于媒体流处理的压力,服务端无需执行实际的插帧操作,而只需要在当前媒体流中指出实际的插帧位置,以指示客户端在此位置需要进行插帧即可。
因此,本申请可以按照插帧时间和当前媒体流中各个已采样帧的位置,从当前媒体流中确定出对应的插帧位置。然后,在每一插帧位置处均设定一个插帧标识,以指示客户端需要在当前媒体流中的该位置处进行一次插帧。也就是说,当前媒体流中每一插帧标识指向的目标流位置可以为当前媒体流中的插帧位置。
作为本申请中的一种可选实现方案,考虑到用于处理媒体流处理的硬件性能通常不会发生变化,而服务端与客户端之间的网络运行性能也会遵循某一基础网络性能发生或高或低的变化。因此,本申请中的网络运行性能特征可以分为网络运行基础特征和网络运行变化特征两部分来表征。
接下来对于通过网络运行基础特征和网络运行变化特征这两部分网络运行性能特征,来对当前媒体流的进行编码的实际过程进行详细的说明。
图4为本申请示出的另一种媒体流处理方法的流程图,该方法具体可以包括如下步骤:
S410,确定当前媒体流预置的源帧率。
S420,探测当前媒体流的硬件处理指标和在预设时长内的网络带宽均值。
在对当前媒体流执行实际的处理操作前,首先会对当前网络运行环境进行一次提前判断。通过分析服务端和客户端内用于处理媒体流的硬件运行性能,例如GPU性能等,来探测当前媒体流的硬件处理指标。
而且,通过提前在服务端和客户端之间执行一段预设时长内的数据交互,来判断服务端和客户端之间的网络性能。在预设时长内,实时探测服务端与客户端之间的网络带宽变化情况,来计算出预设时长内的网络带宽均值。
其中,本申请中的网络带宽值可以为服务端与客户端之间在单位时间内的传输数据量,也可以通过数据吞吐量、数据传输速率等表示。
S430,根据硬件处理指标和网络带宽均值,确定对应的网络运行基础特征。
在对当前媒体流进行实际处理前,预先探测出当前媒体流的硬件处理指标和在预设时长内的网络带宽均值后,综合分析硬件处理指标和网络带宽均值,来判断网络运行的基础性能,以此作为本申请中的网络运行基础特征。
需要说明的是,为了便于对网络运行性能进行量级区分,本申请可以根据网络运行基础特征所表征网络运行性能高低,将当前媒体流所处的网络运行环境划分为高性能、中性能和低性能三个等级。
应当理解的是,在不同等级的网络运行环境下,当前媒体流所适合的编解码策略也各不相同。
1)高性能的网络运行环境下,能够完全支持当前媒体流内的所有帧处理,不会造成当前媒体流的处理压力。因此,在高性能的网络运行环境下可以设定一个全帧编解码策略,按照源帧率对应的帧间隔定期采样当前媒体流,并进行编解码,无需使用任何插帧技术,也能够达到最优的媒体流显示效果。
2)中性能的网络运行环境下,可能会造成当前媒体流的小部分处理压力,导致当前媒体流内的小部分帧无法及时得到编解码处理。因此,在中性能的网络运行环境下可以设定一个稀疏插帧编解码策略,也就是在采样当前媒体流时支持稀疏插入小量帧,并进行编解码,以缓解当前媒体流的小部分处理压力,确保当前媒体流的快速响应。
3)低性能的网络运行环境下,可能会造成当前媒体流的大部分处理压力,导致当前媒体流内的大部分帧无法及时得到编解码处理。因此,在低性能的网络运行环境下可以设定一个稠密插帧编解码策略,也就是在采样当前媒体流时支持频繁插入多帧,并进行编解码,以缓解当前媒体流的处理压力,确保当前媒体流的快速响应。
而对于稠密插帧编解码仍无法保证当前媒体流的连续显示时,表示当前网络可能处于极端拥堵的情况下。那么,需要在当前媒体流内进行稠密插帧的基础上,再结合连续插帧编解码,也就是在稠密插帧的一帧后再次连续插入一帧或多帧,以保证当前媒体流的显示连续性。但是,稠密插帧和连续插帧结合使用后,由于插帧过多,可能会影响到当前媒体流的准确性。因此,通常在极端低性能下的网络运行环境中,才会结合使用稠密插帧和连续插帧。
S440,探测当前媒体流的网络抖动参数,作为对应的网络运行变化特征。
在预先确定好网络运行性能基础特征后,由于当前媒体流在实际处理过程中,网络运行性能也会发生实时变化。因此,本申请会在当前媒体流的实际处理过程中,实时探测对应的网络抖动情况,得到本申请中的网络抖动参数,作为对应的网络运行变化特征。
S450,根据网络运行基础特征,确定当前媒体流的插帧比例基值。
对于当前媒体流的插帧比例,本申请在预先确定出网络运行基础特征后,可以根据该网络运行基础特征,来判断网络运行性能的高低,以确定出适合当前网络的编解码策略。然后,按照适合当前网络的编解码策略,来判断当前媒体流是否需要插帧处理,以及具体的插帧情况,从而确定出当前媒体流的插帧比例基值。
需要说明的是,根据网络运行基础特征,可以将当前媒体流所处的网络运行环境划分为高性能、中性能和低性能三个等级,在不同等级下分别设定有全帧编解码、稀疏插帧编解码和稠密插帧编解码这三种编解码策略。那么,本申请中当前媒体流的插帧比例基值也可以包括全帧编解码、稀疏插帧编解码和稠密插帧编解码下的三种插帧比例。
其中,全帧编解码表示无需使用任何插帧技术,所以全帧编解码下的插帧比例基值为0。而稀疏插帧编解码和稠密插帧编解码均需要使用插帧技术,只是插帧数量不同。稀疏插帧编解码下的插帧比例会小于稠密插帧编解码下的插帧比例,使得稀疏插帧编解码下的插帧数量小于稠密插帧编解码下的插帧数量。示例性的,本申请中稀疏插帧编解码下的插帧比例可以为稠密插帧编解码下的插帧比例的1/2。
那么,本申请可以根据网络运行基础特征,确定出适合当前网络的某一具体编解码策略。然后,将该具体编解码策略下的插帧比例作为当前媒体流的插帧比例基值,以便后续根据网络运行变化特征来对该插帧比例基值进行自适应调整。
S460,根据网络运行变化特征,对插帧比例基值进行调整,得到当前媒体流的插帧比例。
根据网络运行变化特征表征的当前网络的实时变化情况,可以判断当前网络运行性能是否存在抖动。据此,对插帧比例基值进行进一步调整,得到当前媒体流的插帧比例,以保证当前媒体流处理与当前网络的实时适配性。
作为本申请中的一种可选实现方案,本申请中的网络运行变化特征为网络抖动参数。而按照当前媒体流在插帧后的显示性能高低,可以对不同编解码策略下的插帧比例进行等级排列。也就是说,全帧编解码下的插帧比例为0,保证当前媒体流在插帧后的显示性能最高,所以全帧编解码下的插帧比例也就处于第一等级。接下来是稀疏插帧编解码下的插帧比例,在当前媒体流内插入的帧数叫少,在一定程度上能够保证当前媒体流在插帧后的显示性能,所以稀疏插帧编解码下的插帧比例处于第二等级。最后是稠密插帧编解码下的插帧比例,在当前媒体流内插入的帧数叫多,当前媒体流在插帧后的显示性能也就最低,所以稠密插帧编解码下的插帧比例处于第三等级。
对于当前媒体流的插帧比例,具体可以采用如下步骤来确定:根据网络抖动参数确定的抖动持续时长,从插帧比例基值开始,依次向下一级的插帧比例切换,得到当前媒体流的插帧比例;直至网络抖动参数指示不再抖动,切换回插帧比例基值,作为当前媒体流的插帧比例。
也就是说,会根据当前网络实时探测的网络抖动参数来判断网络抖动时长。如果网络持续抖动,表示网络运行性能在不断降低,网络抖动时长可以表征网络运行性能的下降程度。网络抖动时长越大,说明网络运行性能下降越厉害,那么要求插帧数量越来越多,以减缓对于当前媒体流内已采样帧的处理压力。
因此,根据实时确定的网络抖动参数来持续更新当前网络的抖动持续时长,在该抖动持续时长达到第一时长阈值时,可以从插帧比例基值开始,向下一级的插帧比例切换,得到当前媒体流的插帧比例。然后,在该抖动持续时长继续增长而达到第二时长阈值时,可以继续向再下一级的插帧比例切换,再次得到当前媒体流的插帧比例。直到在网络抖动参数在一段时间内一直为零,表示当前网络不再抖动,该抖动持续时长停止增长,说明当前网络已经恢复到插帧比例基值所表示的原始网络运行性能。因此,直接切换回该插帧比例基值,作为当前媒体流的插帧比例。
示例性的,本申请中根据网络运行基础特征确定的插帧比例基值会存在全帧编解码、稀疏插帧编解码和稠密插帧编解码下的三种插帧比例的情况。接下来对于在每一种情况下,当前媒体流的插帧比例切换过程进行说明:
1)插帧比例基值为全帧编解码下的插帧比例
如果当前网络的抖动持续时长达到1s,那么将当前媒体流的插帧比例从插帧比例基值切换为稀疏插帧编解码下设定的插帧比例。如果完成切换后,网络抖动继续持续了3s,仍未恢复到原始的网络运行性能,也就是总的抖动持续时长达到4s,那么继续将当前媒体流的插帧比例从稀疏插帧编解码下设定的插帧比例切换为稠密插帧编解码下设定的插帧比例。然后,如果网络抖动又继续持续了5s,仍未恢复到原始的网络运行性能,由于已经切换到最后一级的插帧比例,所以当前媒体流的插帧比例会继续保持为稠密插帧编解码下设定的插帧比例。
在上述过程的任一阶段中,如果当前网络不再抖动,而恢复到原始的网络运行性能,那么会将当前媒体流的插帧比例直接切换回插帧比例基值,也就是全帧编解码下设定的插帧比例0。即使当前媒体流的插帧比例为稠密插帧编解码下设定的插帧比例,也会直接切换回插帧比例基值,而无需过渡稀疏插帧编解码下设定的插帧比例。
2)插帧比例基值为稀疏插帧编解码下的插帧比例
如果当前网络的抖动持续时长达到2s,那么将当前媒体流的插帧比例从插帧比例基值切换为稠密插帧编解码下设定的插帧比例。如果完成切换后,网络抖动继续持续了3s,仍未恢复到原始的网络运行性能,也就是总的抖动持续时长达到5s,那么当前媒体流的插帧比例会继续保持为稠密插帧编解码下设定的插帧比例。
在上述过程的任一阶段中,如果当前网络不再抖动,而恢复到原始的网络运行性能,那么会将当前媒体流的插帧比例直接切换回插帧比例基值,也就是稀疏插帧编解码下的插帧比例。
3)插帧比例基值为稠密插帧编解码下的插帧比例
由于当前媒体流的插帧比例为插帧比例基值时,已经属于最后一级的插帧比例。那么在此种情况下如果出现网络拥堵,说明在当前媒体流内插入一帧已经不能解决媒体流卡顿的问题,则需要在稠密插帧编解码的基础上,再次结合连续插帧,使得在当前媒体流内连续插入多帧,来缓解当前媒体流的处理压力。
S470,根据源帧率和插帧比例,对当前媒体流进行编码,并传输给客户端。
本申请实施例提供的技术方案,服务端会确定当前媒体流的网络运行性能特征和预置的源帧率,然后根据网络运行性能特征,为当前媒体流确定一个插帧比例,以便根据源帧率和该插帧比例,对当前媒体流进行编码,并传输给客户端。通过上述方案,利用与网络运行性能适配的插帧方式,即可通过采样较少帧数的媒体流和相应插帧来达到源帧率下的处理要求,从而实现媒体流的灵活编码,无需采用固定的源帧率进行编码,保证媒体流编码与网络运行性能间的稳定适配性。
上述实施例提供的技术内容主要是对服务端对当前媒体流的编码传输过程进行说明。接下来对于客户端在接收到服务端传输来的当前媒体流后,对当前媒体流的解码显示过程进行说明。
图5为本申请实施例示出的一种媒体流处理方法的流程图。该方法可应用于客户端,可以由本申请提供的配置于客户端的媒体流处理装置来执行,其中,该媒体流处理装置可以通过任意的软件和/或硬件的方式实现。示例性地,该媒体流处理装置可以应用于任一客户端中,该客户端可以包括但不限于平板电脑、手机(如折叠屏手机、大屏手机等)、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、智能电视、智慧屏、高清电视、4K电视、智能音箱、智能投影仪等支持物联网(the internet of things,IOT)设备,本申请对客户端的具体类型不作任何限制。
具体的,如图5所示,该方法可以包括如下步骤:
S510,接收服务端传输的当前媒体流。
服务端在完成当前媒体流的编码后,会传输给客户端进行显示。客户端会不断接收到从服务端传输来的当前媒体流。通过对接收到的当前媒体流进行解码处理,即可将当前媒体流渲染在客户端界面上,以显示给用户。
S520,根据当前媒体流的源帧率和插帧比例,对当前媒体流进行解码。
在对当前媒体流执行实际处理前,服务端和客户端之间会预先分析用于运行与媒体流相关的串流应用的硬件性能。然后,按照该硬件性能,为本申请中当前待处理的媒体流预先设置一个适合的帧率,作为本申请中为当前媒体流预置的源帧率,保证源帧率在服务端和客户端上的同步。
由于服务端按照源帧率和插帧比例对当前媒体流进行编码,会改变当前媒体流内的帧采样情况,导致当前媒体流内的实际采样帧数与源帧率不符。因此,为了保证当前媒体流的解码准确性,本申请需要根据当前媒体流的源帧率和插帧比例,来判断当前媒体流内的具体解码帧数,以对接收到的当前媒体流进行解码,得到解码后的当前媒体流。
应当理解的是,解码后的当前媒体流会包括服务端从串流应用中已采样的各个帧和按照插帧时间设定的插帧标识。
作为本申请中的一种可选实现方案,对于当前媒体流的解码,本申请首先可以根据源帧率和插帧比例,确定当前媒体流的解码帧率。然后,采用该解码帧率对当前媒体流进行解码,得到解码后的当前媒体流。
也就是说,根据插帧比例可以确定出服务端对于当前媒体流内实际的采样帧比例,然后根据源帧率和采样帧比例的乘积,即可计算出当前媒体流的解码帧率。以源帧率为72Hz,插帧比例为1/6为例,可以计算出当前媒体流的解码帧率为72*(1-1/6)=60Hz,与服务端对于当前媒体流的编码帧率保持一致。然后,采用该解码帧率即可对当前媒体流进行准确解码。
S530,根据插帧比例对解码后的当前媒体流进行插帧,并显示插帧后的当前媒体流。
在得到解码后的当前媒体流后,可以按照插帧比例来判断当前媒体流内各个已采样帧间的插帧位置。例如,插帧比例为1/6时,那么需要在每5个已采样帧后插入一帧,来达到当前媒体流内该插帧比例的要求。
所以,在当前媒体流的插帧位置处,可以根据该插帧位置之前的各个已采样帧,来计算该插帧位置处显示的图像帧。然后,将所计算出的图像帧插入到当前媒体流的该插帧位置处。按照上述方式,对解码后的当前媒体流进行插帧,并在客户端屏幕上渲染插帧后的当前媒体流内的各个帧,以避免当前媒体流出现卡顿的现象。
其中,本申请可以采用异步空间扭曲技术(Asynchronous Spacewarp,简称为ASW)和异步时间扭曲(Asynchronous Timewarp,简称为ATW)的结合,来根据插帧位置前的各个已采样帧,预测出新的图像帧,以插入到当前媒体流的插帧位置处。
作为本申请中的一种可选实现方案,对于当前媒体流的插帧,由于服务端对当前媒体流进行编码后,会按照插帧时间在当前媒体流中设定对应的插帧标识。因此,本申请在对当前媒体流进行解码后,可以在当前媒体流中确定对应的插帧标识。然后,根据该插帧标识指向的目标流位置之前的已采样帧,在解码后的当前媒体流中的目标流位置处进行插帧。
也就是说,确定该插帧标识在当前媒体流中指向的目标流位置。然后,获取当前媒体流中处于该目标流位置之前的各个已采样帧,并据此计算该目标流位置处待插入的图像帧,进而在该目标流位置处进行插帧。
本申请实施例提供的技术方案,客户端对于接收到的当前媒体流,会根据当前媒体流的源帧率和插帧比例,对当前媒体流进行解码,然后根据插帧比例对解码后的当前媒体流进行插帧,并显示插帧后的当前媒体流。通过上述方案,利用与网络运行性能适配的插帧方式,即可通过采样较少帧数的媒体流和相应插帧来达到源帧率下的处理要求,从而实现媒体流的灵活解码,无需采用固定的源帧率进行解码,保证媒体流解码与网络运行性能间的稳定适配性,通过插帧即可避免媒体流出现播放卡顿的现象。
图6为本申请实施例示出的一种媒体流处理装置的原理框图,该媒体流处理装置600配置于服务端。如图6所示,该装置600可以包括:
媒体流信息确定模块610,用于确定当前媒体流的网络运行性能特征和预置的源帧率;
插帧比例确定模块620,用于根据所述网络运行性能特征,确定所述当前媒体流的插帧比例;
媒体流编码传输模块630,用于根据所述源帧率和所述插帧比例,对所述当前媒体流进行编码,并传输给客户端。
在一些可实现方式中,媒体流信息确定模块610,可以具体用于:
探测所述当前媒体流的硬件处理指标和在预设时长内的网络带宽均值;
根据所述硬件处理指标和所述网络带宽均值,确定对应的网络运行基础特征;
探测所述当前媒体流的网络抖动参数,作为对应的网络运行变化特征。
在一些可实现方式中,插帧比例确定模块620,可以具体用于:
根据所述网络运行基础特征,确定所述当前媒体流的插帧比例基值;
根据所述网络运行变化特征,对所述插帧比例基值进行调整,得到所述当前媒体流的插帧比例。
在一些可实现方式中,所述插帧比例基值包括全帧编解码、稀疏插帧编解码和稠密插帧编解码下的三种插帧比例,所述全帧编解码下的插帧比例为0,所述稀疏插帧编解码下的插帧比例为所述稠密插帧编解码下的插帧比例的1/2。
在一些可实现方式中,插帧比例确定模块620,可以具体用于:
根据所述网络抖动参数确定的抖动持续时长,从所述插帧比例基值开始,依次向下一级的插帧比例切换,得到所述当前媒体流的插帧比例;
直至所述网络抖动参数指示不再抖动,切换回所述插帧比例基值,作为所述当前媒体流的插帧比例。
在一些可实现方式中,媒体流编码传输模块630,可以具体用于:
根据所述源帧率和所述插帧比例,确定所述当前媒体流的编码帧率、帧采样时间和插帧时间;
根据所述帧采样时间对所述当前媒体流进行采样,并采用所述编码帧率对采样后的当前媒体流进行编码;
根据所述插帧时间在编码后的当前媒体流中设定对应的插帧标识,以使客户端在所述插帧标识指向的目标流位置处进行插帧。
在一些可实现方式中,媒体流处理装置600,还可以包括:
插帧比例同步模块,用于向所述客户端同步所述当前媒体流的插帧比例。
本申请实施例中,服务端会确定当前媒体流的网络运行性能特征和预置的源帧率,然后根据网络运行性能特征,为当前媒体流确定一个插帧比例,以便根据源帧率和该插帧比例,对当前媒体流进行编码,并传输给客户端。通过上述方案,利用与网络运行性能适配的插帧方式,即可通过采样较少帧数的媒体流和相应插帧来达到源帧率下的处理要求,从而实现媒体流的灵活编码,无需采用固定的源帧率进行编码,保证媒体流编码与网络运行性能间的稳定适配性。
图7为本申请实施例示出的一种媒体流处理装置的原理框图,该媒体流处理装置700配置于客户端。如图7所示,该装置700可以包括:
媒体流接收模块710,用于接收服务端传输的当前媒体流;
媒体流解码模块720,用于根据所述当前媒体流的源帧率和插帧比例,对所述当前媒体流进行解码;
媒体流插帧显示模块730,用于根据所述插帧比例对解码后的当前媒体流进行插帧,并显示插帧后的当前媒体流。
在一些可实现方式中,媒体流解码模块720,可以具体用于:
根据所述源帧率和所述插帧比例,确定所述当前媒体流的解码帧率;
采用所述解码帧率对所述当前媒体流进行解码,得到解码后的当前媒体流。
在一些可实现方式中,媒体流插帧显示模块730,可以具体用于:
在解码后的当前媒体流中确定对应的插帧标识;
根据所述插帧标识指向的目标流位置之前的已采样帧,在解码后的当前媒体流中的所述目标流位置处进行插帧。
本申请实施例中,客户端对于接收到的当前媒体流,会根据当前媒体流的源帧率和插帧比例,对当前媒体流进行解码,然后根据插帧比例对解码后的当前媒体流进行插帧,并显示插帧后的当前媒体流。通过上述方案,利用与网络运行性能适配的插帧方式,即可通过采样较少帧数的媒体流和相应插帧来达到源帧率下的处理要求,从而实现媒体流的灵活解码,无需采用固定的源帧率进行解码,保证媒体流解码与网络运行性能间的稳定适配性,通过插帧即可避免媒体流出现播放卡顿的现象。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图6所示的装置600可以执行本申请提供的应用于服务端的任一方法实施例,图7所示的装置700可以执行本申请提供的应用于客户端的任一方法实施例,并且装置600和装置700中的各个模块的前述和其它操作和/或功能分别为了实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置400。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图8是本申请实施例示出的电子设备的示意性框图。
如图8所示,该电子设备800可包括:
存储器810和处理器820,该存储器810用于存储计算机程序,并将该程序代码传输给该处理器820。换言之,该处理器820可以从存储器810中调用并运行计算机程序,以实现本申请实施例中的方法。
例如,该处理器820可用于根据该计算机程序中的指令执行上述方法实施例。
在本申请的一些实施例中,该处理器820可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器810包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器810中,并由该处理器820执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该电子设备中的执行过程。
如图8所示,该电子设备还可包括:
收发器830,该收发器830可连接至该处理器820或存储器810。
其中,处理器820可以控制该收发器830与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器830可以包括发射机和接收机。收发器830还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上该,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

Claims (14)

1.一种媒体流处理方法,其特征在于,应用于服务端,所述方法包括:
确定当前媒体流的网络运行性能特征和预置的源帧率;
根据所述网络运行性能特征,确定所述当前媒体流的插帧比例;
根据所述源帧率和所述插帧比例,对所述当前媒体流进行编码,并传输给客户端;
其中,所述当前媒体流保持每间隔相应数量的采样帧,便保留一个插帧位置的格式,并取消所述插帧位置下的帧采样操作,使得所述当前媒体流内的采样帧和插帧满足所述插帧比例的要求。
2.根据权利要求1所述的方法,其特征在于,所述确定当前媒体流的网络运行性能特征,包括:
探测所述当前媒体流的硬件处理指标和在预设时长内的网络带宽均值;
根据所述硬件处理指标和所述网络带宽均值,确定对应的网络运行基础特征;
探测所述当前媒体流的网络抖动参数,作为对应的网络运行变化特征。
3.根据权利要求2所述的方法,其特征在于,所述根据所述网络运行性能特征,确定所述当前媒体流的插帧比例,包括:
根据所述网络运行基础特征,确定所述当前媒体流的插帧比例基值;
根据所述网络运行变化特征,对所述插帧比例基值进行调整,得到所述当前媒体流的插帧比例。
4.根据权利要求3所述的方法,其特征在于,所述插帧比例基值包括全帧编解码、稀疏插帧编解码和稠密插帧编解码下的三种插帧比例,所述全帧编解码下的插帧比例为0,所述稀疏插帧编解码下的插帧比例为所述稠密插帧编解码下的插帧比例的1/2。
5.根据权利要求3所述的方法,其特征在于,根据所述网络运行变化特征,对所述插帧比例基值进行调整,得到所述当前媒体流的插帧比例,包括:
根据所述网络抖动参数确定的抖动持续时长,从所述插帧比例基值开始,依次向下一级的插帧比例切换,得到所述当前媒体流的插帧比例;
直至所述网络抖动参数指示不再抖动,切换回所述插帧比例基值,作为所述当前媒体流的插帧比例。
6.根据权利要求1所述的方法,其特征在于,所述根据所述源帧率和所述插帧比例,对所述当前媒体流进行编码,包括:
根据所述源帧率和所述插帧比例,确定所述当前媒体流的编码帧率、帧采样时间和插帧时间;
根据所述帧采样时间对所述当前媒体流进行采样,并采用所述编码帧率对采样后的当前媒体流进行编码;
根据所述插帧时间在编码后的当前媒体流中设定对应的插帧标识,以使客户端在所述插帧标识指向的目标流位置处进行插帧。
7.根据权利要求1所述的方法,其特征在于,在根据所述网络运行性能特征,确定所述当前媒体流的插帧比例之后,还包括:
向所述客户端同步所述当前媒体流的插帧比例。
8.一种媒体流处理方法,其特征在于,应用于客户端,所述方法包括:
接收服务端传输的当前媒体流,所述当前媒体流保持每间隔相应数量的采样帧,便保留一个插帧位置的格式,使得所述当前媒体流内的采样帧和插帧满足插帧比例的要求;
根据所述当前媒体流的源帧率和插帧比例,对所述当前媒体流进行解码;
根据所述插帧比例对解码后的当前媒体流进行插帧,并显示插帧后的当前媒体流。
9.根据权利要求8所述的方法,其特征在于,所述根据所述当前媒体流的源帧率和插帧比例,对所述当前媒体流进行解码,包括:
根据所述源帧率和所述插帧比例,确定所述当前媒体流的解码帧率;
采用所述解码帧率对所述当前媒体流进行解码,得到解码后的当前媒体流。
10.根据权利要求8所述的方法,其特征在于,所述根据所述插帧比例对解码后的当前媒体流进行插帧,包括:
在解码后的当前媒体流中确定对应的插帧标识;
根据所述插帧标识指向的目标流位置之前的已采样帧,在解码后的当前媒体流中的所述目标流位置处进行插帧。
11.一种媒体流处理装置,其特征在于,配置于服务端,所述装置包括:
媒体流信息确定模块,用于确定当前媒体流的网络运行性能特征和预置的源帧率;
插帧比例确定模块,用于根据所述网络运行性能特征,确定所述当前媒体流的插帧比例;
媒体流编码传输模块,用于根据所述源帧率和所述插帧比例,对所述当前媒体流进行编码,并传输给客户端:
其中,所述当前媒体流保持每间隔相应数量的采样帧,便保留一个插帧位置的格式,并取消所述插帧位置下的帧采样操作,使得所述当前媒体流内的采样帧和插帧满足所述插帧比例的要求。
12.一种媒体流处理装置,其特征在于,配置于客户端,所述装置包括:
媒体流接收模块,用于接收服务端传输的当前媒体流,所述当前媒体流保持每间隔相应数量的采样帧,便保留一个插帧位置的格式,使得所述当前媒体流内的采样帧和插帧满足插帧比例的要求;
媒体流解码模块,用于根据所述当前媒体流的源帧率和插帧比例,对所述当前媒体流进行解码;
媒体流插帧显示模块,用于根据所述插帧比例对解码后的当前媒体流进行插帧,并显示插帧后的当前媒体流。
13.一种电子设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1-10中任一项所述的媒体流处理方法。
14.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1-10中任一项所述的媒体流处理方法。
CN202210899769.6A 2022-07-28 2022-07-28 媒体流处理方法、装置、设备及存储介质 Active CN115278308B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210899769.6A CN115278308B (zh) 2022-07-28 2022-07-28 媒体流处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210899769.6A CN115278308B (zh) 2022-07-28 2022-07-28 媒体流处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115278308A CN115278308A (zh) 2022-11-01
CN115278308B true CN115278308B (zh) 2023-12-01

Family

ID=83771646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210899769.6A Active CN115278308B (zh) 2022-07-28 2022-07-28 媒体流处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115278308B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8619198B1 (en) * 2009-04-28 2013-12-31 Lucasfilm Entertainment Company Ltd. Adjusting frame rates for video applications
CN104079950A (zh) * 2014-07-04 2014-10-01 福建天晴数码有限公司 视频输出处理、视频接收处理的方法、装置和系统
CN104394486A (zh) * 2014-11-26 2015-03-04 中标软件有限公司 一种基于云桌面的视频流处理方法及装置
CN110149555A (zh) * 2018-08-14 2019-08-20 腾讯科技(深圳)有限公司 视频处理方法和视频接收装置
CN111050149A (zh) * 2019-12-24 2020-04-21 苏州乐梦光电科技有限公司 用于投影系统的视频处理方法、装置、设备及存储介质
CN111641828A (zh) * 2020-05-16 2020-09-08 Oppo广东移动通信有限公司 视频处理方法及装置、存储介质和电子设备
CN112492395A (zh) * 2020-11-30 2021-03-12 维沃移动通信有限公司 数据处理方法、装置及电子设备
CN112788235A (zh) * 2020-12-31 2021-05-11 深圳追一科技有限公司 图像处理方法、装置、终端设备及计算机可读取存储介质
CN113507637A (zh) * 2021-07-13 2021-10-15 北京字跳网络技术有限公司 媒体文件处理方法、装置、设备、可读存储介质及产品
WO2022001469A1 (zh) * 2020-07-01 2022-01-06 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备以及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE554602T1 (de) * 2008-08-21 2012-05-15 Vestel Elekt Sanayi Ve Ticaret Verfahren und vorrichtung zur steigerung der bildrate eines videosignals

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8619198B1 (en) * 2009-04-28 2013-12-31 Lucasfilm Entertainment Company Ltd. Adjusting frame rates for video applications
CN104079950A (zh) * 2014-07-04 2014-10-01 福建天晴数码有限公司 视频输出处理、视频接收处理的方法、装置和系统
CN104394486A (zh) * 2014-11-26 2015-03-04 中标软件有限公司 一种基于云桌面的视频流处理方法及装置
CN110149555A (zh) * 2018-08-14 2019-08-20 腾讯科技(深圳)有限公司 视频处理方法和视频接收装置
CN111050149A (zh) * 2019-12-24 2020-04-21 苏州乐梦光电科技有限公司 用于投影系统的视频处理方法、装置、设备及存储介质
CN111641828A (zh) * 2020-05-16 2020-09-08 Oppo广东移动通信有限公司 视频处理方法及装置、存储介质和电子设备
WO2022001469A1 (zh) * 2020-07-01 2022-01-06 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备以及存储介质
CN112492395A (zh) * 2020-11-30 2021-03-12 维沃移动通信有限公司 数据处理方法、装置及电子设备
CN112788235A (zh) * 2020-12-31 2021-05-11 深圳追一科技有限公司 图像处理方法、装置、终端设备及计算机可读取存储介质
CN113507637A (zh) * 2021-07-13 2021-10-15 北京字跳网络技术有限公司 媒体文件处理方法、装置、设备、可读存储介质及产品

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Unified framework of frame skipping and interpolation for efficient video compression;Sunyound Lee 等;《2009 IEEE International Conference on Network Infrastructure and Digital Content》;全文 *
视频压缩算法研究;杨克伟;《 CNKI优秀硕士学位论文全文库》;全文 *
适用于高清视频的帧率上变换算法研究与实现;韩睿;《万方学位论文》;全文 *

Also Published As

Publication number Publication date
CN115278308A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
US10045089B2 (en) Selection of encoder and decoder for a video communications session
CN110636346B (zh) 一种码率自适应切换方法、装置、电子设备及存储介质
RU2506715C2 (ru) Передача изменяющегося визуального контента
WO2016131223A1 (zh) 一种视频帧丢帧方法及视频发送装置
KR20180031547A (ko) 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치
CN110784740A (zh) 视频处理方法、装置、服务器及可读存储介质
US8407565B2 (en) System and method for producing importance rate-based rich media, and server applied to the same
CN105163134A (zh) 直播视频的视频编码参数设置方法、装置及视频编码设备
CN104010232A (zh) 一种智能播放在线视频的方法、系统、播放器及移动终端
WO2008108379A1 (ja) メディア配信システム、配信サーバ装置及びそれらに用いるメディア配信方法並びにそのプログラム
KR100987552B1 (ko) 이동 무선 연동 환경에서 저장된 비디오 스트리밍에 대한품질의 꾸준한 향상
US10484446B1 (en) VBR encoding of live content
CN104394484A (zh) 一种无线实时流媒体传输方法
US20120287338A1 (en) Video image coded data display method, device, and communications system
CN110248192B (zh) 编码器切换、解码器切换、屏幕分享方法和屏幕分享系统
US20130055326A1 (en) Techniques for dynamic switching between coded bitstreams
CN110267100A (zh) Flv视频的码率切换方法、装置、电子设备及存储介质
US20200296470A1 (en) Video playback method, terminal apparatus, and storage medium
KR20160028985A (ko) 적어도 2 개의 연속 세그먼트들로 스플릿되는 멀티미디어 컨텐츠를 수신하기 위한 방법 및 클라이언트 단말, 그리고 대응하는 컴퓨터 프로그램 제품 및 컴퓨터 판독가능 매체
US10708667B1 (en) Combining fragments with different encodings
US20120033727A1 (en) Efficient video codec implementation
CN114040245A (zh) 视频播放方法、装置、计算机存储介质和电子设备
CN113259729B (zh) 数据切换的方法、服务器、系统及存储介质
CN115278308B (zh) 媒体流处理方法、装置、设备及存储介质
CN115460458B (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