掌桥专利:专业的专利平台
掌桥专利
首页

视频处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:21:00


视频处理方法、装置、电子设备及存储介质

技术领域

本申请涉及一种视频技术领域,具体地,涉及一种视频处理方法、装置、电子设备及存储介质。

背景技术

视频技术即动态图像传输技术,在电信领域被称为视频业务或视讯业务,在计算机界常常称为多媒体通信、流媒体通信等。视频通信技术是实现和完成视频业务的主要技术。随着互联网技术的高速发展,视频技术的应用越来越广发,例如视频直播、视频会议、视频课程、视频聊天等。

通常终端将采集的视频数据的进行编码,并进行传输。除了视频数据,往往还有字幕、音频、以及各种应用场景产生的数据等视频辅助数据需要进行传输。视频数据与视频辅助数据需要同步显示,而视频辅助数据与视频数据分开处理和传输,过程繁琐。

发明内容

鉴于上述问题,本发明提出了一种视频处理方法、装置、电子设备及存储介质。

第一方面,本申请实施例提供了一种视频处理方法,所述方法包括:

基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧;

将待发送的视频辅助数据封装至自定义数据帧;

根据所述视频帧和所述自定义数据帧获得目标视频码流,并将所述目标视频码流通过指定通道发送。

第二方面,本申请实施例还提供了一种视频处理方法,所述方法包括:

基于视频播放请求,通过指定通道获取目标视频码流;

根据所述目标视频码流获得视频帧和自定义数据帧;

将所述视频帧按照视频编码协议进行解码处理获得视频数据;

获取所述自定义数据帧中封装的视频辅助数据;

播放所述视频数据和所述视频辅助数据。

第三方面,本申请实施例还提供了一种视频处理装置,所述装置包括:

视频帧获取模块,用于基于视频发送请求,将待发送视频数据按照视频编码协议进行编码处理获得视频帧;

自定义数据帧获取模块,用于将待发送的视频辅助数据封装至自定义数据帧;

目标视频码流获取模块,用于根据所述视频帧和所述自定义数据帧获得目标视频码流,并将所述目标视频码流通过指定通道发送。

第四方面,本申请实施例还提供了一种电子设备,包括:

一个或多个处理器;

存储器;

一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如上述所述的方法。

第五方面,本申请实施例还提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如上述所述的方法。

本发明提供的技术方案,通过基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧;将待发送的视频辅助数据封装至自定义数据帧;根据所述视频帧和所述自定义数据帧获得目标视频码流,并将所述目标视频码流通过指定通道发送,从而将视频数据和视频辅助数据通过同一通道发送,简化视频数据和视频辅助数据传输的流程。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,而不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例及附图,都属于本发明保护的范围。

图1示出了本申请一实施例所涉及的一种应用环境的示意图;

图2示出了本申请一实施例提出的一种视频处理方法的流程示意图;

图3示出了本申请另一实施例提出的一种视频处理方法的流程示意图;

图4示出了本申请又一实施例提出的一种视频处理方法的流程示意图;

图5示出了本申请又一实施例中目标视频码流的一种结构示意图;

图6示出了本申请又一实施例中步骤S340的流程示意图;

图7示出了本申请再一实施例提出的一种视频处理方法的流程示意图;

图8示出了本申请再一实施例中步骤S450的流程示意图;

图9示出了本申请还一实施例提出的一种视频处理方法的流程示意图;

图10示出了本申请一实施例提出的一种视频处理装置的结构框图;

图11示出了本申请又一实施例提出的一种视频处理装置的结构框图;

图12示出了本申请一实施例提出的一种电子设备的结构框图;

图13示出了本申请一实施例提出的一种计算机可读存储介质的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

随着互联网技术的高速发展,视频技术的应用越来越广泛。通常,终端采集视频数据,并对视频数据进行编码,编码后的视频数据由指定通道进行传输。但视频传输过程中往往不只传输视频文件,还有字幕、音频、以及各种应用场景产生的数据等视频辅助数据。视频辅助数据需要和视频数据一起同步展示。但是上述视频辅助数据与编码后的视频数据分开进行传输,过程繁琐,且由于网络延迟、丢包、解码器性能等原因会影响视频数据和视频辅助数据的同步显示。

为了改善上述问题,本申请的发明人提供一种视频处理方法、装置、电子设备及存储介质。该方法包括:通过基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧;将待发送的视频辅助数据封装至自定义数据帧;根据所述视频帧和所述自定义数据帧获得目标视频码流,并将所述目标视频码流通过指定通道发送,从而将视频数据和视频辅助数据通过同一通道发送,简化视频数据和视频辅助数据传输的流程。

下面将针对本发明实施例提供的视频方法的应用环境进行介绍。

请参阅图1,图1示出了本申请实施例提供的一种视频处理系统,该视频处理系统包括:终端100和服务器200。

终端100包括但不限于笔记本电脑、台式电脑、平板电脑、智能手机、可穿戴电子设备等设备。终端100可以包括图像采集装置,例如摄像头,可以采集原始的视频数据。终端100还可以包括声音采集装置,例如麦克风,可以采集原始的音频数据。终端100还可以包括显示装置,例如显示屏,可以用于展示视频数据。终端100还可以包括播放装置,用于播放视频数据和视频辅助数据。终端100还可以包括声音播放装置,例如扬声器,可以用于展示音频数据。终端100还可以包括存储装置,可以存储终端100的数据,例如视频数据、音频数据、字幕数据等。

服务器200可以是独立的服务器200,也可以是由多个服务器200组成的服务器200集群。服务器200可以实现信息收发、信息处理等功能。例如服务器200可以接收视频采集终端100发送的目标视频码流。服务器200可以将接收的目标视频码流发送给其它播放终端100。

终端100与服务器200之间可以通过互联网实现相互之间的通信。可选地,上述的互联网使用标准通信技术和/或协议。互联网通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible Markup Language,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet Protocol Security,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。

下面将结合附图具体描述本申请的各实施例。

请参阅图2,本申请一实施例提供了一种视频处理方法,可应用于终端100,本实施例描述的是终端100侧的步骤流程,该方法可以包括步骤S110至步骤S130。

步骤S110、基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧。

其中,视频数据是指连续的图像序列,是由连续的图像构成。视频数据可以由终端100的图像采集装置获取。

在本实施例中,终端100可以安装有可获取视频数据的应用程序,例如相机应用程序、即时通讯应用程序、直播应用程序等。可以通过调用上述应用程序的相关功能触发终端100的图像采集终端100获取视频数据,例如调用录制视频、视频聊天、在线直播的功能时,终端100的图像采集装置定时采集图像获得视频数据,。

其中,视频发送请求可以包括待发送视频数据的标识,根据所述标识可以确定待发送的视频数据,视频发送请求用于指示终端100对待发送的视频数据进行处理。

可选地,视频发送请求可以由用户触发。终端100通过监听用户的输入操作,可获取用户触发的视频发送请求。其中,用户的输入操作可以是接触式的,也可以是非接触式的。例如,用户可以通过接触式的输入操作,例如点击与视频发送关联的按钮、选项等,例如发送视频、分享视频、视频聊天、直播等按钮或选项。终端100通过对用户操作的监听,能够检测到用户的点击对象,从而获取该对象对应的视频发送请求,以将该对象对应的视频数据进行处理。再如,用户也可以非接触式的输入操作,例如语音指令、手势指令等,终端100通过对用户操作的监听,能够检测到用户输入的语音指令、手势指令等,从而获取语音指令、手势指令对应的视频发送请求。

可选地,视频发送请求也可以由指定事件触发。可以预先设置触发视频发送请求的事件。例如指定事件可以是结束录制视频的事件,结束视频录制后触发视频发送请求对待发送的视频数据进行处理。指定事件也可以是定时发送的事件,开始录制视频后定时触发视频发送请求对待发送的视频数据进行处理。指定事件还可以是定量发送的事件,开始录制视频后,待发送的视频数据达到阈值时触发视频发送请求对待发送的视频数据进行处理。

视频数据是非压缩的数据,视频数据的数据格式可以是YUV格式、RGB格式等。视频数据的数据量十分巨大,需将视频数据进行编码压缩,以去除空间、时间维度的冗余。视频数据压缩后便于传输,可以节约空间,提高传输效率。通常可以根据视频编码协议对视频数据进行压缩处理。视频编码协议可以是H.264编码协议、H.265编码协议等,根据视频编码协议对待发送的视频数据进行编码处理,获得视频帧。根据不同的视频编码协议,视频帧可以包括多种类型,例如在H.264编码协议中,可以包括I帧、P帧、B帧等。I(Intra-codedpicture)帧即帧内编码图像帧,I帧表示关键帧,这一帧画面的数据完整保留,解码时只需要本帧数据就可以完成,又称为内部画面(intra picture)。P(Predictive-codedPicture)帧,即前向预测编码图像帧。P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。P帧也可以理解为差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据。B(Bidirectionallypredicted picture)帧即双向预测编码图像帧。B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别。也就是说,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。可以理解的是,根据不同的视频编码协议,视频数据可以被编码成不同类型的视频帧,本发明在此不做限制。

步骤S120、将待发送的视频辅助数据封装至自定义数据帧。

其中,视频辅助数据包括音频数据、字幕数据、索引数据等。视频辅助数据可以是终端100在获取视频数据时同时采集的数据,例如终端100的图像采集装置在采集图像获得视频数据时,终端100的声音采集装置可以采集声音获得音频数据。视频辅助数据还可以是用户添加的用于和视频数据播放时一起展示的数据,例如用户在视频数据的相关位置添加字幕数据。

通常视频辅助数据和视频数据是分开进行处理,且分开传输的。一方面,需要分别对视频辅助数据和视频数据进行处理,过程繁琐,占用CPU资源。另一方面,流程由于网络延迟,可能造成视频数据和视频辅助数据先后先后到达或者丢包等问题,有可能已经接收并播放视频数据,但还未接收到视频辅助数据,给视频数据和视频辅助数据的同步显示增加了难度。

为了简化视频数据和视频辅助数据传输的流程,本申请的实施例通过构建自定义数据帧来解决这一难题。

在本申请的实施例中,构建自定义数据帧用于传输视频辅助数据,可以例如在H.264协议中采用SEI(Supplemental Enhancement Information,补充增强信息)数据帧实现。

在本申请的实施例中,利用自定义数据帧承载和传输待发送的视频辅助数据,在视频帧间插入自定义数据帧,自定义数据帧与视频帧一起传输,可以简化数据处理的流程,且视频帧与自定义数据帧一起传输,减小网络延迟的影响。

其中,可以通过设置自定义数据帧的类型,使其与视频帧区分开,解码时可以根据帧的类型区分视频帧和自定义数据帧。

在一些实施方式中,视频辅助数据可以经过压缩处理后再封装至自定义数据帧。例如可以根据音频编码协议对音频数据进行编码处理,音频编码协议可以例如是AAC等协议,从而获得音频帧。进一步地,将音频帧封装至自定义数据帧,从而可以极大地节省空间,自定义数据帧可以承载和传输更多数据。

在另一些实施方式中,视频辅助数据也可以不经过压缩处理直接封装至自定义数据帧。例如可以直接将字幕数据封装至自定义数据帧。

在又一些实施方式中,同一自定义数据帧同时可以封装一种或多种类型的视频辅助数据。

可选地,可以在自定义数据帧的帧头添加指定字段区分自定义数据所封装的数据类型。例如可以用“01”表示音频数据,用“11”表示字幕数据。根据自定义数据帧的指定字段可以快速识别自定义数据帧所封装的视频辅助数据的数据类型,并将视频辅助数据发送至对应的模块进行处理。

步骤S130、根据视频帧和自定义数据帧获得目标视频码流,并将目标视频码流通过指定通道发送。

通常,视频数据和视频辅助数据的传输可以基于数据通信的网络协议进行。例如RTMP(Real Time Messaging Protocol,实时消息传输协议)。RTMP规定终端100与服务器200可以建立一个网络连接(Net Connection),网络连接代表终端100和服务器200之间基础的连通关系。终端100与服务器200之间可以建立多个网络流,网络流代表了多媒体数据的通道,多媒体数据如视频数据和视频辅助数据等。

在现有技术中视频数据和视频辅助数据都是分开处理和传输的。例如视频数据经处理获得视频码流,音频数据经处理形成音频码流。视频码流和音频码流通过网络分别通过各自指定的通道,例如通过建立各自的网络流进行传输。而在本实施例中,将视频帧和自定义数据帧获得目标视频码流

在本实施例中,根据视频帧和自定义数据帧获得目标视频码流。可以理解的是目标视频码流可以由多个视频帧和一个或多个自定义数据帧构成。目标视频码流跟现有的视频码流的区别是在视频帧间插入了封装有视频辅助数据的自定义数据帧,可以在不破坏原有的视频码流的标准(即视频帧仍然可以被识别和播放),还可以加入视频辅助数据,目标视频码流可以通过指定通道,如建立的网络流进行传输,从而视频数据和视频辅助数据由同一指定通道进行传输,降低视频数据和视频辅助数据传输的流程。

本申请一实施例提供的视频处理方法,通过基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧;将待发送的视频辅助数据封装至自定义数据帧;根据所述视频帧和所述自定义数据帧获得目标视频码流,并将所述目标视频码流通过指定通道发送,从而将视频数据和视频辅助数据通过同一通道发送,简化视频数据和视频辅助数据传输的流程。

请参阅图3,本申请另一实施例提供了一种视频处理方法,可应用于视频处理终端100,本实施例描述的是终端100侧的步骤流程,该方法可以包括步骤S210至步骤S250。

步骤S210、基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧。

步骤S220、将待发送的视频辅助数据封装至自定义数据帧。

其中,步骤S210至步骤S220的具体描述请参阅步骤S110至步骤S120,在此不再进行赘述。

步骤S230、根据获得的所有视频帧获得初始视频码流。

待发送的视频数据经视频编码协议处理获得多个视频帧。多个视频帧按照时间顺序排列获得初始视频码流。可选地,视频数据可以根据获取时间设置有时间戳。多个视频帧可以按照时间戳的时间顺序排列获得初始视频码流。

步骤S240、在初始视频码流中插入自定义数据帧获得目标视频码流。

在初始视频码流的视频帧间插入自定义数据帧,可以获得目标视频码流。

自定义数据帧的设置位置可以是任意视频帧的帧间,最终和视频帧形成目标视频码流,即可以实现视频数据和视频辅助数据通过同一通道传输。在接收到目标视频码流时,只要根据帧的类型区别开自定义数据帧和视频帧。分别对自定义数据帧封装的视频辅助数据进行处理,对视频帧封装的视频数据进行处理,通过同步视频数据和视频辅助数据实现同步显示。视频辅助数据设置有时间戳。视频辅助数据可以根据获取时间设置时间戳。例如,获取音频数据时,可以在音频数据设置有时间相关的时间戳。可选地,视频辅助数据的时间戳也可以由用户自定义设置。例如用户在特定视频数据显示时增加对应的字幕,字幕数据的时间戳与特定视频数据的时间戳相同。同步视频数据和视频辅助数据时,可以根据对应的时间戳进行同步。

步骤S250、将目标视频码流通过指定通道发送。

本申请另一实施例提供的视频处理方法,通过基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧;将待发送的视频辅助数据封装至自定义数据帧;根据所述视频帧和所述自定义数据帧获得目标视频码流,并将所述目标视频码流通过指定通道发送,从而将视频数据和视频辅助数据通过同一通道发送,简化视频数据和视频辅助数据传输的流程,降低同步显示的难度。

请参阅图4,本申请又一实施例提供了一种视频处理方法,可应用于视频处理终端100,本实施例描述的是视频处理终端100侧的步骤流程,该方法可以包括步骤S310至步骤S350。

步骤S310、基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧。

步骤S320、将待发送的视频辅助数据封装至自定义数据帧。

步骤S330、根据获得的所有视频帧获得初始视频码流。

其中,步骤S310至步骤S330的具体描述请参阅步骤S210至步骤S230,在此不再进行赘述。

步骤S340、根据自定义数据帧的时间戳在初始视频码流中插入自定义数据帧以获得目标视频码流。

目标视频码流虽然可以通过同一指定通道进行传输,简化数据传输流程和减小网络延迟的影响。但是在接收到目标视频码流时,分别视频帧和自定义数据帧,对视频帧进行解码处理获得视频数据,获取自定义数据帧封装的数据获得视频辅助数据。播放视频时,视频数据和视频辅助数据借助时间戳进行同步播放,而要求播放装置需要具备同步视频数据和视频辅助数据的功能,开发播放装置时需要额外开发同步功能。而且,借助时间戳进行同步,可能由于时间戳存在误差,以及播放过程中误差的积累,视频数据和视频辅助数据会逐渐错位,同步难度大。

为了解决视频数据和视频播放数据播放时的同步问题,本申请的实施例进一步根据自定义数据帧的时间戳在初始视频码流中插入自定义数据帧以获得目标视频码流。

图5示出了本申请又一实施例中目标视频码流的一种结构示意图。在图6中,目标视频码流110包括视频帧111和自定义数据帧112。其中,视频帧111包括第一视频帧111a、第二视频帧111b、第三视频帧111c、第四视频帧111d以及第五视频帧111e。视频帧111按照时间戳的顺序排列,依次为:第一视频帧111a—第二视频帧111b—第三视频帧111c—第四视频帧111d—第五视频帧111e。自定义数据帧112包括第一自定义数据帧112a、第二自定义数据帧112b。在本实施例中第一自定义数据帧112a的时间戳在第二视频帧111b之后,且在第三视频帧111c之前,因此,将第一自定义数据帧112a插入第二视频帧111b和第三视频帧111c之间。第二自定义数据帧112b的时间戳在第四视频帧111d之后,且在第五视频帧111e之前,因此,将第二自定义数据帧112b插入第四视频帧111d和第五视频帧111e之间。根据自定义数据帧112的时间戳将自定义数据帧112插入视频帧111中获得目标视频码流110。可以理解的是,本申请不限制于此,目标视频码流110还可以包括其它必要的信息,例如目标视频码流还可以包括帧头,用于表示目标视频码流的起始位置。目标视频码流还可以包括帧尾,用于表示目标视频码流的结束位置,当然目标视频码流还可以包括其它必要的信息,在此不做限制。

在一些实施方式中,初始视频码流中,视频帧是按时间戳的顺序进行排列。根据自定义数据的时间戳在初始视频码流中的插入自定义数据帧获得目标视频码流。目标视频码流中的视频帧和自定义数据帧即是按时间顺序进行排列。在对目标视频码流进行处理时,可以按照视频帧和自定义数据帧的排列顺序依次处理,即第一帧是视频帧,获取第一帧视频帧,处理获得视频数据进行播放;第二帧是自定义数据帧,获取第二帧自定义数据帧,处理获得视频辅助数据进行播放。如此,即可不用再额外对视频数据和视频辅助数据进行同步处理,视频帧和自定义数据帧按排列顺序依次处理,播放顺序是相互关联的,而不像分别播放时,彼此孤立地按照各自的时间戳进行播放。这样,即使时间戳存在误差,也能根据视频帧和自定义数据帧的顺序,在依次处理时,得到补救和修正。例如第一视频帧的时间戳为第1秒,第一自定义数据帧的时间戳为第1秒,第一自定义数据帧的时间戳为第2秒,第二视频戳的时间戳为第3秒。若将视频帧和自定义数据帧分别处理获得视频数据和视频辅助数据,再进行同步显示。

则根据第一视频帧获得第一视频数据、根据第二视频帧获得第二视频数据,在第1秒播放第一视频数据,在第3秒播放第二视频数据。并且,根据第一自定义数据帧获得第一视频辅助数据,根据第二自定义数据帧获得第二视频辅助数据,在第1秒播放第一视频辅助数据,在第2秒播放第一视频辅助数据,在第4秒播放第二视频辅助数据。

理论播放顺序是:

播放视频数据:第一视频数据(第1秒)-第二视频数据(第3秒)

播放视频辅助数据:第一视频辅助数据(第1秒)-第二视频辅助数据(第2秒。

但实际情况是,如果分开播放视频数据和视频辅助数据,由于每帧数据的播放时间难以精准控制,造成每一帧的数据存在细微差距,差距积累后,不同步便越来越明显。而且视频数据是非线性的,视频辅助数据可能存在线性的数据,也会导致偏差。慢慢的就会出现不同步的情况,要么是视频数据播放快了,要么是视频辅助数据播放快了。

实际播放顺序是:

播放视频数据:第一视频数据(第1秒)-第二视频数据(第3秒)

播放视频辅助数据:第一视频辅助数据(第1秒)-第二视频辅助数据(理论上是第2秒,实际可能由于偏差,最终和第二视频数据都在第3秒播放,导致播放错位)

因此,现有技术中还需要开发同步的方法,在视频数据和非视频数据播放的过程中不断地去纠正偏差,在视频数据播放慢的时候,加快视频数据的播放速度,在视频数据播放快的时候,降低视频数据的播放速度。而这会增加同步难度。

而本申请的实施例,按排列顺序依次处理视频帧和自定义数据帧,在上述例子中,在第二视频辅助数据处理完后才轮到处理第二视频数据,就不会出现第二视频辅助数据和第二视频数据同时播放的的错位情况,极大地降低了同步的难度。

具体地,请参阅图6,图6示出了本申请又一实施例中步骤S340的流程示意图,在本申请的实施例中,步骤S340可以包括:

步骤S341、判断初始视频码流中是否存在自定义数据帧的同步视频帧,其中,同步视频帧为初始视频码流中与自定义数据帧具有相同时间戳的视频帧。

其中,同步视频帧与自定义数据帧具有相同时间戳的视频帧。两者可以相邻设置。由于两帧先后播放时间误差不大。

步骤S342、若存在,则在初始视频码流中将自定义数据帧和同步视频帧相邻设置。

可选地,自定义数据帧和同步视频帧可以是先处理自定义数据帧,再处理同步视频帧,即自定义数据帧设置在同步视频帧之前。可以先播放视频辅助数据,再播放视频数据。

可选地,自定义数据帧和同步视频帧可以是先处理同步视频帧,再处理自定义数据帧,即自定义数据帧设置在同步视频帧之后。可以先播放视频数据,再播放视频辅助数据。

可选地,为了精准控制播放时间,也可以同步视频帧与自定义数据帧相邻设置,再通过设置播放顺序进行控制。

由于视频帧要通过解码处理才可以获得可以播放的视频数据,解码处理较复杂,需要的时间较长。为了进一步提高播放效率,若初始视频码流中存在自定义数据帧的所述同步视频帧,则在初始视频码流中将自定义数据帧和同步视频帧相邻设置,且将自定义数据帧设置于同步视频帧之后。先对同步视频帧进行解码处理,提高播放效率。

步骤S343、若不存在,则在初始视频码流中按照时间戳的先后顺序插入自定义数据帧。

如果不存在时间戳相同的情况,则按照时间戳的先后顺序依次插入自定义数据帧。

步骤S350、将目标视频码流通过指定通道发送。

本申请又一实施例提供的视频处理方法,通过通过基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧;将待发送的视频辅助数据封装至自定义数据帧;根据所述视频帧和所述自定义数据帧获得目标视频码流,并将所述目标视频码流通过指定通道发送,从而将视频数据和视频辅助数据通过同一通道发送,简化视频数据和视频辅助数据传输的流程,同时通过设置视频帧和视频辅助帧的顺序,降低同步显示的难度。

请参阅图7,本申请再一实施例提供了一种视频处理方法,可应用于视频处理终端100,本实施例描述的是视频处理终端100侧的步骤流程,该方法可以包括步骤S410至步骤S420。

步骤S410、基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧。

步骤S420、将待发送的视频辅助数据封装至自定义数据帧。

步骤S430、根据获得的所有视频帧获得初始视频码流。

步骤S440、根据所述自定义数据帧的时间戳在所述初始视频码流中插入所述自定义数据帧以获得目标视频码流。

其中,步骤S410至步骤S440的具体描述请参阅步骤S310至步骤S340,在此不再进行赘述。

步骤S450、根据自定义数据帧的时间戳设置自定义数据帧的帧间顺序,其中,帧间顺序表征自定义数据帧和与其相邻的视频帧的播放顺序。

其中,可以在自定义数据帧的预设字段设置帧间顺序。例如在H.264编码协议中,每一帧都有一个NALU头,占一个字节,且分为三部分:forbidden_zero_bit,nal_ref_idc,nal_unit_type,分别占1,2,5位。其中,nal_ref_idc可以表示当前帧和相邻帧(若是视频帧)之间的关系,比如同时播放,还是当前帧先播放,又或者是相邻帧先播放。

具体地,请参阅图8,图8示出了本申请再一实施例中步骤S450的流程示意图,在本申请的实施例中,步骤S450可以包括:

步骤S451、若自定义数据帧的时间戳和相邻的视频帧的时间戳相同,则将自定义数据帧的帧间顺序设置为第一顺序,第一顺序表征自定义数据帧和相邻的时间戳相同的视频帧同时播放。

如果时间戳相同,则自定义数据帧与相同时间戳的视频帧是同时播放,从而确保精确播放。

步骤S452、若自定义数据帧的时间戳和相邻的视频帧的时间戳不同,则将自定义数据帧的帧间顺序设置为第二顺序,第二顺序表征自定义数据帧和相邻的视频帧按照在目标视频码流中的排列顺序依次播放。

如果时间戳不同,则自定义数据帧与相邻视频帧顺序播放。

步骤S460、将目标视频码流通过指定通道发送。

本申请再一实施例提供的视频处理方法,通过通过基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧;将待发送的视频辅助数据封装至自定义数据帧;根据所述视频帧和所述自定义数据帧获得目标视频码流,并将所述目标视频码流通过指定通道发送,从而将视频数据和视频辅助数据通过同一通道发送,简化视频数据和视频辅助数据传输的流程,且通过设置帧间顺序,确保精确播放。

请参阅图9,本申请还一实施例提供了一种视频处理方法,可应用于视频展示终端100,本实施例描述的是视频展示终端100侧的步骤流程,该方法可以包括步骤S510至步骤S550。

步骤S510、基于视频播放请求,通过指定通道获取目标视频码流。

在本实施例中,终端100可以按照有可获取目标视频码流的应用程序,例如视频播放应用程序、即时通讯应用程序、直播应用程序等。可以通过调用上述应用程序的相关功能触发终端100获取目标视频码流。

其中,视频播放请求可以包括待获取视频数据的标识,根据所述标识可以确定待获取数据对应的目标视频码流,视频播放请求用于指示终端100通过指定通道获取目标视频码流。

可选地,视频播放请求可以由用户触发。终端100通过监听用户的输入操作,可获取用户触发的视频播放请求。其中,用户的输入操作可以是接触式的,也可以是非接触式的。例如,用户可以通过接触式的输入操作,例如点击与视频播放关联的按钮、选项等,例如播放视频、视频聊天、观看直播等按钮或选项。终端100通过对用户操作的监听,能够检测到用户的点击对象,从而获取该对象对应的视频播放请求,以将获取该对象对应的目标视频码流。再如,用户也可以非接触式的输入操作,例如语音指令、手势指令等,终端100通过对用户操作的监听,能够检测到用户输入的语音指令、手势指令等,从而获取语音指令、手势指令对应的视频播放请求。

可选地,视频播放请求也可以由指定事件触发。可以预先设置触发视频播放请求的事件。例如指定事件可以是上一视频播放结束的事件,例如在观看电视剧时,在一集视频播放结束后,自动播放下一集视频。

步骤S520、根据目标视频码流获得视频帧和自定义数据帧。

目标视频码流由视频帧和自定义数据帧构成,可以根据目标视频码流获得视频帧和自定义数据帧。

步骤S530、将视频帧按照视频编码协议进行解码处理获得视频数据。

其中,视频帧是经过压缩的数据,播放视频需要用未经压缩的视频数据。因此可以根据视频编码协议对视频帧进行解码处理以获得视频数据。视频编码协议可以是H.264编码协议、H.265编码协议等。

步骤S540、获取自定义数据帧中封装的视频辅助数据。

其中,自定义数据帧中封装有视频辅助数据,可以通过解封装获取视频辅助数据。视频辅助数据可以是经过压缩的数据,也可以是未经过压缩的数据。在获取的视频辅助数据是经过压缩的数据时,还需要进一步对压缩的视频辅助数据进行解压缩处理。例如获取的视频辅助数据是音频帧,则需要对音频帧进行解码处理,获得音频数据。

可以理解的是,可以按照目标视频码流中视频帧和自定义数据帧的排列顺序,依次对视频帧和自定义数据帧进行处理。

步骤S550、播放视频数据和视频辅助数据。

在一些实施方式中,可以分别获取视频帧中的视频数据、自定义数据帧中的视频辅助数据,再根据时间戳对视频数据和视频辅助数据进行同步,然后再进行播放。

在另一些实施方式中,可以按照视频帧和自定义数据帧的先后顺序依次播放视频数据和视频辅助数据。

可选地,如果视频帧在自定义数据帧之前,则先播放视频数据,再播放视频辅助数据。

可选地,如果视频帧在自定义数据帧之后,则先播放视频辅助数据,再播放视频数据。

在又一些实施方式中,如果自定义数据帧设置了帧间顺序,则按照所设置的帧间顺序进行播放。

可选地,如果自定义数据帧的帧间顺序为第一顺序,则视频辅助数据与时间戳相同的视频数据同步播放。

可选地,如果自定义数据帧的帧间顺序为第二顺序,则视频辅助数据与相邻的视频数据按排列顺序依次播放。

本申请还一实施例提供的视频处理方法,通过通过基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧;将待发送的视频辅助数据封装至自定义数据帧;根据所述视频帧和所述自定义数据帧获得目标视频码流,并将所述目标视频码流通过指定通道发送,从而将视频数据和视频辅助数据通过同一通道发送,简化视频数据和视频辅助数据传输的流程。

请参阅图10,其示出了本发明一个实施例提供的视频处理装置300,该视频处理装置300包括:视频帧获取模块310、自定义数据帧获取模块320以及目标视频码流获取模块330。

视频帧获取模块310,用于基于视频发送请求,将待发送视频数据按照视频编码协议进行编码处理获得视频帧;

自定义数据帧获取模块320,用于将待发送的视频辅助数据封装至自定义数据帧;

目标视频码流获取模块330,用于根据视频帧和自定义数据帧获得目标视频码流,并将目标视频码流通过指定通道发送。

进一步地,该视频处理装置300还包括:

初始视频码流获取模块,用于根据获得的所有视频帧获得初始视频码流。

自定义数据帧插入模块,用于在初始视频码流中插入自定义数据帧获得目标视频码流。

目标视频码流发送模块,用于将目标视频码流通过指定通道发送。

进一步地,该视频处理装置300还包括时间戳自定义数据插入模块。

时间戳自定义数据插入模块,用于根据自定义数据帧的时间戳在初始视频码流中插入自定义数据帧以获得目标视频码流。

进一步地,时间戳自定义数据插入模块包括同步视频帧判断单元、第一设置单元和第二设置单元。

同步视频帧判断单元,用于判断初始视频码流中是否存在自定义数据帧的同步视频帧,其中,同步视频帧为初始视频码流中与自定义数据帧具有相同时间戳的视频帧。

第一设置单元,用于若存在,则在初始视频码流中将自定义数据帧和同步视频帧相邻设置。

第一设置单元还用于若初始视频码流中存在自定义数据帧的所述同步视频帧,则在初始视频码流中将自定义数据帧和同步视频帧相邻设置,且将自定义数据帧设置于同步视频帧之后。

第二设置单元,用于若不存在,则在初始视频码流中按照时间戳的先后顺序插入自定义数据帧。

进一步地,该视频处理装置300还包括帧间顺序设置模块。

帧间顺序设置模块,用于根据自定义数据帧的时间戳设置自定义数据帧的帧间顺序,其中,帧间顺序表征自定义数据帧和与其相邻的视频帧的播放顺序。

进一步地,帧间顺序设置模块包括第一顺序单元和第二顺序单元。

第一顺序单元,用于若自定义数据帧的时间戳和相邻的视频帧的时间戳相同,则将自定义数据帧的帧间顺序设置为第一顺序,第一顺序表征自定义数据帧和相邻的时间戳相同的视频帧同时播放。

第二顺序单元,用于若自定义数据帧的时间戳和相邻的视频帧的时间戳不同,则将自定义数据帧的帧间顺序设置为第二顺序,第二顺序表征自定义数据帧和相邻的视频帧按照在目标视频码流中的排列顺序依次播放。

请参阅图11,其示出了本发明另一个实施例提供的视频处理装置400,该视频处理装置400包括:目标视频码流获取模块410、视频帧和自定义数据帧获取模块420、视频数据获取模块430、视频辅助数据获取模块440以及播放模块450。

目标视频码流获取模块410,用于基于视频播放请求,通过指定通道获取目标视频码流。

视频帧和自定义数据帧获取模块420,用于根据目标视频码流获得视频帧和自定义数据帧。

视频数据获取模块430,用于将视频帧按照视频编码协议进行解码处理获得视频数据。

视频辅助数据获取模块440,用于获取自定义数据帧中封装的视频辅助数据。

播放模块450,用于播放视频数据和视频辅助数据。

请参阅图12,基于上述的视频处理方法,本申请实施例还提供的另一种包括可以执行前述视频处理方法的处理器的电子设备500,电子设备500还包括一个或多个处理器510、存储器520以一个或多个应用程序。其中,该存储器520中存储有可以执行前述实施例中内容的程序,而处理器510可以执行该存储器中存储的程序。

其中,处理器510可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器510利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器520内的指令、程序、代码集或指令集,以及调用存储在存储器内的数据,执行电子设备的各种功能和处理数据。可选地,处理器510可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器510可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics ProcessingUnit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器中,单独通过一块通信芯片进行实现。

存储器520可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器520可用于存储指令、程序、代码、代码集或指令集。存储器520可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如视频播放请求、视频发送请求等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如视频数据、视频辅助数据)等。

请参考图13,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质600中存储有程序代码610,所述程序代码610可被处理器调用执行上述方法实施例中所描述的方法。

计算机可读取存储介质600可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质600包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质600具有执行上述方法中的任何方法步骤的程序代码610的存储空间。这些程序代码610可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码可以例如以适当形式进行压缩。

本发明提供的视频处理方法、装置、电子设备及存储介质,通过基于视频发送请求,将待发送的视频数据按照视频编码协议进行编码处理获得视频帧;将待发送的视频辅助数据封装至自定义数据帧;根据所述视频帧和所述自定义数据帧获得目标视频码流,并将所述目标视频码流通过指定通道发送,从而将视频数据和视频辅助数据通过同一通道发送,简化视频数据和视频辅助数据传输的流程。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

相关技术
  • 视频处理方法、视频处理装置、电子设备及存储介质
  • 视频处理方法、视频处理装置、存储介质与电子设备
技术分类

06120112895181