视频转码方法、转码器、电子设备及存储介质与流程

文档序号:20616731发布日期:2020-05-06 20:15阅读:251来源:国知局
视频转码方法、转码器、电子设备及存储介质与流程

本发明涉及视频处理技术领域,特别是涉及一种视频转码方法、转码器、电子设备及存储介质。



背景技术:

随着视频业务的迅速发展,各种基于视频的双向通信业务随之出现。比如视频会议、可视电话等。随着视频处理技术的发展,视频出现多种分辨率,如720p、1080p、4k、8k等。分辨率的增大随之而来的是视频的数据量越来越大,在传输前通常要对视频进行编码以节省带宽。对视频的编码格式也存在多种,如h.264、h.265、avs(audiovideocodingstandard,音视频编码标准)等。

由于视频存在多种分辨率以及多种编码格式,导致某些终端可能无法支持某些分辨率或者编码格式。现有技术一般采用升级终端的方式,一般需要更换新的硬件,处理过程复杂,并且新的硬件如果要覆盖多种分辨率以及编码格式,需要较为昂贵的芯片来支撑,大大提高成本。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种视频转码方法、转码器、电子设备及存储介质。

第一方面,本发明实施例公开了一种视频转码方法,所述方法应用于多路转码器中,所述多路转码器分别与视联网服务器和多个视联网终端通信连接;所述方法包括:

获取第一设备发送的视频数据包,解析得到所述视频数据包对应的第一编解码信息和目标视联网终端的标识;

根据所述目标视联网终端的标识获取目标视联网终端支持的第二编解码信息;

在所述第一编解码信息和所述第二编解码信息不兼容时,根据所述第二编解码信息对所述视频数据包进行转码;

将转码后的视频数据包传输至第二设备;

所述第一设备为源视联网终端,所述第二设备为视联网服务器;或者,所述第一设备为视联网服务器,所述第二设备为目标视联网终端。

可选地,所述多路转码器与后台管理端通信连接,所述第一编解码信息包括第一编码格式和第一分辨率,所述第二编解码信息包括第二编码格式和第二分辨率;所述根据所述第二编解码信息对所述视频数据包进行转码,包括:将所述视频数据包的编码格式由所述第一编码格式转换为所述第二编码格式;将所述第二分辨率传输至所述后台管理端;接收所述后台管理端针对所述第二分辨率返回的响应信息,根据所述响应信息对所述视频数据包的分辨率进行转码。

可选地,所述根据所述响应信息对所述视频数据包的分辨率进行转码,包括:在所述响应信息为允许转码指令时,将所述视频数据包的分辨率由所述第一分辨率转换为所述第二分辨率;在所述响应信息为目标分辨率时,确定自身是否支持所述目标分辨率;所述目标分辨率为所述目标视联网终端的显示器支持的分辨率;在自身支持所述目标分辨率时,将所述视频数据包的分辨率由所述第一分辨率转换为所述目标分辨率;在自身不支持所述目标分辨率时,保持所述视频数据包的分辨率为所述第一分辨率。

可选地,所述多路转码器包括至少两个编解码芯片;所述方法还包括:分别按照预设的时间间隔获取各编解码芯片的负载信息。

可选地,在所述根据所述第二编解码信息对所述视频数据包进行转码之前,还包括:根据当前编解码芯片的负载信息,确定所述当前编解码芯片是否满足对所述视频数据包进行转码;所述当前编解码芯片为所述获取第一设备发送的视频数据包的编解码芯片;在所述当前编解码芯片不满足对所述视频数据包进行转码时,根据其它编解码芯片的负载信息,从其它编解码芯片中选取一个满足对所述视频数据包进行转码的目标编解码芯片;所述根据所述第二编解码信息对所述视频数据包进行转码,包括:利用所述目标编解码芯片根据所述第二编解码信息,对所述视频数据包进行转码。

第二方面,本发明实施例公开了一种转码器,所述转码器为多路转码器,所述多路转码器分别与视联网服务器和多个视联网终端通信连接;所述多路转码器包括:

解析模块,用于获取第一设备发送的视频数据包,解析得到所述视频数据包对应的第一编解码信息和目标视联网终端的标识;

第一获取模块,用于根据所述目标视联网终端的标识获取目标视联网终端支持的第二编解码信息;

转码模块,用于在所述第一编解码信息和所述第二编解码信息不兼容时,根据所述第二编解码信息对所述视频数据包进行转码;

传输模块,用于将转码后的视频数据包传输至第二设备;

所述第一设备为源视联网终端,所述第二设备为视联网服务器;或者,所述第一设备为视联网服务器,所述第二设备为目标视联网终端。

可选地,所述多路转码器与后台管理端通信连接,所述第一编解码信息包括第一编码格式和第一分辨率,所述第二编解码信息包括第二编码格式和第二分辨率;所述转码模块包括:第一转码单元,用于将所述视频数据包的编码格式由所述第一编码格式转换为所述第二编码格式;分辨率传输单元,用于将所述第二分辨率传输至所述后台管理端;第二转码单元,用于接收所述后台管理端针对所述第二分辨率返回的响应信息,根据所述响应信息对所述视频数据包的分辨率进行转码。

可选地,所述第二转码单元包括:第一转换子单元,用于在所述响应信息为允许转码指令时,将所述视频数据包的分辨率由所述第一分辨率转换为所述第二分辨率;确定子单元,用于在所述响应信息为目标分辨率时,确定自身是否支持所述目标分辨率;所述目标分辨率为所述目标视联网终端的显示器支持的分辨率;第二转换子单元,用于在自身支持所述目标分辨率时,将所述视频数据包的分辨率由所述第一分辨率转换为所述目标分辨率;在自身不支持所述目标分辨率时,保持所述视频数据包的分辨率为所述第一分辨率。

可选地,所述多路转码器包括至少两个编解码芯片;所述多路转码器还包括:第二获取模块,用于分别按照预设的时间间隔获取各编解码芯片的负载信息。

可选地,所述多路转码器还包括:确定模块,用于根据当前编解码芯片的负载信息,确定所述当前编解码芯片是否满足对所述视频数据包进行转码;所述当前编解码芯片为所述获取第一设备发送的视频数据包的编解码芯片;选取模块,用于在所述当前编解码芯片不满足对所述视频数据包进行转码时,根据其它编解码芯片的负载信息,从其它编解码芯片中选取一个满足对所述视频数据包进行转码的目标编解码芯片;所述转码模块,具体用于利用所述目标编解码芯片根据所述第二编解码信息,对所述视频数据包进行转码。

第三方面,本发明实施例公开了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质;当所述指令由所述一个或多个处理器执行时,使得所述处理器执行如上任一项所述的视频转码方法。

第四方面,本发明实施例公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一项所述的视频转码方法。

本发明实施例中,设置多路转码器,多路转码器分别与视联网服务器和多个视联网终端通信连接。多路转码器获取第一设备发送的视频数据包,解析得到所述视频数据包对应的第一编解码信息和目标视联网终端的标识;根据所述目标视联网终端的标识获取目标视联网终端支持的第二编解码信息;在所述第一编解码信息和所述第二编解码信息不兼容时,根据所述第二编解码信息对所述视频数据包进行转码;将转码后的视频数据包传输至第二设备;所述第一设备为源视联网终端,所述第二设备为视联网服务器;或者,所述第一设备为视联网服务器,所述第二设备为目标视联网终端。由此可知,本发明实施例中,在将源视联网终端发送的视频数据包传输至目标视联网终端之前,由多路转码器根据目标视联网终端的编解码信息对视频数据包进行转码操作,得到目标视联网终端能够处理的视频数据包传输给目标视联网终端。因此,无需对视联网终端进行升级,并且多路转码器能够覆盖多种分辨率以及编码格式,能够处理多路视联网终端的视频数据包,处理过程更加简便,成本较低。

附图说明

图1是本发明实施例一的一种视频转码方法的步骤流程图。

图2是本发明实施例二的一种视频转码方法的步骤流程图。

图3是本发明实施例三的一种设备连接的示意图。

图4是本发明实施例三的一种数据交换板的结构图。

图5是本发明实施例三的一种采集板的结构图。

图6是本发明实施例三的一种视频转码的流程示意图。

图7是本发明实施例四的一种转码器的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

在视联网中,两个视联网终端之间传输的数据要经过视联网服务器的转发。本发明实施例中设置多路转码器,多路转码器分别与视联网服务器和多个视联网终端通信连接,用于针对视联网终端和视联网服务器两者之间传输的视频数据包,判断是否需要转码,并在需要转码时进行转码操作。从而无需再对视联网终端升级,简化处理过程,降低成本。视联网终端可以为机顶盒、协转网关、流媒体网关,等等。

下面,对本发明实施例中的视频转码方法进行详细说明。

实施例一

参照图1,示出了本发明实施例一的一种视频转码方法的步骤流程图。本发明实施例的视频转码方法可以应用于多路转码器中。

本发明实施例的视频转码方法可以包括以下步骤:

步骤101,获取第一设备发送的视频数据包,解析得到所述视频数据包对应的第一编解码信息和目标视联网终端的标识。

在视频数据包中会封装该视频数据包对应的编解码信息和目标视联网终端的标识等信息。多路转码器在获取到第一设备发送的视频数据包后,对视频数据包进行解析,得到该视频数据包对应的编解码信息和目标视联网终端的标识。本发明实施例中将第一设备发送的视频数据包对应的编解码信息称为第一编解码信息。

步骤102,根据所述目标视联网终端的标识获取目标视联网终端支持的第二编解码信息。

多路转码器中可以预先保存各视联网终端的标识与支持的编解码信息的对应关系。多路转码器根据解析得到的目标视联网终端的标识,通过查询上述对应关系可以获取目标视联网终端支持的编解码信息。本发明实施例中将目标视联网终端支持的编解码信息称为第二编解码信息。

步骤103,在所述第一编解码信息和所述第二编解码信息不兼容时,根据所述第二编解码信息对所述视频数据包进行转码。

步骤104,将转码后的视频数据包传输至第二设备。

多路转码器在得到第一编解码信息和第二编解码信息后,确定第一编解码信息和第二编解码信息是否兼容。其中,第一编解码信息和第二编解码信息是否兼容,可以指第一编解码信息和第二编解码信息是否相同。

如果第一编解码信息和第二编解码信息不兼容时,则根据第二编解码信息对视频数据包进行转码,并将转码后的视频数据包传输至第二设备。如果第一编解码信息和第二编解码信息兼容时,则多路转码器不对视频数据包进行转码,对视频数据包进行数据转发透传即可,也即多路转码器将第一设备发送的视频数据包传输至第二设备。

在实际应用中,当源视联网终端要向目标视联网终端发送视频数据包时,该视频数据包要经过视联网服务器的转发。如果在源视联网终端和视联网服务器之间连接有多路转码器,则该多路转码器要对源视联网终端发送至视联网服务器的视频数据包进行处理。如果在视联网服务器和目标视联网终端之间连接有多路转码器,则该多路转码器要对视联网服务器发送至目标视联网终端的视频数据包进行处理。因此,本发明实施例中第一设备为源视联网终端,第二设备为视联网服务器;或者,第一设备为视联网服务器,第二设备为目标视联网终端。

比如,源视联网终端和目标视联网终端均连接多路转码器。

当源视联网终端向视联网服务器发送视频数据包时,第一设备为源视联网终端,第二设备为视联网服务器。与源视联网终端连接的多路转码器获取源视联网终端发送的视频数据包,从该视频数据包中解析出第一编解码信息和目标视联网终端的标识,此处的第一编解码信息为源视联网终端编码时采用的编解码信息。根据目标视联网终端的标识获取目标视联网终端支持的第二编解码信息。在第一编解码信息和第二编解码信息不兼容时,根据第二编解码信息对视频数据包进行转码,将转码后的视频数据包传输至视联网服务器。在第一编解码信息和第二编解码信息兼容时,不进行转码,将源视联网终端发送的视频数据包传输至视联网服务器。

当视联网服务器向目标视联网终端发送视频数据包时,第一设备为视联网服务器,第二设备为目标视联网终端。与目标视联网终端连接的多路转码器获取视联网服务器发送的视频数据包,从该视频数据包中解析出第一编解码信息和目标视联网终端的标识。如果上述与源视联网终端连接的多路转码器对源视联网终端发送的视频数据包进行了转码,则此处的第一编解码信息为与源视联网终端连接的多路转码器对视频数据包转码后的编解码信息;如果上述与源视联网终端连接的多路转码器没有对源视联网终端发送的视频数据包进行转码,则此处的第一编解码信息为源视联网终端编码时采用的编解码信息。根据目标视联网终端的标识获取目标视联网终端支持的第二编解码信息。由于上述与源视联网终端连接的多路转码器已经进行了一次兼容判断及转码操作,因此与目标视联网终端连接的多路转码器将判断出第一编解码信息和第二编解码信息兼容,因此无需进行转码,将视联网服务器发送的视频数据包传输至目标视联网终端。

比如,源视联网终端连接多路转码器,目标视联网终端未连接多路转码器。

当源视联网终端向视联网服务器发送视频数据包时,第一设备为源视联网终端,第二设备为视联网服务器。与源视联网终端连接的多路转码器获取源视联网终端发送的视频数据包,从该视频数据包中解析出第一编解码信息和目标视联网终端的标识,此处的第一编解码信息为源视联网终端编码时采用的编解码信息。根据目标视联网终端的标识获取目标视联网终端支持的第二编解码信息。在第一编解码信息和第二编解码信息不兼容时,根据第二编解码信息对视频数据包进行转码,将转码后的视频数据包传输至视联网服务器。在第一编解码信息和第二编解码信息兼容时,不进行转码,将源视联网终端发送的视频数据包传输至视联网服务器。当视联网服务器向目标视联网终端发送视频数据包时,由于目标视联网终端未连接多路转码器,因此视联网服务器可以直接将与源视联网终端连接的多路转码器发送过来的视频数据包转发至目标视联网终端。

比如,源视联网终端未连接多路转码器,目标视联网终端连接多路转码器。

当源视联网终端向视联网服务器发送视频数据包时,由于源视联网终端未连接多路转码器,因此源视联网终端可以直接将视频数据包发送至视联网服务器。当视联网服务器向目标视联网终端发送视频数据包时,第一设备为视联网服务器,第二设备为目标视联网终端。与目标视联网终端连接的多路转码器获取视联网服务器发送的视频数据包,从该视频数据包中解析出第一编解码信息和目标视联网终端的标识,此处的第一编解码信息为源视联网终端编码时采用的编解码信息。根据目标视联网终端的标识获取目标视联网终端支持的第二编解码信息。在第一编解码信息和第二编解码信息不兼容时,根据第二编解码信息对视频数据包进行转码,将转码后的视频数据包传输至目标视联网终端。在第一编解码信息和第二编解码信息兼容时,不进行转码,将视联网服务器发送的视频数据包传输至目标视联网终端。

本发明实施例中,在将源视联网终端发送的视频数据包传输至目标视联网终端之前,由多路转码器根据目标视联网终端的编解码信息对视频数据包进行转码操作,得到目标视联网终端能够处理的视频数据包传输给目标视联网终端。因此,无需对视联网终端进行升级,并且多路转码器能够覆盖多种分辨率以及编码格式,能够处理多路视联网终端的视频数据包,处理过程更加简便,成本较低。

实施例二

参照图2,示出了本发明实施例二的一种视频转码方法的步骤流程图。

本发明实施例的视频转码方法可以包括以下步骤:

步骤201,获取第一设备发送的视频数据包,解析得到所述视频数据包对应的第一编解码信息和目标视联网终端的标识。

第一编解码信息包括第一编码格式和第一分辨率,第一分辨率为编解码时的分辨率。目标视联网终端的标识可以为目标视联网终端的终端号码、mac(mediaaccesscontrol,媒体访问控制)地址等能够唯一标识视联网终端的信息。

步骤202,根据所述目标视联网终端的标识获取目标视联网终端支持的

第二编解码信息。

第二编解码信息包括第二编码格式和第二分辨率,第二分辨率为目标视联网终端支持的编解码时的分辨率。

步骤203,分别按照预设的时间间隔获取各编解码芯片的负载信息。

本发明实施例中,多路转码器中包括至少两个编解码芯片,编解码芯片可以用于对视频数据包进行转码操作。

多路转码器可以按照预设的时间间隔获取各编解码芯片的负载信息。此处的获取可以为按照预设的时间间隔主动从各编解码芯片中获取,也可以为各编解码芯片按照预设的时间间隔主动上报。编解码芯片中包括多路编解码资源,编解码芯片的负载信息可以指该编解码芯片中已占用的编解码资源的路数。

对于预设的时间间隔的具体数值,本领域技术人员根据实际经验设置任意适用的数值均可,本发明实施例对此不作限制。

步骤204,判断所述第一编解码信息和所述第二编解码信息是否兼容。若否,则执行步骤205;若是,则执行步骤210。

在获取到第一编解码信息和第二编解码信息之后,判断第一编解码信息和第二编解码信息是否兼容。

步骤205,在所述第一编解码信息和所述第二编解码信息不兼容时,根据当前编解码芯片的负载信息,确定所述当前编解码芯片是否满足对所述视频数据包进行转码。若否,则执行步骤206;若是,则执行步骤207。

本发明实施例中,当前编解码芯片为获取第一设备发送的视频数据包,解析得到视频数据包对应的第一编解码信息和目标视联网终端的标识的编解码芯片。

在步骤204中判断出第一编解码信息和第二编解码信息不兼容时,多路转码器根据当前编解码芯片的负载信息,确定当前编解码芯片是否满足对视频数据包进行转码。

在实现中,获取对视频数据包进行转码所需的编解码资源的路数。根据当前编解码芯片的负载信息,也即当前编解码芯片中已占用的编解码资源的路数,确定当前编解码芯片中空闲的编解码资源的路数。具体计算当前编解码芯片中编解码资源的总路数减去已占用的编解码资源的路数,即可得到空闲的编解码资源的路数。判断当前编解码芯片中空闲的编解码资源的路数是否大于或等于对视频数据包进行转码所需的编解码资源的路数。若是,则确定当前编解码芯片满足对视频数据包进行转码;若否,则确定当前编解码芯片不满足对视频数据包进行转码。

步骤206,在所述当前编解码芯片不满足对所述视频数据包进行转码时,根据其它编解码芯片的负载信息,从其它编解码芯片中选取一个满足对所述视频数据包进行转码的目标编解码芯片。

在步骤205中确定出当前编解码芯片不满足对所述视频数据包进行转码时,多路转码器可以根据其它编解码芯片的负载信息,从其它编解码芯片中选取一个满足对所述视频数据包进行转码的目标编解码芯片。

在实现中,针对每个其它编解码芯片,根据该其它编解码芯片的负载信息,也即该其它编解码芯片中已占用的编解码资源的路数,确定该其它编解码芯片中空闲的编解码资源的路数。具体计算该其它编解码芯片中编解码资源的总路数减去已占用的编解码资源的路数,即可得到空闲的编解码资源的路数。判断该其它编解码芯片中空闲的编解码资源的路数是否大于或等于对视频数据包进行转码所需的编解码资源的路数。若是,则确定该其它编解码芯片满足对视频数据包进行转码;若否,则确定该其它编解码芯片不满足对视频数据包进行转码。

多路转码器从其它编解码芯片中选取一个满足对视频数据包进行转码的目标编解码芯片。该选取过程可以为选取与所述当前编解码芯片连接的一个,也可以为随机选取一个,也可以为选取空闲的编解码资源的路数最多的一个。

步骤207,利用所述目标编解码芯片根据所述第二编解码信息,对所述视频数据包进行转码。

在选取一个满足对所述视频数据包进行转码的目标编解码芯片后,利用所述目标编解码芯片根据所述第二编解码信息,对所述视频数据包进行转码。

步骤208,在所述当前编解码芯片满足对所述视频数据包进行转码时,利用所述当前编解码芯片根据所述第二编解码信息,对所述视频数据包进行转码。

在步骤205中确定出当前编解码芯片满足对所述视频数据包进行转码时,利用所述当前编解码芯片根据所述第二编解码信息,对所述视频数据包进行转码。

本发明实施例中,第一编解码信息包括第一编码格式和第一分辨率,第二编解码信息包括第二编码格式和第二分辨率。对于编码格式来说,如果编码格式不兼容,则多路转码器可以自动针对编码格式转码。对于分辨率来说,由于多路转码器考虑的是编解码时的分辨率是否兼容,而并未考虑目标视联网终端的显示器在显示时支持的分辨率(这是因为目标视联网终端能够连接的显示器是不固定的,所以多路转码器很难预先得知目标视联网终端的显示器支持的分辨率),因此如果多路转码器直接针对分辨率进行转码,则可能导致目标视联网终端的显示器显示不正常。

因此,本发明实施例中多路转码器还与后台管理端通信连接,后台管理端可以获取到目标视联网终端的显示器支持的分辨率,因此针对分辨率可以由后台管理端控制是否进行转码。

在上述步骤207和步骤208中,所述根据所述第二编解码信息对所述视频数据包进行转码的过程可以包括步骤a1~a3:

步骤a1,将所述视频数据包的编码格式由所述第一编码格式转换为所述第二编码格式。

对于视频数据包的编码格式,如果第一编码格式和第二编码格式不兼容,则多路转码器将所述视频数据包的编码格式由所述第一编码格式转换为所述第二编码格式。

步骤a2,将所述第二分辨率传输至所述后台管理端。

步骤a3,接收所述后台管理端针对所述第二分辨率返回的响应信息,根据所述响应信息对所述视频数据包的分辨率进行转码。

后台管理端在接收到第二分辨率后,询问目标视联网终端的显示器是否支持第二分辨率。如果目标视联网终端的显示器支持第二分辨率,则目标视联网终端向后台管理端返回支持第二分辨率的信息,后台管理端向多路转码器返回允许转码指令。如果目标视联网终端的显示器不支持第二分辨率,则目标视联网终端向后台管理端返回不支持第二分辨率的信息,并将目标视联网终端的显示器支持的分辨率返回给后台管理端,后台管理端将目标视联网终端的显示器支持的分辨率作为目标分辨率,并向多路转码器返回目标分辨率。

多路转码器接收后台管理端返回的响应信息,根据所述响应信息对所述视频数据包的分辨率进行转码。具体过程可以包括步骤a31~a34:

步骤a31,在所述响应信息为允许转码指令时,将所述视频数据包的分辨率由所述第一分辨率转换为所述第二分辨率。

步骤a32,在所述响应信息为目标分辨率时,确定自身是否支持所述目标分辨率。

步骤a33,在自身支持所述目标分辨率时,将所述视频数据包的分辨率由所述第一分辨率转换为所述目标分辨率。

步骤a34,在自身不支持所述目标分辨率时,保持所述视频数据包的分辨率为所述第一分辨率。

多路转码器在接收到后台管理端返回的目标分辨率后,确定自身是否支持所述目标分辨率,也即自身是否能够将第一分辨率转换为目标分辨率。多路转码器在自身支持目标分辨率时,将视频数据包的分辨率由第一分辨率转换为目标分辨率。多路转码器在自身不支持所述目标分辨率时,保持视频数据包的分辨率为第一分辨率不变,该种情况下可以由目标视联网终端将视频数据包发送至其他支持该目标分辨率的转码器进行转码。

步骤209,将转码后的视频数据包传输至第二设备。

多路转码器在经过步骤207或者步骤208对视频数据包进行转码后,即可将转码后的视频数据包传输至第二设备。

步骤210,在所述第一编解码信息和所述第二编解码信息兼容时,将所述视频数据包传输至第二设备。

在步骤204中判断出所述第一编解码信息和所述第二编解码信息兼容时,无需对视频数据包进行转码,将所述视频数据包传输至第二设备即可。

本发明实施例中,通过多路转码器对视频数据包进行转码,无需对视联网终端进行升级,处理过程简便;通过设置多个编解码芯片,可以扩充多路转码器的编解码能力,并且灵活地分配编解码资源,可以增加处理的数据量,能够处理大数据量并发的场景;通过后台管理端对分辨率的控制,可以保证目标视联网终端的显示器能够正确显示视频。

实施例三

本发明实施例中,多路转码器可以包括数据交换板和多个采集板,数据交换板与视联网服务器通信连接,每个采集板与至少一个视联网终端通信连接。

图3是本发明实施例三的一种设备连接的示意图。如图3所示,多路转码器包括数据交换板、采集板a、采集板b、采集板c和采集板d。数据交换板通过万兆光口与视联网服务器通信连接,数据交换板还可以与后台管理端通信连接。采集板a与终端a通信连接,采集板b与终端b通信连接,采集板c与终端c通信连接,采集板d与协转通信连接。其中,终端a、终端b、终端c与协转均为视联网终端。

图4是本发明实施例三的一种数据交换板的结构图。如图4所示,数据交换板包括两个万兆光口(fiber10gb)、fpga(field-programmablegatearray,现场可编程门阵列)、存储器(如flash闪存等)、卡槽(1~n共n个)。其中,万兆光口用于与视联网服务器连接,fpga与万兆网口连接,fpga与存储器连接,卡槽用于插采集板中的连接器。

图5是本发明实施例三的一种采集板的结构图。如图5所示,采集板包括rj-45接口(1000mb)、两个编解码芯片3531d_a和3531d_b、连接器。其中,rj-45接口用于与视联网终端连接,3531d_a和3531d_b之间通过pcie(peripheralcomponentinterconnectexpress,高速串行计算机扩展总线标准)接口连接,3531d_b通过phy(物理层)接口和连接器与数据交换板的卡槽连接。并且,每个编解码芯片均可以通过iic总线与数据交换板的fpga连接(图中未示出)。

本发明实施例的视频转码过程可以包括:

1、当视频数据包从源视联网终端发送至多路转码器时,多路转码器中的3531d_a会接收到视频数据包,对传输过来的视频数据包进行解析,得到视频数据包对应的第一编解码信息和目标视联网终端的标识。3531d_a通过iic总线将第一编解码信息和目标视联网终端的标识传输给fpga。

2、多路转码器可以实时获取每个视联网终端支持的编解码信息,将这些信息存储在多路转码器内部的数据库(也可以为图4中的存储器)中。fpga根据目标视联网终端的标识从数据库中查询到目标视联网终端支持的第二编解码信息后,判断是否需要进行转码操作。

3、如果无需进行转码操作,则fpga通知3531d_a无需转码,3531d_a通过pcie接口将视频数据包传输给3531d_b,3531d_b将视频数据包传输给fpga,fpga通过万兆网口将视频数据包转发至视联网服务器中。

4、每个编解码芯片通过iic总线,实时将自身的负载信息上报给fpga。如果需要进行转码操作,则fpga判断3531d_a是否能够满足对视频数据包进行转码。如果3531d_a能够满足,则fpga将第二编解码信息回传给3531d_a,3531d_a根据第二编解码信息对视频数据包进行转码。如果3531d_a不能满足,则fpga选择能够满足的3531d_b,将第二编解码信息回传给3531d_b,并通知3531d_a将视频数据包传输至3531d_b。3531d_a通过pcie接口将视频数据包传输至3531d_b,3531d_b根据第二编解码信息对视频数据包进行转码。通过上述方式,fpga能够灵活得对编解码芯片进行调度,编解码芯片之间通过pcie接口传输相关数据,从而实现自动调度,使转码效能最大化。在对视频数据包进行转码的过程中,转码操作过程涉及两类:第一类,编码格式不兼容,如不支持h.264或h.265编解码,这种场景编解码芯片自动进行转码,无需人工确认。第二类,分辨率不兼容,如不支持4k或者8k,这种场景由于可能导致显示异常,编解码芯片会发送分辨率修正信息(包括目标视联网终端支持的分辨率)给后台管理端,后台管理端确认无误后再进行转码。

5、如果3531d_a对视频数据包进行转码,则在转码完成后3531d_a通过pcie接口将转码后的视频数据包传输给3531d_b,3531d_b将转码后的视频数据包传输给fpga,fpga通过万兆网口将转码后的视频数据包转发至视联网服务器中。如果3531d_b对视频数据包进行转码,则在转码完成后3531d_b将转码后的视频数据包传输给fpga,fpga通过万兆网口将转码后的视频数据包转发至视联网服务器中。

6、当视频数据包从视联网服务器发送至多路转码器时,多路转码器的fpga会接收到视频数据包,并将视频数据包传输至3531d_b。3531d_b对传输过来的视频数据包进行解析,得到视频数据包对应的第一编解码信息和目标视联网终端的标识。3531d_b通过iic总线将第一编解码信息和目标视联网终端的标识传输给fpga。

7、fpga根据目标视联网终端的标识从数据库中查询到目标视联网终端支持的第二编解码信息后,判断是否需要进行转码操作。

8、如果无需进行转码操作,则fpga通知3531d_b无需转码,3531d_b通过pcie接口将视频数据包传输给3531d_a,3531d_a将视频数据包传输给目标视联网终端。

9、如果需要进行转码操作,则fpga判断3531d_b是否能够满足对视频数据包进行转码。如果3531d_b能够满足,则fpga将第二编解码信息回传给3531d_b,3531d_b根据第二编解码信息对视频数据包进行转码。如果3531d_b不能满足,则fpga选择能够满足的3531d_a,将第二编解码信息回传给3531d_a,并通知3531d_b将视频数据包传输至3531d_a。3531d_b通过pcie接口将视频数据包传输至3531d_a,3531d_a根据第二编解码信息对视频数据包进行转码。转码方法参照上述过程4的描述即可。

10、如果3531d_b对视频数据包进行转码,则在转码完成后3531d_b通过pcie接口将转码后的视频数据包传输给3531d_a,3531d_a将转码后的视频数据包传输给目标视联网终端。如果3531d_a对视频数据包进行转码,则在转码完成后3531d_a将转码后的视频数据包传输给目标视联网终端。

下面举例说明。图6是本发明实施例三的一种视频转码的流程示意图。如图6所示,视频转码过程可以包括:

1、终端a发送一个数据包m,编码格式为h.265,分辨率为4k。

2、数据包m进入采集板后,由采集板的3531d_a接收,3531d_a通过iic总线,向fpga发送数据包m的编码格式、分辨率以及目标终端b的标识。

3、fpga在获取目标终端b的标识后,在数据库中查询,获得目标终端b的编码格式为h.264、分辨率为1080p。

4、fpga判断出需要进行转码,通过iic总线,将目标终端b的编码格式h.264、分辨率1080p回传给3531d_a。

5、3531d_a开始解码h.265,并向后台管理端发送是否支持将分辨率降至1080p的问询,后台管理端根据实际情况进行选择,控制分辨率是否可变。如果选择否,则3531d_a向终端a回复无法转码操作。如果选择是,则3531d_a将分辨率降低至1080p,并开始进行h.264编码,编码后的数据通过pcie接口传输给3531d_b,3531d_b通过数据交换板,将数据送入视联网服务器中。

对于视联网服务器向目标视联网终端b发送数据包的过程与上述类似,本发明实施例在此不再详细论述。

本发明实施例能够实现不同分辨率、不同编码格式的视频直接互通,同时集约化处理编解码数据,节省成本。

实施例四

参照图7,示出了本发明实施例四的一种转码器的结构框图。本发明实施例的转码器为多路转码器,所述多路转码器分别与视联网服务器和多个视联网终端通信连接。

所述多路转码器包括:

解析模块701,用于获取第一设备发送的视频数据包,解析得到所述视频数据包对应的第一编解码信息和目标视联网终端的标识。

第一获取模块702,用于根据所述目标视联网终端的标识获取目标视联网终端支持的第二编解码信息。

转码模块703,用于在所述第一编解码信息和所述第二编解码信息不兼容时,根据所述第二编解码信息对所述视频数据包进行转码。

传输模块704,用于将转码后的视频数据包传输至第二设备。

所述第一设备为源视联网终端,所述第二设备为视联网服务器;或者,所述第一设备为视联网服务器,所述第二设备为目标视联网终端。

可选地,所述多路转码器与后台管理端通信连接,所述第一编解码信息包括第一编码格式和第一分辨率,所述第二编解码信息包括第二编码格式和第二分辨率;所述转码模块703包括:第一转码单元,用于将所述视频数据包的编码格式由所述第一编码格式转换为所述第二编码格式;分辨率传输单元,用于将所述第二分辨率传输至所述后台管理端;第二转码单元,用于接收所述后台管理端针对所述第二分辨率返回的响应信息,根据所述响应信息对所述视频数据包的分辨率进行转码。

可选地,所述第二转码单元包括:第一转换子单元,用于在所述响应信息为允许转码指令时,将所述视频数据包的分辨率由所述第一分辨率转换为所述第二分辨率;确定子单元,用于在所述响应信息为目标分辨率时,确定自身是否支持所述目标分辨率;所述目标分辨率为所述目标视联网终端的显示器支持的分辨率;第二转换子单元,用于在自身支持所述目标分辨率时,将所述视频数据包的分辨率由所述第一分辨率转换为所述目标分辨率;在自身不支持所述目标分辨率时,保持所述视频数据包的分辨率为所述第一分辨率。

可选地,所述多路转码器包括至少两个编解码芯片;所述多路转码器还包括:第二获取模块,用于分别按照预设的时间间隔获取各编解码芯片的负载信息。

可选地,所述多路转码器还包括:确定模块,用于根据当前编解码芯片的负载信息,确定所述当前编解码芯片是否满足对所述视频数据包进行转码;所述当前编解码芯片为所述获取第一设备发送的视频数据包的编解码芯片;选取模块,用于在所述当前编解码芯片不满足对所述视频数据包进行转码时,根据其它编解码芯片的负载信息,从其它编解码芯片中选取一个满足对所述视频数据包进行转码的目标编解码芯片。所述转码模块703,具体用于利用所述目标编解码芯片根据所述第二编解码信息,对所述视频数据包进行转码。

本发明实施例中,在将源视联网终端发送的视频数据包传输至目标视联网终端之前,由多路转码器根据目标视联网终端的编解码信息对视频数据包进行转码操作,得到目标视联网终端能够处理的视频数据包传输给目标视联网终端。因此,无需对视联网终端进行升级,并且多路转码器能够覆盖多种分辨率以及编码格式,能够处理多路视联网终端的视频数据包,处理过程更加简便,成本较低。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

在本发明的实施例中,还提供了一种电子设备。该电子设备可以包括一个或多个处理器,以及其上存储有指令的一个或多个机器可读介质,指令例如应用程序。当所述指令由所述一个或多个处理器执行时,使得所述处理器执行上述的视频转码方法。

在本发明的实施例中,还提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序可由电子设备的处理器执行,以完成上述的视频转码方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种视频转码方法、转码器、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1