一种控制视频转码设备的方法及转码的方法与流程
1.本发明涉及计算机技术领域,特别是涉及一种控制视频转码设备的方法及转码方法。
背景技术:
2.常用的io操作包含打开设备(open)、关闭设备(close)、读取设备(read)、写入设备(write)和管理设备io(ioctl)等。要想完全控制视频转码设备进行视频的编解码,一般都需要“控制命令”来配置转码参数,获取转码状态。另外,需要“读命令”来获取转码后的视频流和“写命令”来写入需要转码的视频流。而现有通常是通过ioctl来实现这3种命令。ioctl是一个专用于设备输入输出操作的系统调用,其可以通过命令码来告诉驱动程序想要控制设备实现什么操作。例如,在linux系统上,采用nvme驱动的视频转码设备,可以通过ioctl发送0x42命令码来控制设备,通过ioctl发送0x43命令码来读写设备。
3.但是现有的通过ioctl来控制视频转码的方法有很大的局限性。首先,ioctl操作的实现一般都需要管理员权限,并且ioctl操作的兼容性不好,不同的操作系统或虚拟化技术会采用不同的驱动程序,针对每一种驱动程序都需要开发新的接口,这些都限制了视频转码设备的应用。
技术实现要素:
4.本发明提供了一种控制视频转码设备的方法及转码方法,以解决现有技术中通过ioctl进行视频转码存在系统不兼容的问题。
5.第一方面,一种视频转码设备的控制方法,应用于操作系统上,该方法包括:将视频转码设备虚拟为存储设备,并将i/o读写命令的逻辑区块地址lba按照预设划分原则进行划分,按照预设映射原则将不同分段对应不同的预设编解码命令;通过i/o读写命令的逻辑区块地址lba将i/o读写命令映射为预设编解码命令,以通过对所述存储设备发送i/o读写命令来实现对所述视频转码设备的控制,最终实现对视频的压缩处理;其中,所述预设编解码命令包括打开命令、关闭命令、控制命令、读命令和写命令。
6.可选地,所述预设划分原则为以满足对各个预设编解码命令进行标识区分为准进行设置。
7.可选地,将i/o读写命令的逻辑区块地址lba按照预设划分原则进行划分,按照预设映射原则将不同分段对应不同的预设编解码命令,包括:
8.将i/o读写命令的逻辑区块地址lba,按照预设编解码命令所需的标识位将所述i/o读写命令的逻辑区块地址lba依次划分为多段,并按照预设映射原则将不同分段对应不同的预设编解码命令。
9.可选地,所述标识位包括:实例编号标识位、设备类型标识位、命令类型标识位、操作类型标识位和操作子类型标识位;
10.所述实例编号标识位,占据7位,用于对视频流进行标识;
11.所述设备类型标识位,占据1位,用于对解码命令和编码命令进行标识,以区分是解码命令还是编码命令;
12.所述命令类型标识位,占据2位,用于标识命令类型,所述命令类型包括控制命令、读输入流命令和写输入流命令;
13.所述操作类型标识位,占据3位,用于标识控制命令的操作类型,所述操作类型包括:打开实例、关闭实例、查询命令和配置命令;
14.所述操作子类型,占据4位,用于标识区分每种操作类型的具体操作。
15.可选地,所述方法还包括:对所述实例编号标识位、所述设备类型标识位、所述命令类型标识位、所述操作类型标识位和所述操作子类型标识位均对应设置预设位数的保留位,以便于后续增加编码路数和编码类型使用。
16.可选地,所述通过对所述存储设备发送i/o读写命令来实现对所述视频转码设备的控制,包括:
17.通过对所述存储设备发送i/o读写命令来实现控制所述视频转码设备进行相应的操作。
18.可选地,所述将i/o读写命令的逻辑区块地址lba按照预设划分原则进行划分,按照预设映射原则将不同分段对应不同的预设编解码命令,包括:
19.将i/o读写命令的逻辑区块地址lba按照预设划分原则依次划分为多段,并按照划分后的lba分段的顺序,设置将每个lba分段均唯一对应一个预设编解码命令,同时将lba分段与预设编解码命令之间的对应关系进行保存,以供后续查询使用。
20.第二方面,本发明提供了一种基于上述任一种所述的控制方法进行转码的方法,应用于视频转码设备侧,该方法包括:接收操作系统发送来的预设编解码命令;对所述预设编解码命令基于预设映射原则进行解析,获取所述预设编解码命令的实例编号,并根据所述实例编号来配置转码参数,并基于所配置的转码参数完成对所述视频转码设备的控制操作。
21.可选地,所述基于所述实例编号来配置转码参数,包括:基于所述实例编号来配置视频的格式和分辨率。
22.第三方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有信号映射的计算机程序,所述计算机程序被至少一个处理器执行时,以实现本发明上述中任一种所述的视频转码设备的控制方法,和/或,上述中任一种所述的转码的方法。
23.本发明有益效果如下:
24.本发明通过对读写命令的lba(logical block address,逻辑区块地址)进行划分,设定不同的lba代表不同的转码命令,以此来通过i/o读/写命令来实现不同的转码命令,进而实现操作系统与视频转码设备之间的通信,而不受操作系统的显示,并且也不需要赋予管理员权限,从而在保证操作系统安全的前提下,实现视频转码的兼容性。也就是说,本发明保证了视频转码设备在任何操作系统上的兼容性,以及权限管理问题,并对虚拟机,容器等也有很好的支持,不需要额外的权限设定。
25.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
26.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
27.图1是本发明第一实施例提供的一种视频转码设备的控制方法的流程示意图;
28.图2是本发明第一实施例提供的另一种视频转码设备的控制方法的流程示意图;
29.图3是本发明第二实施例提供的一种视频转码方法的流程示意图。
具体实施方式
30.本发明实施例针对现有通过ioctl进行视频转码存在系统不兼容和需要管理员权限的问题,本发明通过对读写命令的lba(logical block address,逻辑区块地址)进行划分,设定不同的lba代表不同的转码命令,以此来通过i/o读/写命令来实现不同的转码命令,进而实现操作系统与视频转码设备之间的通信,而不受操作系统的显示,并且也不需要赋予管理员权限,从而在保证操作系统安全的前提下,实现视频转码的兼容性。以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
31.本发明第一实施例提供了一种视频转码设备的控制方法,参见图1,应用于操作系统上,该方法包括:
32.s101、将视频转码设备虚拟为存储设备,并将i/o读写命令的逻辑区块地址lba按照预设划分原则进行划分,按照预设映射原则将不同分段对应不同的预设编解码命令;
33.也即,本发明实施例是将i/o读写命令的逻辑区块地址lba按照预设划分原则依次划分为多段,并按照划分后的lba分段的顺序,设置将每个lba分段均唯一对应一个预设编解码命令,同时将lba分段与预设编解码命令之间的对应关系进行保存,以供后续查询使用。
34.其中,本发明实施例中的预设划分原则可以是按照lba的分块顺序等进行设置,而本发明实施例中的预设映射原则也是可以任意设置,并在映射完成后,将lba分块和具体对应的命令通过设置标识进行对应,当然也可以通过存储到表格中,通过查表以明了分块和命令的对应关系,等等,具体本领域技术人员可以根据实际需要进行设置,本发明对此不作具体限定。
35.例如,在具体实施时,可以对各个命令来设置与其相唯一对应的编号,然后通过该编号来将lba分块和其对应的命令进行绑定。
36.s102、通过i/o读写命令的逻辑区块地址lba将i/o读写命令映射为预设编解码命令,以通过对所述存储设备发送i/o读写命令来实现对所述视频转码设备的控制,最终实现对视频的压缩处理;
37.其中,所述预设编解码命令包括打开命令、关闭命令、控制命令、读命令和写命令。
38.也就是说,本发明实施例是通过对读写命令的lba(logical block address,逻辑区块地址)进行划分,设定不同的lba代表不同的转码命令,以此来通过i/o读/写命令来实现不同的转码命令,进而实现操作系统与视频转码设备之间的通信,而不受操作系统的显示,并且也不需要赋予管理员权限,从而在保证操作系统安全的前提下,实现视频转码的兼
容性。也即通过本发明实施例所说的方法能够保证设备在任何操作系统上的兼容性,以及权限管理问题,并对虚拟机,容器等也有很好的支持,不需要额外的权限设定。
39.简单来说,本发明实施例是以满足对各个预设编解码命令进行标识区分为原则,来将i/o读写命令的逻辑区块地址lba进行划分,使得不同分段对应不同的预设编解码命令,从而实现通过i/o读写命令来对视频转码设备进行控制。也即,本发明实施例是通过对所述存储设备发送i/o读写命令来实现控制所述视频转码设备进行相应的操作。
40.具体实施时,本发明实施例是将i/o读写命令的逻辑区块地址lba,按照预设编解码命令所需的标识位将所述i/o读写命令的逻辑区块地址lba依次划分为多段,并按照预设映射原则将不同分段对应不同的预设编解码命令。
41.具体来说,本发明实施例中的标识位可以包括:实例编号标识位、设备类型标识位、命令类型标识位、操作类型标识位和操作子类型标识位;
42.其中,实例编号标识位,占据7位,用于对视频流进行标识;设备类型标识位,占据1位,用于对解码命令和编码命令进行标识,以区分是解码命令还是编码命令;命令类型标识位,占据2位,用于标识命令类型,所述命令类型包括控制命令、读输入流命令和写输入流命令;操作类型标识位,占据3位,用于标识控制命令的操作类型,所述操作类型包括:打开实例、关闭实例、查询命令和配置命令;操作子类型,占据4位,用于标识区分每种操作类型的具体操作。
43.当然上述的各个标识的设置仅仅是一个示例,在具体实施时,本领域技术人员可以根据实际需要进行任意设置,本发明对此不作具体限定。
44.在具体实施时,为了后续扩充使用需要,本发明实施例所述的方法还可以对所述实例编号标识位、所述设备类型标识位、所述命令类型标识位、所述操作类型标识位和所述操作子类型标识位均对应设置预设位数的保留位,以便于后续增加编码路数和编码类型使用。
45.在完成上述的设置时,即可通过对转码设备发送i/o读写命令来实现对转码设备的编解码功能。
46.下面将结合图2通过一个具体的例子来对本发明实施例所述的方法进行详细的解释和说明:
47.本发明实施例中的视频转码设备将被系统识别为具有一定容量的存储设备,可以支持存储设备常用的管理命令,但不具有数据的存储功能。其显示的存储容量只是虚拟容量,用于实现视频转码的各种命令。通过读/写特定lba地址来控制视频转码设备进行编解码。
48.要想实现控制视频的转码流程至少需要实现3种类型的命令:控制命令,写输入流命令,读输出流命令。本发明通过不同的lba地址来区分不同的命令。以最多支持128路视频转码的转码设备为例,实例编号需要占据7位,加上设备类型、操作类型、操作子类型和保留位,一共需要30位的地址才能区分所有的命令。假设转码设备的最小逻辑块是512字节,即每个lba对应512字节(byte)大小,那lba的寻址范围需要为十六进制的0x0~0x3fff ffff,一共有30位(位0到位29),则需要配置转码设备的虚拟容量为512bytes
×230
=512gb。具体各个位的配置如下。
[0049][0050]
本发明实施例中的3种命令的通用标识位有3种,实例编号,设备类型,命令类型,其中,实例编号:占据7位,范围为0到127,是一路视频流的标识。视频转码设备通过实例编号来区分当前命令属于哪一路编码流。
[0051]
设备类型:占据1位,用于区分是解码命令(0)还是编码命令(1)。
[0052]
命令类型:占据2位,用于说明命令的类型,主要分为控制命令(00)、读输入流命令(01)和写输入流命令(10)。
[0053]
控制命令还包含另外的2种标识位,操作类型和操作子类型。
[0054]
操作类型:占据3位,主要用于说明控制命令的操作类型,主要分为4种:打开实例(000)、关闭实例(001)、查询命令(010)和配置命令(011)。
[0055]
操作子类型:占据4位,主要用于区分每种操作类型的具体操作。如查询命令又可分为写入缓存查询、输出流查询、错误查询等等。
[0056]
保留位:预留位,为方便以后增加编码路数,编码类型等。
[0057]
参见图2,本发明实施例中的视频转码的控制方法包括:
[0058]
步骤1:发送控制命令获取转码实例;
[0059]
一个视频转码设备可以同时支持多路转码实例,通过发送“获取实例编号”命令得到转码实例的编号,后续的转码命令都会包含编号信息,用来区分各路转码流,完成后进行步骤2;
[0060]
步骤2:发送控制命令配置转码参数。包括视频的格式、分辨率等等。若成功进行步骤3,否则步骤13;
[0061]
步骤3:发送控制命令查询实例状态。若成功进行步骤4,否则步骤13;
[0062]
步骤4:确认是否需要发送控制命令结束转码。若是进行步骤13,否则进行步骤12继续转码;
[0063]
步骤5:发送控制命令查询输入状态。若成功进行步骤6,否则步骤13;
[0064]
步骤6:通过步骤5获取的状态信息查看输入缓存是否已满,若是等待一定时间后继续步骤5,重新查询,否则步骤6;
[0065]
步骤7:当转码设备有足够的缓存时,通过写命令发送输入流给转码设备。
[0066]
发送完成后进行步骤8;
[0067]
步骤8:发送控制命令查询输出状态,若有错误或者检测到转码结束则进行步骤13,否则步骤9;
[0068]
步骤9:通过步骤8获取的状态信息查看是否有解码完成的输出流,若是进行步骤10,否则步骤11;
[0069]
步骤10:当转码设备有输出流时,通过读命令从转码设备获取输入流。发送完成后进行步骤4;
[0070]
步骤11:当没有输出流时,需要检查是否已经给转码设备发送结束命令,若是则需
要等待一段时间后继续步骤8查询输出状态,直到所有的写入流都转码完成或发生错误,否则步骤4;
[0071]
步骤12:当需要发送转码结束命令时,发送控制命令通知转码卡转码结束,转码卡会在收到转码结束命令后继续把已经收到的流解码完成;
[0072]
步骤13:当检测到错误,或者转码结束之后,发送控制命令关闭转码实例。
[0073]
我们的方法通过对读/写命令的lba进行划分,不同的lba代表不同的转码命令,以此来实现对转码设备的控制。实践证明,本发明实施例所述的方法兼容性好,开发周期短,成本低,稳定性好,传输速度快,可以有效保证和视频转码设备进行高效稳定的通信。
[0074]
本发明第二实施例提供了一种基于本发明第一实施例中任一种所述的控制方法进行转码的方法,参见图3,应用于视频转码设备侧,该方法包括:
[0075]
s301、接收操作系统发送来的预设编解码命令;
[0076]
s302、对所述预设编解码命令基于预设映射原则进行解析,获取所述预设编解码命令的实例编号,并根据所述实例编号来配置转码参数,并基于所配置的转码参数完成对所述视频转码设备的控制操作。
[0077]
具体本发明实施例中对所述视频转码设备的控制操作包括打开命令、关闭命令、控制命令、读命令和写命令等等,具体本领域技术人员可以进行任意设定,本发明对此不作详细赘述。
[0078]
也就是说,通过设置使得视频转码设备能够基于操作系统发来的命令进行编解码等操作,实现不同操作系统均可以对视频转码设备的控制。
[0079]
具体实施时视频转码设备是基于所述实例编号来配置视频的格式和分辨率,以满足用户的不同使用需求。
[0080]
本发明实施例的相关内容可以参见本发明第一实施例进行理解,在此不做详细赘述。
[0081]
本发明第三实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有信号映射的计算机程序,所述计算机程序被至少一个处理器执行时,以实现本发明第一实施例中任一种所述视频转码设备的控制方法,以及本发明第二实施例所述的转码的方法。。
[0082]
本发明实施例的相关内容可参见本发明第一实施例和第二实施例进行理解,在此不做详细论述。
[0083]
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
技术特征:
1.一种视频转码设备的控制方法,其特征在于,应用于操作系统上,该方法包括:将视频转码设备虚拟为存储设备,并将i/o读写命令的逻辑区块地址lba按照预设划分原则进行划分,按照预设映射原则将不同分段对应不同的预设编解码命令;通过i/o读写命令的逻辑区块地址lba将i/o读写命令映射为预设编解码命令,以通过对所述存储设备发送i/o读写命令来实现对所述视频转码设备的控制,最终实现对视频的压缩处理;其中,所述预设编解码命令包括打开命令、关闭命令、控制命令、读命令和写命令。2.根据权利要求1所述的方法,其特征在于,所述预设划分原则为以满足对各个预设编解码命令进行标识区分为准进行设置。3.根据权利要求1所述的方法,其特征在于,将i/o读写命令的逻辑区块地址lba按照预设划分原则进行划分,按照预设映射原则将不同分段对应不同的预设编解码命令,包括:将i/o读写命令的逻辑区块地址lba,按照预设编解码命令所需的标识位将所述i/o读写命令的逻辑区块地址lba依次划分为多段,并按照预设映射原则将不同分段对应不同的预设编解码命令。4.根据权利要求3所述的方法,其特征在于,所述标识位包括:实例编号标识位、设备类型标识位、命令类型标识位、操作类型标识位和操作子类型标识位;所述实例编号标识位,占据7位,用于对视频流进行标识;所述设备类型标识位,占据1位,用于对解码命令和编码命令进行标识,以区分是解码命令还是编码命令;所述命令类型标识位,占据2位,用于标识命令类型,所述命令类型包括控制命令、读输入流命令和写输入流命令;所述操作类型标识位,占据3位,用于标识控制命令的操作类型,所述操作类型包括:打开实例、关闭实例、查询命令和配置命令;所述操作子类型,占据4位,用于标识区分每种操作类型的具体操作。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:对所述实例编号标识位、所述设备类型标识位、所述命令类型标识位、所述操作类型标识位和所述操作子类型标识位均对应设置预设位数的保留位,以便于后续增加编码路数和编码类型使用。6.根据权利要求1-5中任意一项所述的方法,其特征在于,所述通过对所述存储设备发送i/o读写命令来实现对所述视频转码设备的控制,包括:通过对所述存储设备发送i/o读写命令来实现控制所述视频转码设备进行相应的操作。7.根据权利要求1-5中任意一项所述的方法,其特征在于,所述将i/o读写命令的逻辑区块地址lba按照预设划分原则进行划分,按照预设映射原则将不同分段对应不同的预设编解码命令,包括:将i/o读写命令的逻辑区块地址lba按照预设划分原则依次划分为多段,并按照划分后的lba分段的顺序,设置将每个lba分段均唯一对应一个预设编解码命令,同时将lba分段与预设编解码命令之间的对应关系进行保存,以供后续查询使用。
8.一种基于权利要求1-7中任意一项所述的控制方法进行转码的方法,其特征在于,应用于视频转码设备侧,该方法包括:接收操作系统发送来的预设编解码命令;对所述预设编解码命令基于预设映射原则进行解析,获取所述预设编解码命令的实例编号,根据所述实例编号来配置转码参数,并基于所配置的转码参数完成对所述视频转码设备的控制操作。9.根据权利要求8所述的方法,其特征在于,所述基于所述实例编号来配置转码参数,包括:基于所述实例编号来配置视频的格式和分辨率。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有信号映射的计算机程序,所述计算机程序被至少一个处理器执行时,以实现权利要求1-7中任意一项所述的视频转码设备的控制方法,和/或,权利要求8或9所述的转码的方法。
技术总结
本发明公开了一种控制视频转码设备的方法及转码方法,本发明通过对读写命令的LBA进行划分,设定不同的LBA代表不同的转码命令,以此来通过I/O读/写命令来实现不同的转码命令,进而实现操作系统与视频转码设备之间的通信,而不受操作系统的限制,并且也不需要赋予管理员权限,从而在保证操作系统安全的前提下,实现视频转码的兼容性。也就是说,本发明保证了视频转码设备在任何操作系统上的兼容性,以及权限管理问题,并对虚拟机,容器等也有很好的支持,不需要额外的权限设定。不需要额外的权限设定。不需要额外的权限设定。