CN108495142A - 视频编码方法及装置 - Google Patents

视频编码方法及装置 Download PDF

Info

Publication number
CN108495142A
CN108495142A CN201810320093.4A CN201810320093A CN108495142A CN 108495142 A CN108495142 A CN 108495142A CN 201810320093 A CN201810320093 A CN 201810320093A CN 108495142 A CN108495142 A CN 108495142A
Authority
CN
China
Prior art keywords
coding
data volume
data
video
incremental count
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.)
Granted
Application number
CN201810320093.4A
Other languages
English (en)
Other versions
CN108495142B (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.)
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 CN201810320093.4A priority Critical patent/CN108495142B/zh
Publication of CN108495142A publication Critical patent/CN108495142A/zh
Application granted granted Critical
Publication of CN108495142B publication Critical patent/CN108495142B/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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 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/2405Monitoring of the internal components or processes of the server, e.g. server load
    • 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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 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, rendering scenes according to MPEG-4 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • 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/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets

Abstract

本申请是关于一种视频编码方法及装置。该方法包括:获取缓存数据的数据量变化信息,所述缓存数据包括已完成编码且待上传的视频数据,所述数据量变化信息用于指示所述缓存数据的数据量的变化情况;根据所述缓存数据的数据量变化信息确定编码参数,所述编码参数包括编码码率和编码帧率中的至少一种;根据确定的编码参数对尚未编码的视频帧进行编码;将编码获得的视频数据添加入所述缓存数据。通过本申请所示的方案,当缓存数据的数据量的变化情况指示网络状态较差时,可以通过较低的编码码率和/或编码帧率对后续的视频帧进行编码,减少单位播放时长的视频数据的数据量,降低播放终端的画面发生跳变的可能性。

Description

视频编码方法及装置
技术领域
本申请涉及图像处理技术领域,特别涉及一种视频编码方法及装置。
背景技术
随着移动互联网应用的不断发展,直播类的应用也越来越多,如何降低因直播源端的网络波动而引起的直播延时也已经成为应用服务商必须要解决的问题。
在相关技术中,上传终端将图像采集组件采集到的视频帧即时编码为视频数据,并将编码后的视频数据上传至服务器。其中,上传终端中设置有用于缓存待发送的视频数据的缓冲区,当上传终端与服务器之间的网络发生波动时,上传终端向服务器上传视频数据的带宽可能会受到影响,此时,缓冲区中的视频数据的数据量将会增加,当缓冲区中的视频数据达到缓冲区容量上限时,上传终端将缓冲区中的视频数据丢弃,并将新编码获得的视频数据存入缓冲区,以避免播放终端显示的直播画面延时过高。
然而,相关技术中所示的方案,因为达到缓冲区容量上限而被丢弃的视频数据不会被上传终端上传给服务器,当网络波动时间较长时,会导致播放终端显示的直播画面频繁发生跳变。
发明内容
本申请实施例提供了一种视频编码方法及装置,可以用于解决相关技术中因为达到缓冲区容量上限而被丢弃的视频数据不会被上传终端上传给服务器,当网络波动时间较长时,会导致播放终端显示的直播画面频繁发生跳变的问题,该技术方案如下:
一方面,提供了一种视频编码方法,所述方法包括:
获取缓存数据的数据量变化信息,所述缓存数据包括已完成编码且待上传的视频数据,所述数据量变化信息用于指示所述缓存数据的数据量的变化情况;
根据所述缓存数据的数据量变化信息确定编码参数,所述编码参数包括编码码率和编码帧率中的至少一种;
根据确定的编码参数对尚未编码的视频帧进行编码;
将编码获得的视频数据添加入所述缓存数据。
另一方面,提供了一种视频编码装置,所述装置包括:
信息获取模块,用于获取缓存数据的数据量变化信息,所述缓存数据包括已完成编码且待上传的视频数据,所述数据量变化信息用于指示所述缓存数据的数据量的变化情况;
参数确定模块,用于根据所述缓存数据的数据量变化信息确定编码参数,所述编码参数包括编码码率和编码帧率中的至少一种;
编码模块,用于根据确定的编码参数对尚未编码的视频帧进行编码;
添加模块,用于将编码获得的视频数据添加入所述缓存数据。
另一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述的视频编码方法。
又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述的视频编码方法。
本申请提供的技术方案可以包括以下有益效果:
通过本申请所示的方案,上传终端根据缓存数据的数据量的变化情况来确定对后续视频帧进行编码所使用的编码码率和/或编码帧率,当缓存数据的数据量的变化情况指示网络状态较差时,可以通过较低的编码码率和/或编码帧率对后续的视频帧进行编码,减少单位播放时长的视频数据的数据量,降低播放终端的画面发生跳变的可能性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种视频数据上传系统的结构示意图;
图2是图1所示实施例涉及的一种开启直播的界面示意图;
图3是是根据一示例性实施例示出的一种视频编码方法的流程图;
图4是图3所示实施例涉及的一种上传终端的基本结构示意图;
图5是根据一示例性实施例示出的一种视频编码方法的流程图;
图6是图4所示实施例涉及的一种丢帧策略示意图;
图7是根据一示例性实施例示出的主播对应的终端的结构示意图;
图8是图7所示实施例涉及的编码参数自适应调节的逻辑示意图;
图9是图7所示实施例涉及的码率和帧率的自适应过程示意图;
图10是根据一示例性实施例示出的视频编码装置的结构方框图;
图11是根据一示例性实施例示出的一种终端的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种视频数据上传系统的结构示意图。该系统包括:上传终端120和服务器集群140。
上传终端120可以是手机、平板电脑、电子书阅读器、智能眼镜、智能手表、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
上传终端120对应有图像采集组件。其中,该图像采集组件可以是上传终端120的一部分,比如,该图像采集组件可以是上传终端120内置的摄像头;或者,该图像采集组件也可以作为上传终端120的外设设备与该上传终端120相连接。或者,上述图像采集组件也可以是上传终端120中的软件组件,比如,该图像采集组件可以是上传终端120中的录屏组件,该录屏组件用于对终端屏幕中显示的屏幕画面进行录制。
上传终端120与服务器集群140之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
在本申请实施例中,上传终端120可以在本地对图像采集组件采集到的视频帧进行编码,并将编码获得的视频数据上传给服务器集群140。
可选的,上传终端120还对应有音频采集组件。比如,该音频采集组件可以是终端120内置或者外设的麦克风。上传终端120可以通过音频采集组件采集音频帧,并将采集到的音频帧编码为音频数据,并将编码获得的音频数据连通上述音频数据一并上传给服务器集群140。
服务器集群140可以是一台服务器,或者服务器集群140也可以是由若干台服务器组成的集群,或者服务器集群140也可以是一个虚拟化平台,或者服务器集群140也可以是一个云计算服务中心。
可选的,该系统还包括若干个播放终端160,且播放终端160与服务器集群140之间也通过通信网络相连。该播放终端160可以是手机、平板电脑、电子书阅读器、智能眼镜、智能手表、MP3播放器、MP4播放器、膝上型便携计算机和台式计算机等等。
服务器集群140可以将上传终端120上传的视频数据(可选包括音频数据)发送给播放终端160,由播放终端160对视频数据进行解码并播放。
可选的,该系统还可以包括管理设备(图1未示出),该管理设备与服务器集群140之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
上述图1所示的视频数据上传系统可以用于各种需要将一个终端采集的视频及时发送给其它终端进行播放的场景,比如,直播场景、视频聊天场景或者视频会议场景。
其中,在直播场景中,主播对应的终端为上传终端,观众对应的终端为播放终端,主播对应的终端采集主播侧的直播画面(对应上述视频帧),将视频帧编码为直播数据流(对应上述视频数据),并将编码获得的直播数据流上传至服务器,服务器将该直播数据流发送给观众的终端,由观众的终端对直播数据流进行解码获得直播画面,并对直播画面进行播放展示。比如,请参考图2,其示出了一种开启直播的界面示意图。如图2所示,主播的终端中安装有名为“XX时刻”的直播应用程序,终端检测到主播在应用程序主界面210中点击入口控件211后,终端展示主界面210的下一级界面220,该下一级界面220中包含直播入口221,终端检测到主播点击直播入口221后,进入直播界面230,并在检测到主播点击直播界面230中的启动控件231后开始直播。
在视频聊天场景或者视频会议场景中,参与视频聊天或者视频会议的每个终端都可以同时作为上传终端和播放终端。当参与视频聊天或者视频会议的终端作为上传终端时,该终端采集本侧的实时聊天画面(对应上述视频帧),将实时聊天画面编码为视频数据流(对应上述视频数据),并将编码获得的视频数据流上传至服务器,服务器将该视频数据流发送给参与视频聊天或者视频会议的其它终端,由其它终端对视频数据流进行解码获得实时聊天画面,并对实时聊天画面进行播放展示;而当该终端作为播放终端时,该终端接收由服务器转发的,参与视频聊天或者视频会议的其它终端上传的视频数据流,解码获得其它终端侧的实时聊天画面并进行播放展示。
在本申请所示的方案中,上传终端在将采集到的视频帧即时编码并上传的过程中,可以监控已经编码完成但是尚未上传至服务器的视频数据的数据量,并结合已经编码完成但是尚未上传至服务器的视频数据的数据量的变化情况来调节编码参数,该调节编码参数的过程可以如图3所示。
图3是根据一示例性实施例示出的一种视频编码方法的流程图,该视频编码方法可以用于终端中,比如,该方法可以用于上述图1所示的上传终端120中。如图3所示,该视频编码方法可以包括如下步骤:
步骤31,获取缓存数据的数据量变化信息,该缓存数据包括已完成编码且待上传的视频数据,该数据量变化信息用于指示该缓存数据的数据量的变化情况。
上传终端在对图像采集组件采集到的视频帧进行编码并即时上传时,因为网络波动等因素,可能存在编码获得的视频数据未能在第一时间被上传至服务器的情况,在本申请实施例中,上传终端中已完成编码且待上传的视频数据称为缓存数据,且编码和上传的过程并行执行,上传终端将编码获得的视频数据添加至缓存数据,同时,从缓存数据中提取视频数据进行上传。
步骤32,根据该缓存数据的数据量变化信息确定编码参数,该编码参数包括编码码率和编码帧率中的至少一种。
步骤33,根据确定的编码参数对尚未编码的视频帧进行编码。
步骤34,将编码获得的视频数据添加入该缓存数据。
请参考图4,其示出了本申请实施例涉及的一种上传终端的基本结构示意图。如图4所示,在上传终端中,图像采集组件401用于采集获得一系列视频帧,在图像采集组件401采集新的视频帧的同时,上传终端中的编码组件402按照采集的时间顺序,对已采集的视频帧进行逐帧编码,获得编码后的视频数据,并将编码后的视频数据添加至缓存数据中,并且,在编码组件402编码获得新的视频数据的同时,上传终端中的推流组件403还按照编码的先后顺序将缓存数据上传给服务器,由服务器提供给其它播放终端进行播放展示。
在图4所示的将视频帧即时编码并上传的过程中,由于视频帧采集和编码的速率相对恒定,当网络状态发送波动时,若上传带宽变小,则编码的速率(即单位时间内编码获得的视频数据的数据量)可能会大于上传的速率(即单位时间内成功上传到服务器的视频数据的数据量),此时,缓存在本地尚未来得及上传的视频数据的数据量会逐渐增加;相应的,若上传带宽变大,则编码的速率可能会小于上传的速率,此时缓存在本地尚未来得及上传的视频数据的数据量会逐渐降低。也就是说,缓存在本地尚未来得及上传的视频数据的数据量的变化情况,在一定程度上能够体现上传终端和服务器之间的网络波动情况。如图4所示,在本申请实施例中,上传终端中的编码组件402和推流组件403在执行上述编码和上传的步骤的同时,上传终端中的参数调节组件404还可以获取缓存数据的数据量的变化情况,根据该数据量的变化情况确定编码参数(即编码帧率和/或编码码率),在对视频帧进行编码时,上传终端中的编码组件402按照新确定的编码参数对后续的视频帧进行编码。
比如,当缓存数据的数据量的变化情况指示当前网络状况变差时,上传终端中的编码组件402可以通过较低的编码码率和/或编码帧率对后续的视频帧进行编码,从而降低单位播放时长的视频数据的数据量,降低因缓存的视频数据过多而丢弃部分视频数据的可能性,从而尽可能的避免播放终端显示的画面发生跳变;反之,当缓存数据的数据量的变化情况指示当前网络状况好转时,上传终端中的编码组件402可以通过较高的编码码率和/或编码帧率对后续的视频帧进行编码,从而保证播放终端播放的画面的流畅度。
可选的,在本申请实施例中,除了可以根据缓存数据的数据量变化信息进行编码参数的自适应调节之外,上传终端还可以根据缓存数据的数据量变化信息进行采集分辨率的自适应调节,也就是说,上传终端还可以根据上述缓存数据的数据量变化信息确定图像采集组件采集视频帧的采集分辨率,并控制图像采集组件按照确定的采集分辨率采集后续的视频帧。
比如,在图4所示的方案中,上传终端中的参数调节组件404还可以根据数据量的变化情况确定采集分辨率,在采集视频帧时,上传终端中的图像采集组件401按照新确定的采集分辨率采集后续的视频帧。
综上所述,通过上述图3所示的方案,上传终端根据缓存数据的数据量的变化情况来确定对后续视频帧进行编码所使用的编码码率和/或编码帧率,当缓存数据的数据量的变化情况指示网络状态较差时,可以通过较低的编码码率和/或编码帧率对后续的视频帧进行编码,减少单位播放时长的视频数据的数据量,降低播放终端的画面发生跳变的可能性,当缓存数据的数据量的变化情况指示网络状态好转时,可以通过较高的编码码率和/或编码帧率对后续的视频帧进行编码,保证播放终端的画面的流畅度。
在本申请所示的方案中,在通过已完成编码且待上传的视频数据的数据量的变化情况来指示当前网络状态变差或者好转时,如果已完成编码且待上传的视频数据的数据量持续增加,则可以认为当前网络状态变差,反之,如果已完成编码且待上传的视频数据的数据量持续减少,则可以认为当前网络状态好转,上传终端继而根据当前网络状态变差或者好转来确定编码参数。在一种可能的实现方式中,上传终端根据已完成编码且待上传的视频数据的数据量持续增加或持续减少的情况确定编码参数,并根据确定的编码参数对后续的视频帧进行编码的方案可以参考图5所示的方法。
图5是根据一示例性实施例示出的一种视频编码方法的流程图,该视频编码方法可以用于终端中,比如,该方法可以用于上述图1所示的上传终端120。如图5所示,该视频编码方法可以包括如下步骤:
步骤501,在对图像采集组件采集到的视频帧进行编码并上传的过程中,获取前一预定周期内的至少两个采样时间点上的采样数值,该采样数值与缓存数据在该采样数值对应的采样时间点上的数据量成正相关。
上述缓存数据包括已完成编码且待上传的视频数据。
在本申请实施例中,上传终端可以针对缓存数据,按照预定周期进行采样,即在每个预定周期内的至少两个采样时间点上,对缓存数据的数据量进行采样,每个采样时间点上采样获得采样数值与缓存数据在该采样时间点上的数据量成正相关,也就是说,缓存数据在某个采样时间点的数据量越大,该采样时间点对应的采样数值也越大,反之,缓存数据在某个采样时间点的数据量越小,该采样时间点对应的采样数值也越小。
在一种可能的实现方式中,缓存数据的数据量可以是绝对数据量,比如,500kB或者21.3MB等。
在另一种可能的实现方式中,缓存数据的数据量也可以是相对数据量。比如,当缓存数据存在数据量上限时,缓存数据的数据量可以是相对于该数据量上限的百分比(比如10%、50%或者80%等);或者,当缓存数据以数据包队列形式存在时,缓存数据的数据量也可以是数据包队列的队列长度(或者数据包数量);或者,当缓存数据由若干个图像群组(Group of Pictures,GOP)构成时,该缓存数据的数据量可以表示为图像群组数或者若干个图像群组中包含的图像帧总数。
在本申请实施例中,上传终端可以直接将缓存数据在某个采样时间点上的数据量获取为该采样时间点上的采样数值。或者,该上传终端也可以根据缓存数据在某个采样时间点上的数据量计算该采样时间点上的采样数值,比如,上传终端可以将缓存数据在某个采样时间点上的数据量乘以一预定系数,获得该采样时间点上的采样数值。
步骤502,根据该至少两个采样时间点上的采样数值的变化趋势对数据量递增计数进行更新。
其中,上述数据量递增计数可以用于指示缓存数据的数据量递增的时长与数据量递减的时长之间的差值。上传设备对数据量递增计数进行更新的过程可以如下:
步骤502a,获取该至少两个采样时间点上的采样数值的变化趋势。
在本申请实施例中,上传终端可以分析上一预定周期内的至少两个采样时间点上的采样数值的变化趋势,其中,至少两个采样时间点上的采样数值的变化趋势可以包括但不限于以下几种:
a、按时间顺序递增。
在本申请实施例中,当至少两个采样时间点上的采样数值按照采样时间顺序排列后,对于其中任意相邻的两个采样数值,若后一个采样数值总是大于前一个采样数值,则可以认为该至少两个采样时间点上的采样数值的变化趋势为按时间顺序递增,而只要其中存在后一个采样数值不大于前一个采样数值的相邻两个采样数值,则认为该至少两个采样时间点上的采样数值的变化趋势不是按时间顺序递增。
比如,以一个预定周期内进行5次采样为例,若5次采样的采样数值按照采样时间顺序排列为{1,2,4,5,6},则可以认为该5次采样的采样数值的变化趋势为按时间顺序递增。
b、按时间顺序递减。
在本申请实施例中,当至少两个采样时间点上的采样数值按照采样时间顺序排列后,对于其中任意相邻的两个采样数值,若后一个采样数值总是小于前一个采样数值,则可以认为该至少两个采样时间点上的采样数值的变化趋势为按时间顺序递减,而只要其中存在后一个采样数值不小于前一个采样数值的相邻两个采样数值,则认为该至少两个采样时间点上的采样数值的变化趋势不是按时间顺序递减。
比如,以一个预定周期内进行5次采样为例,若5次采样的采样数值按照采样时间顺序排列为{6,5,4,2,1},则可以认为该5次采样的采样数值的变化趋势为按时间顺序递减。
c、其它变化趋势。
在本申请实施例中,除了属于上述按时间顺序递减和按时间顺序递减之外的变化趋势,可以统称为其它变化趋势,比如至少两个采样时间点上的采样数值按时间顺序先增加后减小,或者,按时间顺序先减小后增大,或者,保持不变等等。
步骤502b,当该至少两个采样时间点上的采样数值的变化趋势为按时间顺序递增时,将该数据量递增计数加一。
在本申请实施例中,当至少两个采样时间点上的采样数值的变化趋势是按时间递增时,说明在上一个预定周期内,缓存数据的数据量逐渐增加,即上传终端编码获得视频数据的速率高于上传终端向服务器上传视频数据的速率,很可能是因为上一个预定周期内上传终端和服务器之间的网络状态变差引起的,此时,上传终端可以将数据量递增计数加1。
在本申请实施例中,将数据量递增计数加一的变化趋势也可以扩展到其它总体上呈逐渐增加状态的变化趋势,比如,当至少两个采样时间点上的采样数值先保持不变,后呈递增趋势时,也可以认为上一个预定周期内缓存数据的数据量逐渐增加,此时可以将数据量递增计数加1。
步骤502c,当该至少两个采样时间点上的采样数值的变化趋势为按时间顺序递减,且该数据量递增计数大于零时,将该数据量递增计数减一。
在本申请实施例中,当至少两个采样时间点上的采样数值的变化趋势是按时间递减时,说明在上一个预定周期内,缓存数据的数据量逐渐增少,即上传终端编码获得视频数据的速率低于上传终端向服务器上传视频数据的速率,很可能是因为上一个预定周期内上传终端和服务器之间的网络状态好转引起的,此时,若数据量递增计数大于0(即大于或者等于1),则上传终端可以将数据量递增计数减1。反之,若次数数据量递增计数为0,则不需要对数据量递增计数进行调整。
在本申请实施例中,将数据量递增计数减一的变化趋势也可以扩展到其它总体上呈逐渐减少状态的变化趋势,比如,当至少两个采样时间点上的采样数值先保持不变,后呈递减趋势时,也可以认为上一个预定周期内缓存数据的数据量逐渐减少,此时可以将数据量递增计数减1。
在实际应用中,上传终端和服务器之间细微的网络波动也可能缓存数据在一个预定周期内的变化趋势满足将数据量递增计数加一或者减一的情况,而在该预定周期内,缓存数据的数据量的变化可能非常小,而在这种非常小的数据量的变化下,上传终端通常没有必要对编码参数进行调整。因此,在本申请实施例中,上传终端在根据该至少两个采样时间点上的采样数值的变化趋势对该数据量递增计数进行更新之前,还可以先计算至少两个采样时间点上的采样数值中的最大值和最小值之间的差值,并将该差值与预设差值阈值进行比较,只有当该至少两个采样时间点上的采样数值中的最大值和最小值之间的差值大于预设差值阈值时,才根据该至少两个采样时间点上的采样数值的变化趋势对该数据量递增计数进行更新,从而避免对数据量递增计数进行不必要的更新。
基于上述方案,当上述数据量递增计数不断变大时,说明在多个预定周期内,缓存数据的数据量总体上一直在增加,说明上传终端和服务器之间的网络状态持续较差,需要对上传终端对应的用户进行提醒。在本申请实施例中,当更新后的该数据量递增计数超过预设的计数阈值时,上传终端还可以展示提醒信息,该提醒信息用于提示网络状态不良,以便用户自行决定是否需要采取必要的措施,比如手动降低图像采集的分辨率,或者停止上传视频数据等。
步骤503,在调整编码参数时,获取数据量递增计数。
其中,上传终端获取到的数据量递增计数即为上述数据量变化信息。
在本申请实施例中,上传终端可以周期性的根据数据量递增计数调整编码参数,或者,当某种条件被触发时,上传终端可以根据数据量递增计数调整编码参数。
比如,上传终端可以每隔一个固定的周期获取一次数据量递增计数;或者,当数据量递增计数被更新时,上传终端可以获取更新后的数据量递增计数。
步骤504,查询该数据量递增计数对应的编码参数。
在本申请实施例中,上传终端可以预先存储数据量递增计数与编码参数之间的对应关系表,在调整编码参数时,上传终端可以根据获取到的数据量递增计数,查询对应的编码参数。
比如,以上述编码参数包括编码码率和编码帧率为例,数据量递增计数与编码参数之间的对应关系如下表1所示。
计数 0 1 2 3 ≥4
编码码率 rmax rmax*0.75 rmax*0.75 rmax*0.5 rmax*0.5
编码帧率 fmax fmax fmax*0.75 fmax*0.75 fmax*0.5
表1
在上述表1中,rmax为预设的最大编码码率,fmax为预设的最大编码帧率,当数据量递增计数为0时,上传终端按照最大编码码率和最大编码帧率进行编码;当数据量递增计数增加为1时,上传终端保持最大编码帧率不变,将编码码率缩小1/4;当数据量递增计数增加为2时,上传终端进一步将编码帧率缩小1/4,以此类推,直至数据量递增计数增加至4以上,上传终端保持编码码率和编码帧率分别为最大编码码率和最大编码帧率的一半。相应的,当数据量递增计数减小时,上传终端也会按照上述表1逐渐增大编码码率和/或编码帧率,直至编码码率和编码帧率达到上述最大编码码率和最大编码帧率。
步骤505,根据确定的编码参数对尚未编码的视频帧进行编码。
在本申请实施例中,当编码参数中包含编码码率时,上传终端可以按照该编码码率对尚未编码的视频帧进行编码。
当该编码参数包括编码帧率时,上传终端首先对尚未编码的视频帧进行编码,获得帧率为固定的初始帧率的编码数据,然后再最初始帧率的编码数据进行帧率调整,获得帧率为确定的编码参数中包含的编码帧率的视频数据。其中,这里的初始帧率可以等于上述表1中的最大编码帧率,或者,该初始帧率也可以大于上述表1中的最大编码帧率。
在本申请实施例中,编码后的视频数据由若干个GOP组成,其中,每个GOP包含I帧和P帧,可选的,一个GOP中还包含B帧。其中,I帧为是内部编码帧,P是前向预测帧,B是双向内插帧。通常来说,I帧是一个完整的画面,而P帧和B帧记录的是相对于I帧的变化。在本申请实施例中,动态的帧率调节主要通过丢帧策略来实现,而常用的丢帧策略(比如随机丢帧、以GOP为单位丢帧或者将音频帧连同视频帧一起丢弃等)会引起花屏、爆音或者音画不同步等问题。而本申请所示的方案,只针对于GOP进行丢帧处理,对于音频帧则不做丢帧处理,优先保证音频帧的传输,避免了爆音或者音画不同步等问题。
比如,当编码参数包括的该编码帧率低于初始帧率时,上传终端将对尚未编码的视频帧进行编码获得的图像群组中的最后n个前向预测帧丢弃;其中,该初始帧率是编码获得的图像群组的帧率,n=(1-f1/f2)*N,其中,f1为该编码帧率,f2为该初始帧率,N为该图像群组中的总帧数。
由于GOP内部的丢帧会导致花屏,本申请实施例所示方案的丢帧策略只丢弃GOP的最末尾的P帧,在播放终端只会感知轻微的画面跳变,避免了花屏的现象。比如,请参考图6,其示出了本申请实施例涉及的一种丢帧策略示意图。如图6所示,一个GOP的第一帧为I帧,该I帧之后包含若干个P帧,结合上述表1,以初始编码帧率等于最大编码帧率,GOP中的P帧数量是N为例,当数据量递增计数为0或1时,上传终端确定编码参数包括的编码帧率为最大编码帧率,此时,不对编码后获得的GOP做丢帧处理,直接将其作为编码获得的视频数据;当数据量递增计数为2或3时,上传终端确定编码参数包括的编码帧率为最大编码帧率*0.75,上传终端将编码后获得的GOP中末尾的N/4个P帧丢弃,并将丢帧后的GOP作为编码获得的视频数据;当数据量递增计数大于或者等于4时,上传终端确定编码参数包括的编码帧率为最大编码帧率*0.5,上传终端将编码后获得的GOP中末尾的N/2个P帧丢弃,并将丢帧后的GOP作为编码获得的视频数据。
可选的,在另一种可能的实现方式中,在根据该至少两个采样时间点上的采样数值的变化趋势对该数据量递增计数进行更新之前,上传终端可以获取该至少两个采样时间点上的采样数值的平均值;当该平均值高于预设平均值阈值时,根据预定编码参数对尚未编码的视频帧进行编码。
在本申请实施例中,若上述步骤501获取的前一预定周期内的至少两个采样时间点上的采样数值的平均值大于预设平均值阈值,则说明缓存数据的数据量已经较大,此时,上传终端可以直接以一个预定的编码参数进行编码,该预定的编码参数可以是一个较小的编码码率和/或编码帧率。
以表1为例,上述预定的编码参数可以等于最小编码参数,即预定编码参数中的编码码率为rmax*0.5,且预定编码参数中的编码码率为fmax*0.5;或者,上述预定的编码参数也可以小于最小编码参数,即预定编码参数中的编码码率小于rmax*0.5,且预定编码参数中的编码码率小于fmax*0.5。
步骤506,将编码获得的视频数据添加入该缓存数据。
可选的,在本申请实施例中,当缓存数据的数据量已经达到数据量上限时,上传终端可以直接将最近编码获得的视频数据丢弃。
或者,在另一种可能的实现方式中,当缓存数据的数据量已经达到数据量上限时,上传终端也可以直接将缓存数据清空,同时将数据量递增计数归零。
综上所述,本申请实施例所示的方案,上传终端根据缓存数据的数据量在预定周期内的递增情况或者递减情况来更新数据量递增计数,并根据该数据量递增计数确定对后续视频帧进行编码所使用的编码码率和/或编码帧率,当该数据量递增计数指示网络状态较差时,可以通过较低的编码码率和/或编码帧率对后续的视频帧进行编码,减少单位播放时长的视频数据的数据量,降低播放终端的画面发生跳变的可能性,当数据量递增计数指示网络状态好转时,可以通过较高的编码码率和/或编码帧率对后续的视频帧进行编码,保证播放终端的画面的流畅度。
此外,本申请实施例所示的方案,在根据缓存数据在一个预定周期内的数据量的变化情况更新数据量递增计数时,上传终端检测缓存数据在该预定周期内的数据量的最大值和最小值之间的差值是否大于预设的差值阈值,只有在差值大于预设差值阈值时才执行后续的更新步骤,避免了不必要的计数更新和参数调整。
另外,本申请实施例所示的方案,在需要根据编码帧率丢帧时,仅丢弃每个GOP组中处于末尾的P帧,避免因简单粗暴的丢帧处理而导致的花屏现象。
相对于传统的个人计算机摄像头直播,移动直播的网络环境尤为复杂,网络的上行带宽受3G/4G/Wi-Fi等无线信号的强度影响很大,固定码率传输极易受带宽波动的影响导致传输拥堵,甚至严重丢包。而本申请上述方案应用于直播场景时,可以实时监控直播视频流的上传缓存,通过上传缓存来间接确定上传的速率/丢帧情况,进而适时调整视频的编码码率和帧率,从而使上传缓存和丢帧率保持最低水平,提升播放侧的观看流畅度。
以上述图3或图5所示的方案应用于直播场景为例,请参考图7,其是根据本申请一示例性实施例示出的主播对应的终端(相当于上述的上传终端)的结构示意图。如图7所示,一个主播对应的终端主要有采集线程、编码线程以及推流线程三大基本线程组成,可选的,主播对应的终端还可以包含美颜/降噪等预处理模块。主播对应的终端的缓存中还设置有帧队列(FrameQueue)和包队列(PackageQueue)。
其中,采集线程可以包含图像采集线程(比如基于图像采集组件的采集线程)和声音采集线程(比如基于麦克风组件的采集线程)。其中,图像采集线程可以用于采集包括YUV格式或者RGB格式在内的各种格式的视频帧,声音采集线程可以用于采集音频帧。
编码线程可以包含视频编码线程和音频编码线程。其中,视频编码可以包括H264编码,音频编码可以包括AAC(Advanced Audio Coding,高级音频编码)等。
推流线程主要负责将音视频包(包括上述各个实施例中提及的视频数据,以及音频数据)上传到服务器。
帧队列用于缓存采集线程采集到的视频帧和音频帧数据,是连接采集线程与编码线程的桥梁,采集线程将获取到的视频帧和音频帧数据存入其中,编码线程在从中取出视频帧和音频帧数据编码成视频数据(比如有若干个GOP组成的H264数据)和音频数据(比如AAC数据)。
包队列用于缓存视频数据和音频数据,是连接编码线程与推流线程的桥梁,编码线程将编码过后的视频数据和音频数据存入其中,推流线程再从其中取出数据进行发送。这里的包队列就相当于上述缓存数据。
在理想情况下帧队列和包队列应该始终保持收支平衡,即始终保持在某个阈值以下。一旦这两个队列的大小超过了设定的阈值,就会导致观看端卡顿以及延时增加,影响整个用户体验。
其中,帧队列超过阈值,可能是由于编码的速度赶不上采集的帧率,一般是由于性能不高的处理器使用了软编码所致,解决方法可以是改用硬编码,或者降低采集图像的分辨率或者帧率。
而包队列超过阈值,通常的原因是网络上传的速率赶不上编码数据的码率。
根据上文的介绍,包队列长度超过阈值,主要是由于网络的上行带宽低于视频编码码率所导致,所以要让包队列始终保持收支平衡,就必须让编码线程输出的数据量能随着网络带宽的波动作出动态调整,这也是本方案提供的的编码参数自适应调节技术的核心所在。在本申请实施例中,主播对应的终端中还设置有一个包队列状态监控器,用于监控包队列的数据量变化情况,以便实现动态的码率调节和帧率调节,其主要的控制逻辑可以如下:
首先,预设如下参数:
默认码率:bitrate(比如,bitrate可以为800kpbs);
默认帧率:fps(比如,fps可以为20);
最低码率:min_bitrate=bitrate*0.5,其中,bitrate为最大码率;
最低帧率:min_fps=fps*0.5,其中,fps为最大帧率;
包队列最大阈值:max_size(比如max_size可以为40,即包队列中最多可以缓存40帧);
包队列大小采样间隔:interval(比如,interval可以为1s,即对包队列中的数据量进行采样的间隔为1s);
包队列当前采样值:size;
用于保存每次的采样值的数组:size_array;
采样周期:callback_interval(比如,callback_interval可以为interval*5,即每采样5次做一次编码参数自适应调节)。
请参考图8,其示出了本申请实施例涉及的编码参数自适应调节的逻辑示意图。如图8所示,该编码参数自适应调节的具体实现步骤如下:
包队列状态监控器,每隔interval时间采样包队列的长度,并将该值保存到数组size_array中,在网络上行带宽足够的情况下,size_array中的数据应该全为0,即没有缓存数据,每一帧都可以及时发送。
当发生网络波动,上行带宽变小时,一个采样周期内size_array中的数据会呈现单调递增,此时会更新累计发生单调递增的次数iTime(将iTime加1),来触发相应的动态码率调节机制以及丢帧策略,在图8中,iTime为0时,编码码率为bitrate,编码帧率为fps;当iTime为1时,编码码率为bitrate*0.75,编码帧率为fps;当iTime为2时,编码码率为bitrate*0.75,编码帧率为fps*0.75;当iTime≥3时,编码码率为最低编码码率bitrate*0.5,编码帧率为最低编码帧率fps*0.5。当size_array中数据的平均值大于max_size,直接设置为最低的编码码率与编码帧率。
当网络波动持续时间较长,即iTime≥4时,此时触发网络警告逻辑,在用户界面(User Interface,UI)上提示用户当前网络不稳定,直播会发生卡顿/延时。
当网络恢复时,一个采样周期内size_array中的数据会呈现单调递减,编码码率与编码帧率也会逐步恢复到默认水平。
每次采样周期处理结束后,清空size_array。
基于上述图8所示的处理步骤,一次网络波动触发的码率和帧率的自适应过程示意图可以如图9所示。
本申请所示的方案可以应用于Android平台、iOS平台或者不兼容硬编码的软编码平台中,其中,不同平台的实现代码如下:
一、Android平台
1)Android平台采用MediaCodec进行硬件编码,实现如下:
配置时设置目标码率和码率控制方式的部分代码:
mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE,bitRate);//设置码率
mediaFormat.setInteger(MediaFormat.KEY_BITRATE_MODE,MediaCodecInfo.EncoderCapabilities.BITRATE_MODE_VBR);//设置编码模式为VBR(动态码率)
mVideoCodec.configure(mediaFormat,null,null,
MediaCodec.CONFIGURE_FLAG_ENCODE);//配置编码器
其中,bitrate为预设的目标码率。
2)触发动态码率调节时动态调整目标码率的部分代码:
Bundle param=new Bundle();//创建码率参数
param.putInt(MediaCodec.PARAMETER_KEY_VIDEO_BITRATE,bitrate);
mediaCodec.setParameters(param);//给当前编码器动态设置码率
其中,bitrate为动态调整的目标码率。
二、iOS平台
iOS平台采用VideoToolBox进行硬件编码,实现如下:
1)配置时设置目标码率的部分代码:
VTSessionSetProperty(compressionSession,
kVTCompressionPropertyKey_AverageBitRate,
(__bridge CFTypeRef)@(videoBitRate));//设置码率,均值,单位是bps
NSArray*limit=@[@(videoBitRate*1.5/8),@(1)];
VTSessionSetProperty(compressionSession,
kVTCompressionPropertyKey_DataRateLimits,(__bridge CFArrayRef)limit);
VTCompressionSessionPrepareToEncodeFrames(compressionSession);//设置码率,上限,单位是byte
2)触发动态码率调节时动态调整目标码率的部分代码:
VTSessionSetProperty(compressionSession,
kVTCompressionPropertyKey_AverageBitRate,(__bridge CFTypeRef)@(bitRate));//设置码率,均值,单位是bps
NSArray*limit=@[@(bitRate*1.5/8),@(1)];
VTSessionSetProperty(compressionSession,
kVTCompressionPropertyKey_DataRateLimits,(__bridge CFArrayRef)limit);//设置码率,上限,单位是byte
三、软编码:
软编码采用x264编码器,适用在硬编码不兼容的终端上,其实现如下:
1)配置时设置目标码率的部分代码:
x264_param_t param;//首先,在x264_encoder_open之前设置:
param.rc.i_vbv_max_bitrate=maxBitrate;//设置的最大码率
param.rc.i_bitrate=bitrate;//设置预设码率
param.rc.i_vbv_buffer_size=bufsize;//设置缓冲区大小
2)触发动态码率调节时动态调整目标码率的部分代码:
param.rc.i_rc_method=X264_RC_ABR;//设置码率控制模式为ABR(恒定目标码率)
param.rc.i_vbv_max_bitrate=maxBitrate;//设置的最大码率
param.rc.i_bitrate=bitrate;//设置预设码率
param.rc.i_vbv_buffer_size=bufsize;//设置缓冲区大小
x264_encoder_reconfig(p264,&param)//重新配置编码器
本实施例上述方案应用于直播场景中时,能有效应对在直播过程中由网络波动产生的卡顿/延时/花屏等问题,提高直播推流的稳定性,从而保证直播观看段的用户体验。
此外,本本申请所示的方案核心是提出了一种码率和/帧率的自适应调节逻辑,除了上述android/iOS平台适用的硬件编码方案外,上述软编码(即x264编码)方案也可以适用于个人计算机平台。
图10是根据一示例性实施例示出的一种视频编码装置的结构方框图。该视频编码装置可以用于如图1所示系统所包含的上传终端120中,以执行图3或图5所示实施例提供的方法的全部或者部分步骤。该视频编码装置可以包括:
信息获取模块1001,用于获取缓存数据的数据量变化信息,所述缓存数据包括已完成编码且待上传的视频数据,所述数据量变化信息用于指示所述缓存数据的数据量的变化情况;
参数确定模块1002,用于根据所述缓存数据的数据量变化信息确定编码参数,所述编码参数包括编码码率和编码帧率中的至少一种;
编码模块1003,用于根据确定的编码参数对尚未编码的视频帧进行编码;
添加模块1004,用于将编码获得的视频数据添加入所述缓存数据。
可选的,所述信息获取模块1001,具体用于获取数据量递增计数,所述数据量递增计数用于指示缓存数据的数据量递增的时长与数据量递减的时长之间的差值;
所述参数确定模块1002,具体用于查询所述数据量递增计数对应的所述编码参数。
可选的,所述装置还包括:
采样数值获取模块,用于在所述信息获取模块获取数据量递增计数之前,获取前一预定周期内的至少两个采样时间点上的采样数值,所述采样数值与所述缓存数据在所述采样数值对应的采样时间点上的数据量成正相关;
数值更新模块,用于根据所述至少两个采样时间点上的采样数值的变化趋势对所述数据量递增计数进行更新。
可选的,所述数值更新模块,具体用于当所述至少两个采样时间点上的采样数值的变化趋势为按时间顺序递增时,将所述数据量递增计数加一。
可选的,所述数值更新模块,具体用于当所述至少两个采样时间点上的采样数值的变化趋势为按时间顺序递减,且所述数据量递增计数大于零时,将所述数据量递增计数减一。
可选的,所述数值更新模块,具体用于当所述至少两个采样时间点上的采样数值中的最大值和最小值之间的差值大于预设差值阈值时,根据所述至少两个采样时间点上的采样数值的变化趋势对所述数据量递增计数进行更新。
可选的,所述装置还包括:
提醒模块,用于当更新后的所述数据量递增计数超过预设的计数阈值时,展示提醒信息,所述提醒信息用于提示网络状态不良。
可选的,所述装置还包括:
平均值获取模块,用于在所述数值更新模块根据所述至少两个采样时间点上的采样数值的变化趋势对所述数据量递增计数进行更新之前,获取所述至少两个采样时间点上的采样数值的平均值;
所述编码模块1003,还用于当所述平均值高于预设平均值阈值时,根据预定编码参数对尚未编码的视频帧进行编码。
可选的,所述编码模块1003,具体用于当所述编码参数包括编码帧率,且所述编码帧率低于初始帧率时,将对尚未编码的视频帧进行编码获得的图像群组中的最后n个前向预测帧丢弃;
其中,所述初始帧率是编码获得的图像群组的帧率,n=(f1/f2)*N,其中,f1为所述编码帧率,f2为所述初始帧率,N为所述图像群组中的总帧数。
上述各个模块所执行的步骤请参考图2或图4所示实施例中的描述,此处不再赘述。
图11是根据一示例性实施例示出的终端1100的结构框图。该终端1100可以是用户终端,比如智能手机、平板电脑、电子书阅读器、智能眼镜、智能手表、MP3播放器(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1100包括有:处理器1101和存储器1102。
处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1101所执行以实现本申请中方法实施例提供的视频编码方法。
在一些实施例中,终端1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、触摸显示屏1105、图像采集组件1106、音频电路1107、定位组件1108和电源1109中的至少一种。
外围设备接口1103可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1104用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1105用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置终端1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端1100的不同表面或呈折叠设计;在再一些实施例中,显示屏1105可以是柔性显示屏,设置在终端1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
图像采集组件1106用于采集图像或视频。可选地,图像采集组件1106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,图像采集组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。
定位组件1108用于定位终端1100的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1108可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1109用于为终端1100中的各个组件进行供电。电源1109可以是交流电、直流电、一次性电池或可充电电池。当电源1109包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1100还包括有一个或多个传感器1110。该一个或多个传感器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、指纹传感器1114、光学传感器1115以及接近传感器1116。
加速度传感器1111可以检测以终端1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制触摸显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1112可以检测终端1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对终端1100的3D动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1113可以设置在终端1100的侧边框和/或触摸显示屏1105的下层。当压力传感器1113设置在终端1100的侧边框时,可以检测用户对终端1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在触摸显示屏1105的下层时,由处理器1101根据用户对触摸显示屏1105的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1114用于采集用户的指纹,由处理器1101根据指纹传感器1114采集到的指纹识别用户的身份,或者,由指纹传感器1114根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1101授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1114可以被设置终端1100的正面、背面或侧面。当终端1100上设置有物理按键或厂商Logo时,指纹传感器1114可以与物理按键或厂商Logo集成在一起。
光学传感器1115用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1115采集的环境光强度,控制触摸显示屏1105的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1105的显示亮度;当环境光强度较低时,调低触摸显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1115采集的环境光强度,动态调整图像采集组件1106的拍摄参数。
接近传感器1116,也称距离传感器,通常设置在终端1100的前面板。接近传感器1116用于采集用户与终端1100的正面之间的距离。在一个实施例中,当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变小时,由处理器1101控制触摸显示屏1105从亮屏状态切换为息屏状态;当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变大时,由处理器1101控制触摸显示屏1105从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图11中示出的结构并不构成对终端1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括计算机程序(指令)的存储器,上述程序(指令)可由服务器的处理器执行以完成本申请各个实施例所示的视频编码方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (14)

1.一种视频编码方法,其特征在于,所述方法包括:
获取缓存数据的数据量变化信息,所述缓存数据包括已完成编码且待上传的视频数据,所述数据量变化信息用于指示所述缓存数据的数据量的变化情况;
根据所述缓存数据的数据量变化信息确定编码参数,所述编码参数包括编码码率和编码帧率中的至少一种;
根据确定的编码参数对尚未编码的视频帧进行编码;
将编码获得的视频数据添加入所述缓存数据。
2.根据权利要求1所述的方法,其特征在于,所述获取缓存数据的数据量变化信息,包括:
获取数据量递增计数,所述数据量递增计数用于指示缓存数据的数据量递增的时长与数据量递减的时长之间的差值;
所述根据所述缓存数据的数据量变化信息确定编码参数,包括:
查询所述数据量递增计数对应的所述编码参数。
3.根据权利要求2所述的方法,其特征在于,所述获取数据量递增计数之前,还包括:
获取前一预定周期内的至少两个采样时间点上的采样数值,所述采样数值与所述缓存数据在所述采样数值对应的采样时间点上的数据量成正相关;
根据所述至少两个采样时间点上的采样数值的变化趋势对所述数据量递增计数进行更新。
4.根据权利要求3所述的方法,其特征在于,所述根据所述至少两个采样时间点上的采样数值的变化趋势对所述数据量递增计数进行更新,包括:
当所述至少两个采样时间点上的采样数值的变化趋势为按时间顺序递增时,将所述数据量递增计数加一。
5.根据权利要求3所述的方法,其特征在于,所述根据所述至少两个采样时间点上的采样数值的变化趋势对所述数据量递增计数进行更新,包括:
当所述至少两个采样时间点上的采样数值的变化趋势为按时间顺序递减,且所述数据量递增计数大于零时,将所述数据量递增计数减一。
6.根据权利要求3至5任一所述的方法,其特征在于,所述根据所述至少两个采样时间点上的采样数值的变化趋势对所述数据量递增计数进行更新,包括:
当所述至少两个采样时间点上的采样数值中的最大值和最小值之间的差值大于预设差值阈值时,根据所述至少两个采样时间点上的采样数值的变化趋势对所述数据量递增计数进行更新。
7.根据权利要求3至5任一所述的方法,其特征在于,所述方法还包括:
当更新后的所述数据量递增计数超过预设的计数阈值时,展示提醒信息,所述提醒信息用于提示网络状态不良。
8.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在根据所述至少两个采样时间点上的采样数值的变化趋势对所述数据量递增计数进行更新之前,获取所述至少两个采样时间点上的采样数值的平均值;
当所述平均值高于预设平均值阈值时,根据预定编码参数对尚未编码的视频帧进行编码。
9.根据权利要求1至5任一所述的方法,其特征在于,所述根据确定的编码参数对尚未编码的视频帧进行编码,包括:
当所述编码参数包括编码帧率,且所述编码帧率低于初始帧率时,将对尚未编码的视频帧进行编码获得的图像群组中的最后n个前向预测帧丢弃;
其中,所述初始帧率是编码获得的图像群组的帧率,n=(f1/f2)*N,其中,f1为所述编码帧率,f2为所述初始帧率,N为所述图像群组中的总帧数。
10.一种视频编码装置,其特征在于,所述装置包括:
信息获取模块,用于获取缓存数据的数据量变化信息,所述缓存数据包括已完成编码且待上传的视频数据,所述数据量变化信息用于指示所述缓存数据的数据量的变化情况;
参数确定模块,用于根据所述缓存数据的数据量变化信息确定编码参数,所述编码参数包括编码码率和编码帧率中的至少一种;
编码模块,用于根据确定的编码参数对尚未编码的视频帧进行编码;
添加模块,用于将编码获得的视频数据添加入所述缓存数据。
11.根据权利要求10所述的装置,其特征在于,
所述信息获取模块,具体用于获取数据量递增计数,所述数据量递增计数用于指示缓存数据的数据量递增的时长与数据量递减的时长之间的差值;
所述参数确定模块,具体用于查询所述数据量递增计数对应的所述编码参数。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
采样数值获取模块,用于在所述信息获取模块获取数据量递增计数之前,获取前一预定周期内的至少两个采样时间点上的采样数值,所述采样数值与所述缓存数据在所述采样数值对应的采样时间点上的数据量成正相关;
数值更新模块,用于根据所述至少两个采样时间点上的采样数值的变化趋势对所述数据量递增计数进行更新。
13.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至9任一所述的视频编码方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至9任一所述的视频编码方法。
CN201810320093.4A 2018-04-11 2018-04-11 视频编码方法及装置 Active CN108495142B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810320093.4A CN108495142B (zh) 2018-04-11 2018-04-11 视频编码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810320093.4A CN108495142B (zh) 2018-04-11 2018-04-11 视频编码方法及装置

Publications (2)

Publication Number Publication Date
CN108495142A true CN108495142A (zh) 2018-09-04
CN108495142B CN108495142B (zh) 2021-05-25

Family

ID=63315362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810320093.4A Active CN108495142B (zh) 2018-04-11 2018-04-11 视频编码方法及装置

Country Status (1)

Country Link
CN (1) CN108495142B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600610A (zh) * 2018-11-12 2019-04-09 深圳市景阳科技股份有限公司 一种数据编码方法及终端
CN110324580A (zh) * 2019-07-05 2019-10-11 视联动力信息技术股份有限公司 一种基于视联网的监控视频播放方法及装置
CN111010576A (zh) * 2019-12-18 2020-04-14 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN111107104A (zh) * 2019-12-31 2020-05-05 广州酷狗计算机科技有限公司 视频发送方法、视频接收方法、装置、设备及存储介质
CN111225268A (zh) * 2019-12-03 2020-06-02 深圳市道通智能航空技术有限公司 一种视频数据的传输方法及终端
CN111339351A (zh) * 2018-12-19 2020-06-26 成都鼎桥通信技术有限公司 一种Android系统中的音频播放方法
CN111385574A (zh) * 2018-12-28 2020-07-07 北京字节跳动网络技术有限公司 视频编码中的码率控制方法、装置、移动终端及存储介质
CN111682980A (zh) * 2020-05-28 2020-09-18 西安万像电子科技有限公司 一种图像编码方法及装置
CN113784150A (zh) * 2021-09-14 2021-12-10 广州市网星信息技术有限公司 视频数据发布方法、装置、电子设备及存储介质
CN114390322A (zh) * 2022-01-18 2022-04-22 上海安超云软件有限公司 基于远程桌面协议的视频编码方法及其应用
CN114640886A (zh) * 2022-02-28 2022-06-17 深圳市宏电技术股份有限公司 自适应带宽的音视频传输方法、装置、计算机设备及介质
CN114900732A (zh) * 2022-04-25 2022-08-12 北京奇艺世纪科技有限公司 视频缓存方法、装置、电子设备及存储介质
CN115103216A (zh) * 2022-07-19 2022-09-23 康键信息技术(深圳)有限公司 直播数据的处理方法、装置、计算机设备及存储介质
WO2023010992A1 (zh) * 2021-08-02 2023-02-09 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读介质及电子设备
CN116055802A (zh) * 2022-07-21 2023-05-02 荣耀终端有限公司 图像帧处理方法及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130242186A1 (en) * 2012-03-14 2013-09-19 Samsung Electronics Co., Ltd. Image processing apparatus and control method thereof
CN104486688A (zh) * 2014-12-31 2015-04-01 深圳市华宝电子科技有限公司 一种车载视频传输方法及装置
CN104639978A (zh) * 2015-02-13 2015-05-20 上海小蚁科技有限公司 多媒体处理方法及装置
US20150318872A1 (en) * 2014-05-02 2015-11-05 Imagination Technologies Limited Adaptive Span Control
CN105992023A (zh) * 2015-02-11 2016-10-05 杭州海康威视数字技术股份有限公司 视频图像数据的处理方法及装置
CN106488175A (zh) * 2015-08-26 2017-03-08 重庆西线科技有限公司 一种视频传输方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130242186A1 (en) * 2012-03-14 2013-09-19 Samsung Electronics Co., Ltd. Image processing apparatus and control method thereof
US20150318872A1 (en) * 2014-05-02 2015-11-05 Imagination Technologies Limited Adaptive Span Control
CN104486688A (zh) * 2014-12-31 2015-04-01 深圳市华宝电子科技有限公司 一种车载视频传输方法及装置
CN105992023A (zh) * 2015-02-11 2016-10-05 杭州海康威视数字技术股份有限公司 视频图像数据的处理方法及装置
CN104639978A (zh) * 2015-02-13 2015-05-20 上海小蚁科技有限公司 多媒体处理方法及装置
CN106488175A (zh) * 2015-08-26 2017-03-08 重庆西线科技有限公司 一种视频传输方法

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600610A (zh) * 2018-11-12 2019-04-09 深圳市景阳科技股份有限公司 一种数据编码方法及终端
CN109600610B (zh) * 2018-11-12 2020-10-23 深圳市景阳科技股份有限公司 一种数据编码方法、终端及计算机可读存储介质
CN111339351B (zh) * 2018-12-19 2023-08-11 成都鼎桥通信技术有限公司 一种Android系统中的音频播放方法
CN111339351A (zh) * 2018-12-19 2020-06-26 成都鼎桥通信技术有限公司 一种Android系统中的音频播放方法
CN111385574A (zh) * 2018-12-28 2020-07-07 北京字节跳动网络技术有限公司 视频编码中的码率控制方法、装置、移动终端及存储介质
CN111385574B (zh) * 2018-12-28 2021-08-10 北京字节跳动网络技术有限公司 视频编码中的码率控制方法、装置、移动终端及存储介质
CN110324580B (zh) * 2019-07-05 2020-12-11 视联动力信息技术股份有限公司 一种基于视联网的监控视频播放方法及装置
CN110324580A (zh) * 2019-07-05 2019-10-11 视联动力信息技术股份有限公司 一种基于视联网的监控视频播放方法及装置
CN111225268A (zh) * 2019-12-03 2020-06-02 深圳市道通智能航空技术有限公司 一种视频数据的传输方法及终端
CN111010576B (zh) * 2019-12-18 2021-04-27 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN111010576A (zh) * 2019-12-18 2020-04-14 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN111107104A (zh) * 2019-12-31 2020-05-05 广州酷狗计算机科技有限公司 视频发送方法、视频接收方法、装置、设备及存储介质
CN111107104B (zh) * 2019-12-31 2022-02-18 广州酷狗计算机科技有限公司 视频发送方法、视频接收方法、装置、设备及存储介质
CN111682980A (zh) * 2020-05-28 2020-09-18 西安万像电子科技有限公司 一种图像编码方法及装置
WO2023010992A1 (zh) * 2021-08-02 2023-02-09 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读介质及电子设备
CN113784150A (zh) * 2021-09-14 2021-12-10 广州市网星信息技术有限公司 视频数据发布方法、装置、电子设备及存储介质
CN114390322A (zh) * 2022-01-18 2022-04-22 上海安超云软件有限公司 基于远程桌面协议的视频编码方法及其应用
CN114640886A (zh) * 2022-02-28 2022-06-17 深圳市宏电技术股份有限公司 自适应带宽的音视频传输方法、装置、计算机设备及介质
CN114640886B (zh) * 2022-02-28 2023-09-15 深圳市宏电技术股份有限公司 自适应带宽的音视频传输方法、装置、计算机设备及介质
CN114900732A (zh) * 2022-04-25 2022-08-12 北京奇艺世纪科技有限公司 视频缓存方法、装置、电子设备及存储介质
CN114900732B (zh) * 2022-04-25 2024-01-12 北京奇艺世纪科技有限公司 视频缓存方法、装置、电子设备及存储介质
CN115103216A (zh) * 2022-07-19 2022-09-23 康键信息技术(深圳)有限公司 直播数据的处理方法、装置、计算机设备及存储介质
CN116055802A (zh) * 2022-07-21 2023-05-02 荣耀终端有限公司 图像帧处理方法及电子设备
CN116055802B (zh) * 2022-07-21 2024-03-08 荣耀终端有限公司 图像帧处理方法及电子设备

Also Published As

Publication number Publication date
CN108495142B (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
CN108495142A (zh) 视频编码方法及装置
CN110881136B (zh) 视频帧率控制方法、装置、计算机设备及存储介质
CN108965980B (zh) 推荐内容显示方法、装置、终端及存储介质
CN108259945B (zh) 处理播放多媒体数据的播放请求的方法和装置
US8724017B2 (en) Auto exposure techniques for variable lighting conditions
EP3787291B1 (en) Method and device for video encoding, storage medium, and equipment
CN110213616A (zh) 视频提供方法、获取方法、装置及设备
CN108769826A (zh) 直播媒体流获取方法、装置、终端及存储介质
CN111586431B (zh) 进行直播处理的方法、装置、设备及存储介质
CN109788303A (zh) 直播视频流的推送方法、装置、电子设备及存储介质
CN109951398B (zh) 数据发送方法、装置及计算机设备
CN108427630B (zh) 性能信息获取方法、装置、终端及计算机可读存储介质
CN108769738B (zh) 视频处理方法、装置、计算机设备和存储介质
CN108769726A (zh) 多媒体数据推送方法、装置、存储介质及设备
CN108600778B (zh) 媒体流发送方法、装置、系统及服务器、终端、存储介质
CN110996117B (zh) 视频转码方法、装置、电子设备和存储介质
CN111405312A (zh) 直播推流方法、装置、终端、服务器及存储介质
WO2020220180A1 (zh) 媒体内容推荐方法及设备
CN105657186A (zh) 音量控制方法及装置
CN111813367A (zh) 调整音量的方法、装置、设备以及存储介质
CN114339429A (zh) 音视频播放控制方法、电子设备和存储介质
CN111586413A (zh) 视频调整方法、装置、计算机设备及存储介质
CN111698262B (zh) 带宽确定方法、装置、终端及存储介质
CN111478914B (zh) 时间戳处理方法、装置、终端及存储介质
CN112153404B (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