视频处理方法、装置、电子设备及存储介质
技术领域
本申请涉及视频直播技术领域,更具体地,涉及一种视频处理方法、装置、电子设备及存储介质。
背景技术
视频直播是一种实时性、互动性显著的以互联网传播内容的形式。随着互联网技术的发展,视频直播技术也日渐成熟,观众可以同一时间通过网络系统在不同的交流平台观看视频,一个网络上的视频直播通常面对线上数万人、几十万人甚至上百万人,且可实时与线上观众交流互动。目前,视频直播可分为同期直播和延期直播,同期直播是指在视频录制的同时将视频信号传送给观众,延时直播是指视频画面播出的时间,要比实际画面有一定的延迟。而延时直播的延时目的是为监播人员提供一定的监播时间,以防止不利于社会稳定和安全的画面及语言播出。同时,国家广电总局还规定,有群众参与的直播节目必须延时播出20秒以上,一些公共场所的大型直播甚至需要延时15分钟以上,因此如何进行长时间的延时直播成为了如今视频导播软件的研究方向。
发明内容
本申请实施例提出了一种视频处理方法、装置、电子设备及存储介质,能够实现延时直播的功能,同时也能增加延时直播的网络自适应。
第一方面,本申请实施例提供了一种视频处理方法,该方法包括:在延时直播的直播过程中,获取并缓存待直播的视频数据;当所述视频数据的缓存时长达到所述延时直播的延时时长时,基于当前网络的带宽,确定所述视频数据的编码比特率,所述编码比特率与所述带宽匹配;根据所述编码比特率,对所述视频数据进行编码处理,得到所述视频数据的编码视频数据;将所述编码视频数据发送至服务器。
第二方面,本申请实施例提供了一种视频处理装置,该装置包括:数据缓存模块、码率确定模块、数据编码模块以及数据发送模块。其中,数据缓存模块,用于在延时直播的直播过程中,获取并缓存待直播的视频数据;码率确定模块,用于当所述视频数据的缓存时长达到所述延时直播的延时时长时,基于当前网络的带宽,确定所述视频数据的编码比特率,所述编码比特率与所述带宽匹配;数据编码模块,用于根据所述编码比特率,对所述视频数据进行编码处理,得到所述视频数据的编码视频数据;数据发送模块,用于将所述编码视频数据发送至服务器。
第三方面,本申请实施例提供了一种电子设备,包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于执行上述第一方面提供的视频处理方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的视频处理方法。
本申请实施例提供的一种视频处理方法、装置、电子设备及存储介质,通过在延时直播的直播过程中获取并缓存待直播的视频数据,以及在该视频数据的缓存时长达到延时直播的延时时长时,基于当前网络的带宽,确定该视频数据的与当前带宽匹配的编码比特率,从而可根据与当前带宽匹配的编码比特率,对视频数据进行编码处理,得到该视频数据的编码视频数据,从而将该编码视频数据发送至服务器。本申请在延时直播的直播过程中,能够根据延时后的网络带宽环境,确定延时直播的视频数据的编码比特率,实现了延时直播的网络自适应,保证了延时直播的流畅度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的一种视频处理方法的应用场景图。
图2示出了本申请一个实施例提供的视频处理方法的流程示意图。
图3示出了本申请实施例提供的一种界面示意图。
图4示出了本申请实施例提供的另一种界面示意图。
图5示出了本申请另一个实施例提供的视频处理方法的流程示意图。
图6示出了图5中的步骤S210的一种流程示意图。
图7示出了本申请实施例提供的一种界面示意图。
图8示出了图5中的步骤S210的另一种流程示意图。
图9示出了图5中的步骤S220的另一种流程示意图。
图10示出了一种适用于本申请实施例的视频处理方法的网络自适应编码的流程示意图。
图11示出了本申请实施例提供的另一种界面示意图。
图12示出了图5中的步骤S230的一种流程示意图。
图13示出了适用于本申请实施例的一种视频处理方法的流程示意框图。
图14示出了本申请实施例提供的一种视频处理装置的模块框图。
图15示出了本申请实施例提供的一种电子设备的结构框图。
图16示出了本申请实施例的用于保存或者携带实现根据本申请实施例的视频处理方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
目前,实现延时直播的方案主要是硬件延迟,即在播出通道中加入延时设备。该延时设备的工作原理通常是让待直播视频在预定开始播出时间前,提前若干时间就开始录制并将其存储在延时设备中,到预定开始播出时间时播出延时设备中预存的视频内容,同时延时设备继续录制直播视频,从而观众可以通过终端设备(如手机、电脑、电视等)观看到延时后的直播视频。然而延时设备价格比较昂贵,使得延时直播成本较高,且需增加硬件部署环节。
另外,实现延时直播的方案,除了上述硬件延迟的方案以外,还有一种内存缓存方案。该内存缓存方案通常是先将采集到的待直播的视频数据进行视频编码以得到流媒体数据,然后将编码后的流媒体数据将存放进缓冲区中,以对数据进行缓存,直至缓存时长达到延时时长时,再将编码后的流媒体数据发送到服务器进行,从而观众可以通过终端设备观看到延时后的直播视频。
但是由于网络存在不稳定的因素,例如运营商的上行带宽分配不合理,带宽使用高峰期等因素,导致网络时好时坏,因此,若采用上述内存缓存方案,发送到服务器的流媒体数据是延迟前进行编码的,直播视频无法实时适应当前(即延迟后)的网络状况,可能会出现直播卡顿,影响了用户的观看体验。例如,延时5分钟播出视频时,当前发送至服务器的视频数据是5分钟前编码的,对应的编码比特率是由5分钟前的网络状况决定的,并无法适应当前的网络状况。
发明人在对现有的延时直播方案进行了一系列研究后发现,客户端或者公司传输端的延时直播方案,基于内存缓存实现时,不仅不能自适应网络状况,而且限于内存大小,延时时间有限;基于硬件延迟时,延时直播成本高。因此,发明人经过长时间的研究并提出了本申请实施例中的视频处理方法、装置、电子设备及存储介质,能够在无需进行复杂的部署的情况下实现延时直播功能,且能够增加延时直播的网络自适应性,保证了直播的流畅度。下面对本申请实施例提供的视频处理方法的应用场景进行介绍。
请参阅图1,示出了本申请实施例提供的视频处理方法的应用场景的示意图。如图1所示,该应用场景包括本申请实施例提供的一种交互系统10。该交互系统10包括:电子设备100以及服务器200。其中,电子设备100和服务器200位于无线网络或有线网络中,电子设备100和服务器200可以进行数据交互。
在本申请实施例中,电子设备100可以是笔记本电脑、台式电脑、平板电脑、智能手机、可穿戴电子设备等,具体的电子设备类型在本申请实施例中可以不作为限定。服务器200可以是单独的服务器,也可以是服务器集群,可以是本地服务器,也可以是云端服务器,具体的服务器类型在本申请实施例中可以不作为限定,例如还可以是供用户边下载边观看多媒体文件的流媒体服务器。
在一些实施例中,电子设备100可以安装有即时通讯应用或社交网络应用的客户端,该客户端可以是安装在电子设备100的计算机应用程序(Application,APP),例如,直播APP,也可以是web客户端,该web客户端指基于Web架构而开发的应用程序。用户在客户端进行帐号登录后,可以进行视频直播,且该帐号对应的所有信息可以存储在电子设备100的存储空间内,也可以存储在服务器200的存储空间内。其中,该账号对应的信息包括用户通过客户端输入的信息以及用户通过客户端接收的信息等。
作为一种实施方式,用户在客户端进行视频同期直播时,客户端可以实时获取待直播的视频数据,并将该视频数据实时发送至流媒体服务器,供观众边下载边观看,以实现同期直播。其中,待直播的视频数据可以是电子设备的图像采集装置(如摄像头)和音频采集装置(如麦克风)当前采集的图像数据和音频数据。
作为另一种实施方式,用户在客户端进行视频延时直播时,客户端也可以将获取到的待直播的视频数据缓存到延时时长时,再发送至流媒体服务器,供观众边下载边观看,从而实现延时直播。
上述的应用环境仅为方便理解所作的示例,可以理解的是,本申请实施例不仅局限于上述应用环境。下面将通过具体实施例对本申请实施例提供的视频处理方法、装置、系统、电子设备及存储介质进行详细说明。
请参阅图2,图2示出了本申请实施例提供的一种视频处理方法的流程示意图,可应用于上述电子设备。在具体的实施例中,视频处理方法可应用于如图14所示的视频处理装置400以及图15所示的电子设备100。下面将针对图2所示的流程进行详细的阐述。该视频处理方法可以包括以下步骤:
步骤S110:在延时直播的直播过程中,获取并缓存待直播的视频数据。
在传统的基于内存缓存实现延迟直播的方案中,通常是将待直播的视频数据编码成流媒体数据后进行缓存,并在延时后发送至流媒体服务器,使得发送到服务器的流媒体数据的编码比特率是由延迟前的网络状况决定的,无法适应当前的网络状况,从而可能会出现直播卡顿。因此,在本申请实施例中,通过将编码前的视频数据(编码成流媒体数据之前的视频数据)进行缓存,而非将编码后的流媒体数据进行缓存,以在缓存到延时时长时,再实时根据当前的网络状况将视频数据编码成流媒体数据,并发送至服务器,实现了延时直播的网络自适应性,保证了延迟直播的流畅度。
具体地,电子设备在进行延时直播的直播过程中,为了保证后续直播视频的流畅显示效果,可以实时获取待直播的视频数据,并将该视频数据缓存到磁盘,以缓存到延时时长后再进行发送。其中,待直播的视频数据为编码成流媒体数据之前的视频数据,可以是原始视频数据(如YUV格式的视频数据),也可以是经过一定处理后的视频数据(如无损压缩处理后的视频数据),在此斌并不作限定,仅需该视频数据未被编码成流媒体数据即可。在本申请实施例中,待直播的视频数据可以包括音频数据和视频图像数据,也可以仅包括视频图像数据。
在一些实施例中,待直播的视频数据可以通过直播现场的采集设备(如摄像头、麦克风等)实时采集到。其中,采集设备可以集成于电子设备,也可以外设。具体地,当采集设备为外设摄像头和外设麦克风时,外设摄像头和外设麦克风可以将采集到图像数据和音频数据实时发送至电子设备,从而电子设备可以获取到待直播的视频数据。
在另一些实施例中,待直播的视频数据也可以从现有视频文件中获取到。由于视频文件的来源不限定,因此可能也有不同的文件格式。因此,作为一种方式,电子设备可以将多种文件格式的视频文件进行格式转换处理,以处理为统一的数据格式,便于后续电子设备对多种视频文件的统一处理,简化了处理步骤。可以理解的是,上述待直播的视频数据的获取方式仅为举例,在此并不作限定。
电子设备在获取到待直播的视频数据后,为了保证延时后的直播视频的流畅播放,可以在磁盘中设置用于缓存待直播的视频数据的缓存区,以将获取到的待直播的视频数据缓存在该缓存区中。当待直播的视频数据包括音频数据和视频图像数据时,作为一种方式,可以使用不同的缓存区分别缓存音频数据和视频图像数据。例如,将音频数据缓存在音频缓存区中,视频图像数据缓存在图像缓存区中。
在一些实施例中,还可以对电子设备当前的直播状态进行检测,以在检测到电子设备处于延时直播的直播状态时,获取并缓存待直播的视频数据。其中,可通过多种方式检测电子设备当前的直播状态。作为一种方式,电子设备的系统界面中可以设置有用于进行延迟直播功能的开关按钮,用户可通过该开关按钮开启或者关闭延迟直播功能。例如,请参阅图3,图3示出了一种界面示意图,图3中的“延时直播”选项处于选中状态时,可认为延迟直播功能开启。电子设备可检测上述开关按钮是否开启,当该开关按钮开启时,则延迟直播功能开启,也就是说,电子设备处于延时直播的直播状态,可以获取并缓存待直播的视频数据;当该开关按钮关闭时,则延迟直播功能关闭,也就是说,电子设备未处于延时直播的直播状态,可以不用缓存待直播的视频数据。进一步地,在一些实施例中,电子设备处于延时直播的直播状态时,且未到实际播出时间时,系统界面可以进行倒计时显示,以提示用户实际播出时间。例如,请参见图4,图4示出了一种倒计时显示的界面示意图。
步骤S120:当所述视频数据的缓存时长达到所述延时直播的延时时长时,基于当前网络的带宽,确定所述视频数据的编码比特率,所述编码比特率与所述带宽匹配。
在本申请实施例中,为实现延时直播的延时效果,可以将视频数据的缓存时长与延时时长进行对应,以在视频数据的缓存时长达到延时直播的延时时长时,进行视频数据的直播处理。其中,延时时长可以理解为直播视频画面的实际播出时间与该直播视频画面的录制时间之间的差值,可预先存储于电子设备。该延时时长可以是默认时长,也可以由直播用户进行设定,还可以由直播平台的管理员进行设定,具体的延时时长可以不作限定。在一些实施方式中,考虑电子设备的实际存储空间,也可以对延时时长的取值范围进行限定。例如,限定延时时长的取值范围为0~30分钟。
在一些实施例中,将视频数据进行缓存时视频数据可以携带有时间戳(PTS,PresentationTimeStamp),从而可根据该时间戳确定视频数据的缓存时长是否达到延时直播的延时时长。作为一种方式,该时间戳可以是每一帧视频数据的存入缓存区的时间节点,从而电子设备可根据系统时钟的当前时间点以及该时间戳的差值,确定每一帧视频数据的缓存时长是否达到延时时长。例如,当该差值与延时时长一致时,则可确定这一帧视频数据的缓存时长达到延时时长。作为另一种方式,该时间戳也可以是每一帧视频数据被读取的时间节点,也即达到延时时长后的时间节点,该时间戳可用来确定在什么时候播放这一帧的视频数据,从而电子设备可通过判断系统时钟的当前时间点与该时间戳是否一致,确定每一帧视频数据的缓存时长是否达到延时时长。例如,当系统时钟的当前时间点与该时间戳一致时,则可确定这一帧视频数据的缓存时长达到延时时长。
进一步地,为实现用户可以边下载边观看直播视频而非下载整个视频文件后才能观看,通常是将待直播的视频数据编码压缩后发送至服务器(如流媒体服务器)。又由于在视频数据传输到服务器的过程中,当前网络不佳时,如果视频数据中的视频图像数据的编码比特率太高,容易出现传输延迟、甚至丢包的情况,从而影响直播画面播放的流畅度。因此,在本申请实施例中,当视频数据中的缓存时长达到延时直播的延时时长时,可基于当前网络的带宽情况,实时确定与当前网络带宽匹配的编码比特率,以便后续根据该编码比特率实现延时直播,实现了延时直播的网络自适应性。其中,当编码比特率与带宽匹配时,以该编码比特率编码的视频数据发送至服务器时,服务器可实现流畅播放。需要说明的是,编码比特率指的是经过编码后的视频数据每秒钟需要的比特数,比特是二进制里面最小的单位(值为0或1)。且编码比特率越大,视频的质量就越好,视频所占存储空间就越大。
在一些实施例中,当待直播的视频数据包括视频图像数据和音频数据时,由于音频数据的编码比特率较小,一般情况下的带宽起伏波动并不会影响到音频数据的传输。因此,当音频数据的缓存时长达到延时时长时,无需根据当前网络带宽情况确定音频数据的编码比特率,可直接根据预先设定音频数据的编码比特率,对音频数据进行编码。例如,对音频数据进行AAC(Advanced Audio Coding,高级音频编码)编码。而对于视频数据中的视频图像数据,由于涉及到各种清晰度的画面质量(如蓝光、超清、高清等),因此,需要根据当前网络带宽情况,实时确定视频图像数据的编码比特率,以实现延迟直播的流畅播放。
具体地,在一些实施例中,当视频数据的缓存时长达到延时时长时,可以对当前网络的带宽进行检测,以在检测到当前网络的带宽时,确定所述视频数据的编码比特率。其中,可通过多种方式检测当前网络的带宽。作为一种方式,电子设备可实时根据之前发送至服务器的视频数据的传输时长,确定当前网络的带宽情况,例如,可以是当传输时长大于预设时长时,确定当前网络的带宽情况不佳,可以对应选取较小的编码比特率。作为另一种方式,电子设备也可以实时发送带宽测试报文至服务器,从而可根据报文响应的时间,确定当前网络的带宽情况,例如,可以是当响应时间大于预设时长时,确定当前网络的带宽情况不佳,可以对应选取较小的编码比特率。可以理解的是,上述带宽检测方式和编码比特率的确定方式仅为举例,具体的当前网络的带宽检测方式和编码比特率的确定方式在本申请实施例中并不作限定,仅需视频数据当前的编码比特率与当前网络的带宽匹配即可。
步骤S130:根据所述编码比特率,对所述视频数据进行编码处理,得到所述视频数据的编码视频数据。
在本申请实施例中,当电子设备基于当前网络的带宽,确定出视频数据的编码比特率后,可以根据该编码比特率,对该视频数据进行编码处理,以得到该视频数据的编码视频数据。其中,该编码视频数据可以作为上述流媒体数据发送至服务器,即可以以流式传输的方式发送至服务器播放。
在一些实施例中,电子设备可包括视频编码器,即可通过视频编码器对缓存时长达到延时时长的视频数据进行编码处理。具体地,在视频数据的缓存时长达到延时直播的延时时长时,电子设备可以将该视频数据从磁盘中读取出,并将读取出的视频数据送入视频编码器。视频编码器在接收到视频数据后,可根据编码比特率将每一帧视频数据编码成指定格式的编码视频数据。作为一种实施方式,在保证压缩率和视频质量的同时,为降低延时直播视频的带宽成本以及提高编码速率,上述视频编码器可以是HEVC(High EfficiencyVideo Coding,高效率视频编码)编码器,也即可根据编码比特率将每一帧视频数据编码成HEVC格式的编码视频数据。
在一些实施例中,当待直播的视频数据包括视频图像数据和音频数据时,视频数据的编码视频数据可以包括视频图像数据的编码图像数据和音频数据的编码音频数据。其中,视频图像数据的编码图像数据可以根据当前网络带宽实时确定的编码比特率进行编码得到,音频数据的编码音频数据可直接根据预先设定音频数据的编码比特率进行编码得到。例如,视频数据的编码视频数据可包括HEVC格式的编码图像数据和ACC格式的编码音频数据。
步骤S140:将所述编码视频数据发送至服务器。
在本申请实施例中,电子设备在得到视频数据的编码视频数据后,可以将该编码视频数据发送至服务器,以实现延时直播的视频播出。这样,通过将编码前的视频数据进行缓存,以在缓存到延时时长时,再实时根据当前的网络状况将视频数据编码成流媒体数据,并发送至服务器,实现了延时直播的网络自适应性,保证了延迟直播的流畅度。
在一些实施例中,服务器在接收到编码视频数据后,可以对该编码视频数据进行解码,以得到用于播放的直播画面。作为一种方式,服务器可以是在接收到观众用户的播放请求后,对编码视频数据进行解码播放。其中,播放请求可以是在观众用户进入主播间时自动生成并发送至服务器,也可以是在检测到直播界面设置的用于进行视频播放功能的按钮被点击选中时,生成播放请求并发送至服务器。进一步地,服务器在接收到用户的播放请求后,可以根据播放请求的请求时间,对应解码该请求时间以后的编码视频数据进行播放,也可以在请求时间之前倒退一定时间进行解码播放。可以理解的是,上述直播画面的播放方式仅为举例,具体地直播画面的播放方式在本申请实施例中并不作限定。
在一些实施例中,服务器在接收到编码视频数据后,还可以将该编码视频数据进行存储,以便后续进行直播回放和直播审核。
本申请实施例提供的视频处理方法,通过在延时直播的直播过程中获取并缓存待直播的视频数据,以及在该视频数据的缓存时长达到延时直播的延时时长时,基于当前网络的带宽,确定该视频数据的与当前带宽匹配的编码比特率,从而可根据与当前带宽匹配的编码比特率,对视频数据进行编码处理,得到该视频数据的编码视频数据,从而将该编码视频数据发送至服务器。本申请在延时直播的直播过程中,能够根据延时后的网络带宽环境,确定延时直播的视频数据的编码比特率,实现了延时直播的网络自适应,保证了延时直播的流畅度。
请参阅图5,图5示出了本申请另一实施例提供的一种视频处理方法的流程示意图,可应用于上述电子设备,该视频处理方法可以包括:
步骤S210:在延时直播的直播过程中,获取并缓存待直播的视频数据。
由于待直播的视频数据比较大(1080P的视频每分钟大概产生600M缓存数据),因此,在一些实施例中,为了节省磁盘的存储空间,电子设备可以分段缓存待直播的视频数据。具体地,请参阅图6,上述在延时直播的直播过程中,获取并缓存待直播的视频数据,可以包括:
步骤S211:获取预设的延时时长。
在本申请实施例中,电子设备可以获取预设的延时时长,以根据该延时时长确定待直播的视频数据的缓存时长。其中,延时时长可由用户进行设定。作为一种方式,可以在客户端的系统界面显示有延时时长的输入框,用户可以在延时时长中填写数值,从而电子设备可以从客户端的后台获取到用户填写的延时时长,这样,通过在系统界面进行简单的延迟设置即可实现延迟直播功能。例如,请参阅图7,图7示出了一种延时时长输入框的示意图,图7中的输入框中设定的延时时长为600S。
步骤S212:根据所述延时时长,确定缓存的分段时长,所述分段时长大于或等于所述延时时长。
其中,分段时长可以理解为待直播的视频数据存放进缓存区时,所能存放的最大视频时长。例如,分段时长为10分钟时,该缓存区仅能存放10分钟的待直播视频数据。在一些实施方式中,当一个分段时长的视频数据处理完毕时,就可以删除该分段时长的视频数据。
在一些实施例中,电子设备在获取到预设延时时长时,可以根据该延时时长,确定缓存的分段时长,使得分段时长与延时时长对应,以保证磁盘里至少缓存有延时时长的视频数据。作为一种方式,分段时长与延时时长对应,可以是分段时长等于延时时长,例如,当延时直播的延时时长为5分钟时,则缓存的分段时长也可为5分钟,也即该缓存区能存放5分钟的待直播视频数据。作为另一种方式,也可以是分段时长大于延时时长,其中,可以设定固定值,使得分段时长减去延时时长时始终为该固定值,从而电子设备可以根据延时时长和该固定值,确定缓存的分段时长。例如,若分段时长始终比延时时长多2分钟,延时时长为4分钟时,分段时长为6分钟,也即该缓存区能存放6分钟的待直播视频数据。
进一步地,当延时时长过短时(如1分钟、2分钟等),若分段时长等于延时时长,则分段时长也会过短,反而会增加处理复杂度,因此,当延时时长小于分段阈值时,可以将分段时长设为默认时长,该默认时长大于或者等于分段阈值,可预先存储于电子设备,可由管理员进行设定。其中,分段阈值可根据具体应用场景进行合理设定,可预存于电子设备。例如,分段阈值设为2分钟,当延时时长小于2分钟时,分段时长可为2分钟,也可以是默认时长8分钟。
步骤S213:在延时直播的直播过程中获取待直播的视频数据,并基于所述分段时长,按照时间先后顺序分段缓存所述视频数据。
电子设备在确定出缓存的分段时长后,可以在延时直播的直播过程中实时获取待直播的视频数据,并基于该分段时长,按照时间先后顺序分段缓存该视频数据。从而电子设备从磁盘中读取视频数据时,可以得到具有时间先后顺序的视频数据,减少了处理步骤。这样,通过高效的缓存分段方案设计,来缓存待直播的视频数据,即可有效降低硬盘资源占用,又可保证分段的读写效率。
在一些实施例中,当视频数据包括视频图像数据时,由于视频图像数据过大,为了节省磁盘的存储空间,可以将视频图像数据进行压缩存储,具体地,请参阅图8,上述在延时直播的直播过程中,获取并缓存待直播的视频数据,可以包括:
步骤S214:在延时直播的直播过程中,获取并缓存待直播的YUV格式的视频图像数据。
其中,YUV格式是比较常用的原始视频数据的数据格式,其中,YUV格式分为三个分量,Y表示明亮度(Luminance或Luma),也就是灰度值,而U和V表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。电子设备在延时直播的直播过程中,可以直接获取待直播的YUV格式的视频图像数据。
在一些实施例中,若获取到的视频图像数据为其他数据格式,可以将其统一转换为YUV格式的视频图像数据,以保证直播视频质量。
步骤S215:对所述YUV格式的视频图像数据进行无损编码处理,得到无损编码处理后的视频图像数据。
电子设备在获取到YUV格式的视频图像数据后,为了减少视频图像数据的存储空间,可以对该YUV格式的视频图像数据进行无损编码处理,得到无损编码处理后的视频图像数据。其中,无损编码处理后的视频图像数据进行解码,可以无失真即无损的恢复至YUV格式的视频图像数据。
其中,对YUV格式的视频图像数据进行无损编码处理,可以是对YUV格式的视频图像数据进行H.264lossless编码。其中,H.264lossless是一种无损压缩算法。也可以是采用其他的无损压缩算法对YUV格式的视频图像数据进行无损压缩。在一些实施方式中,也可以根据磁盘的存储空间,合理设定无损编码处理的编码比特率,从而即能保证一定的压缩率,又可降低CPU(Central Processing Unit,中央处理器)及IO(Input/Output,输入/输出)资源的占用。
步骤S216:缓存所述无损编码处理后的视频图像数据。
电子设备在得到无损编码处理后的视频图像数据后,可以直接缓存该无损编码处理后的视频图像数据,以缓存至延时时长,实现延时直播的效果。这样,通过无损压缩处理,既保证视频图像数据在缓存中没有质量损失,也降低了系统硬盘资源消耗,且占用较少的CPU资源。
步骤S217:当所述视频数据的缓存时长达到所述延时直播的延时时长时,基于当前网络的带宽,确定所述视频数据的编码比特率,所述编码比特率与所述带宽匹配。
在一些实施例中,如果当前网络的带宽与当前编码比特率不匹配,电子设备可以对当前编码比特率进行实时调整。具体地,请参阅图9,上述基于当前网络的带宽,确定所述视频数据的编码比特率,可以包括:
步骤S221:获取所述视频数据的当前编码比特率以及当前网络的带宽。
当视频数据的缓存时长达到延时直播的延时时长时,电子设备需要对该视频数据进行视频编码,以发送至服务器进行播放。由于不确定当前的带宽是否与当前的编码比特率匹配,因此,电子设备对该视频数据进行视频编码前,可以获取视频数据的当前编码比特率以及当前网络的带宽,以保证直播视频的播放流畅。
其中,视频数据的当前编码比特率为视频编码器发送前一帧视频数据时所采用的编码比特率,电子设备可以视频编码器之前的编码比特率确定当前编码比特率。当视频数据为延时直播的直播过程中的第一帧视频数据时,当前编码比特率可为预设编码比特率。在一些实施例中,预设编码比特率可由用户根据具体的直播画面的清晰度进行设定,并预存于电子设备。
在一些实施例中,电子设备可以实时监测当前网络的带宽情况。作为一种方式,电子设备可根据发送前一帧视频数据时的传输时长以前一帧视频数据的数据大小,确定当前网络的带宽。也可以根据发送前一帧视频数据时的丢包情况,确定当前网络的带宽,具体地带宽确定方式在本申请实施例中并不作限定,仅需获取到当前网络的带宽即可。
步骤S222:判断所述当前编码比特率是否与所述带宽匹配。
电子设备在获取到视频数据的当前编码比特率以及当前网络的带宽后,,可以判断当前编码比特率是否与带宽匹配,以确定当前的编码比特率是否合理,进而确定是否调整当前编码比特率。
在本申请实施例中,当前编码比特率与带宽不匹配的情况可包括多种。在一些实施例中,当当前编码比特率过小,导致带宽远大于当前编码比特率时,带宽的利用率低,可以判断出当前编码比特率与带宽不匹配;当当前编码比特率过大,导致带宽小于当前编码比特率时,带宽的负载过重,也可以判断出当前编码比特率与带宽不匹配。可以理解的是,上述情况仅为举例,具体的匹配检测方式并不作限定。
步骤S223:当所述当前编码比特率与所述带宽不匹配时,基于所述带宽,对所述当前编码比特率进行调整,并将调整后的编码比特率作为所述视频数据的编码比特率,其中,所述调整后的编码比特率与所述带宽匹配。
在本申请实施例中,当当前编码比特率与当前带宽不匹配时,为保证直播视频的播放流畅,电子设备可以基于当前带宽,对当前编码比特率进行调整,并将调整后的编码比特率作为视频数据的编码比特率,以根据该编码比特率对当前的视频数据进行视频编码,实现了延时直播场景中的网络自适应编码。其中,调整后的编码比特率与带宽匹配。
例如,请参见图10,图10示出了一种适用于本申请实施例的视频处理方法的网络自适应编码的流程示意图。具体地,电子设备的传输模块可根据编码后的视频数据发送至服务器200的传输情况,确定当前网络的带宽情况并进行实时反馈。然后电子设备可根据当前网络状况的反馈,动态调整视频编码器的编码比特率,以实时将当前的编码比特率调整为与当前网络带宽匹配的编码比特率,实现了延时直播的网络自适应性,保证了延时直播的流畅播放。
在一些实施例中,可根据具体的不匹配情况,对应调整当前编码比特率。作为一种实施方式,可根据具体情况,将当前编码比特率调低。具体地,上述当所述当前编码比特率与所述带宽不匹配时,基于所述带宽,对所述当前编码比特率进行调整,可以包括:当所述当前编码比特率大于所述带宽时,将所述当前编码比特率调整为指定编码比特率,所述指定编码比特率小于所述带宽。这样,当当前编码比特率过大时,通过将当前编码比特率调整至始终小于当前带宽,可以保证视频数据传输的流畅和稳定性。
在一些实施例中,指定编码比特率可与当前带宽具有对应关系。作为一种方式,当前带宽与指定编码比特率的差值为恒定关系,即指定编码比特率始终小于当前带宽一定值(即该差值)。例如,若差值为0.4,且当前编码比特率为1.5M比特每秒,当前带宽为1M比特每秒,则可将当前编码比特率1.5M比特每秒调整为指定编码比特率0.6M比特每秒。
同理,电子设备也可根据具体情况,将当前编码比特率调高。具体地,当当前编码比特率小于带宽时,将当前编码比特率调整为指定编码比特率,指定编码比特率小于带宽。这样,当当前编码比特率过小时,通过将当前编码比特率调整至始终小于当前带宽,也可以保证视频数据传输的流畅和稳定性。
作为另一种实施方式,可根据具体情况,将当前编码比特率调高至预设编码率。具体地,上述当所述当前编码比特率与所述带宽不匹配时,基于所述带宽,对所述当前编码比特率进行调整,也可以包括:当所述当前编码比特率小于所述带宽时,判断所述带宽是否大于预设编码比特率;当所述带宽大于预设编码比特率时,将所述当前编码比特率调整为所述预设编码比特率。这样,通过设定预设编码比特率,可以限定当前编码比特率的调高幅度,避免直播视频数据占用太多带宽,影响其他设备的使用。
其中,预设编码比特率可以由用户进行设定。作为一种方式,直播用户可根据自身的带宽使用和分配情况,在开始延时直播之前,在客户端的系统界面选定好预设编码比特率,从而电子设备可以从客户端的后台获取到该预设编码比特率。例如,请参见图11,图11示出了一种系统界面的示意图,图11中用户设定的视频码率(即预设编码比特率)为2500K。
在一种具体的应用场景中,电子设备的视频编码器可一开始以预设编码比特率对视频数据进行编码,并发送至服务器,从而电子设备可以获知当前的网络带宽情况,如果检测到当前编码比特率(即预设编码比特率)大于当前带宽时,电子设备可以将当前编码码率由预设编码比特率调低至指定编码比特率,且指定编码比特率小于带宽,并以指定编码比特率对后续的视频数据进行编码;由于电子设备可以实时获知当前的网络带宽情况,因此,如果后面检测到当前编码比特率(即指定编码比特率)小于当前带宽且当前带宽大于预设编码比特率,电子设备可以将当期编码比特率由指定编码比特率调回至预设编码比特率。
步骤S230:根据所述编码比特率,对所述视频数据进行编码处理,得到所述视频数据的编码视频数据。
在一些实施例中,当缓存区缓存的是上述无损编码处理后的视频图像数据时,电子设备需要对该无损编码处理后的视频图像数据进行解码后,才可进行上述编码处理。具体地,请参阅图12,上述根据所述编码比特率,对所述视频数据进行编码处理,包括:
步骤S231:读取缓存的所述无损编码处理后的视频图像数据。
当上述无损编码处理后的视频图像数据在磁盘的缓存时长大于延时时长时,电子可以从磁盘中读取缓存的该无损编码处理后的视频图像数据。
步骤S232:对所述无损编码处理后的视频图像数据进行无损解码处理,得到所述YUV格式的视频图像数据,其中,所述无损解码处理与所述无损编码处理对应。
由于视频编码器通常是对原始的YUV格式的视频图像数据进行编码,因此,电子设备在读取出该无损编码处理后的视频图像数据后,需要对该无损编码处理后的视频图像数据进行无损解码处理,以得到上述YUV格式的视频图像数据。其中,所述无损解码处理与所述无损编码处理对应。从而通过对原始的YUV格式的视频图像数据进行无损编码,并缓存到磁盘,在编解码无损的前提下,可设定合适的编码参数,既保证了一定的压缩率,又降低了CPU及IO资源的占用。
步骤S233:根据所述编码比特率,对所述YUV格式的视频图像数据进行编码处理。
电子设备在进行无损解码处理得到YUV格式的视频图像数据后,可以对该YUV格式的视频图像数据进行编码处理,以得到视频数据的编码视频数据。其中,编码处理可以是上述的HEVC编码。具体地编码处理可以参阅前述实施例的内容,在此不再赘述。
步骤S240:将所述编码视频数据发送至服务器。
在本申请实施例中,步骤S240可以参阅前述实施例的内容,在此不再赘述。
例如,请参阅图13,图13示出了本申请实施例提供的视频处理的方法的示意流程框图。具体地,电子设备可以从各个视频图像源和音频源获取到用于直播的视频数据,当获取到的待直播的视频数据包括PCM(Pulse Code Modulation,脉冲编码调制)格式的音频数据和YUV格式的视频图像数据时,可以将YUV格式的视频图像数据进行无损编码处理,并缓存到磁盘中,同时可以将PCM格式的音频数据缓存到磁盘中,当无损编码处理后的视频图像数据的缓存时长达到延时时长时,可以对无损编码处理后的视频图像数据进行解码,以得到YUV格式的视频图像数据并进行编码,得到编码图像数据,当PCM格式的音频数据的缓存时长达到延时时长时,可以从磁盘中读取该PCM格式的音频数据并进行编码,得到编码音频数据,将该编码图像数据和编码音频数据作为待直播的视频数据的编码视频数据发送至音视频传输协议,以传输至服务器。
进一步地,可以将PCM格式添加时间戳并缓存到磁盘中。在一些实施方式中,电子设备可以将读取的视频图像数据与PCM格式的音频数据的时间戳进行统一,并归一化到系统时钟的当前时间点,以保证直播视频的音画同步及后续正确的编码处理。
本申请实施例提供的视频处理方法,在延时直播的直播过程中,通过获取待直播的YUV格式的视频数据,并对该YUV格式的视频数据进行无损编码并缓存,当无损编码后的视频数据的缓存时长达到延时直播的延时时长时,读取出该无损编码后的视频数据,并解码恢复为YUV格式的视频数据,同时基于当前网络的带宽,确定出视频数据的编码比特率,该编码比特率与当前带宽匹配,以根据该编码比特率,对YUV格式的视频数据进行编码处理,得到视频数据的编码视频数据,再将编码视频数据发送至服务器。本申请在延时直播的直播过程中,先对视频数据进行无损编码压缩并缓存,既保证了缓存没有质量损失,也降低系统硬盘资源消耗,再根据延时后的网络带宽环境,动态调整直播的编码比特率,然后根据该编码比特率对无损解码后的视频数据进行编码,实现了延时直播的网络自适应,保证了延时直播的流畅度。
请参阅图14,图14示出了本申请实施例提供的一种视频处理装置400的结构框图,该视频处理装置400应用于电子设备。该视频处理装置400包括:数据缓存模块410、码率确定模块420、数据编码模块430以及数据发送模块440。其中,数据缓存模块410用于在延时直播的直播过程中,获取并缓存待直播的视频数据;码率确定模块420用于当所述视频数据的缓存时长达到所述延时直播的延时时长时,基于当前网络的带宽,确定所述视频数据的编码比特率,所述编码比特率与所述带宽匹配;数据编码模块430用于根据所述编码比特率,对所述视频数据进行编码处理,得到所述视频数据的编码视频数据;数据发送模块440用于将所述编码视频数据发送至服务器。
在一些实施例中,上述码率确定模块420可以包括:获取单元、判断单元以及调制单元。其中,获取单元用于获取所述视频数据的当前编码比特率以及当前网络的带宽;判断单元用于判断所述当前编码比特率是否与所述带宽匹配;调制单元用于当所述当前编码比特率与所述带宽不匹配时,基于所述带宽,对所述当前编码比特率进行调整,并将调整后的编码比特率作为所述视频数据的编码比特率,其中,所述调整后的编码比特率与所述带宽匹配。
进一步地,在一些实施例中,上述调制单元可以具体用于:当所述当前编码比特率大于所述带宽时,将所述当前编码比特率调整为指定编码比特率,所述指定编码比特率小于所述带宽。
进一步地,在另一些实施例中,上述调制单元可以具体用于:当所述当前编码比特率小于所述带宽时,判断所述带宽是否大于预设编码比特率;当所述带宽大于预设编码比特率时,将所述当前编码比特率调整为所述预设编码比特率。
在一些实施例中,上述视频数据包括视频图像数据,上述数据缓存模块410可以具体用于:在延时直播的直播过程中,获取并缓存待直播的YUV格式的视频图像数据;对所述YUV格式的视频图像数据进行无损编码处理,得到无损编码处理后的视频图像数据;缓存所述无损编码处理后的视频图像数据。
进一步地,在一些实施例中,数据编码模块430可以具体用于:读取缓存的所述无损编码处理后的视频图像数据;对所述无损编码处理后的视频图像数据进行无损解码处理,得到所述YUV格式的视频图像数据,其中,所述无损解码处理与所述无损编码处理对应;根据所述编码比特率,对所述YUV格式的视频图像数据进行编码处理。
在一些实施例中,上述数据缓存模块410可以具体用于:获取预设的延时时长;根据所述延时时长,确定缓存的分段时长,所述分段时长大于或等于所述延时时长;在延时直播的直播过程中获取待直播的视频数据,并基于所述分段时长,按照时间先后顺序分段缓存所述视频数据。
本申请实施例提供的视频处理装置用于实现前述方法实施例中相应的视频处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图15,图15其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备100可以是智能手机、平板电脑、笔记本电脑、台式电脑、可穿戴终端设备等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个应用程序配置用于执行如前述方法实施例所描述的方法。
处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据等。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
综上所述,本申请实施例提供的视频处理方法、装置及电子设备,通过在延时直播的直播过程中获取并缓存待直播的视频数据,以及在该视频数据的缓存时长达到延时直播的延时时长时,基于当前网络的带宽,确定该视频数据的与当前带宽匹配的编码比特率,从而可根据与当前带宽匹配的编码比特率,对视频数据进行编码处理,得到该视频数据的编码视频数据,从而将该编码视频数据发送至服务器。本申请在延时直播的直播过程中,能够根据延时后的网络带宽环境,确定延时直播的视频数据的编码比特率,实现了延时直播的网络自适应,保证了延时直播的流畅度。
请参阅图16,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质800中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读取存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质800包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。