如何在单个程序中使用两个hb_venc编码器

用户您好,请详细描述您所遇到的问题。

1.硬件获取渠道:淘宝

2.当前系统镜像版本:x3_ubuntu_v1.1.5

3.当前天工开物版本:

4.问题定位:使用解码器遇到的问题

5.开发的demo/案例:参考了hobot_codec这个demo中的解码器实现

6.需要提供的解决方案:

目前在一个软件中对NV12格式图像进行编码,分别编码为h264和jpeg都没有问题,但是在同时使用两个编码器时,第二个编码器的初始化会有下面的报错,这个报错抛出自hb_venc.h头文件,希望高手可以解答一下。

我这边没有使用tros,是直接将hobot_codec的库移植出来单独使用,当第二个编码器类初始化的时候,程序会抛出下面错误并结束运行

创建两个编码通道的方式参考如下流程:-
enc = libsrcampy.Encoder()-
ret = enc.encode(0, 1, 1920, 1080)-
print(“Encoder encode return:%d” % ret)-

enc1 = libsrcampy.Encoder()

ret = enc1.encode(1, 1, 1280, 720)

print(“Encoder encode return:%d” % ret)-

具体接口参数说明参考:https://developer.horizon.cc/documents\_rdk/python\_development/pydev\_multimedia\_api\_x3/object\_encoder

您好,已收到您的问题,工程师正在解决中

这个问题是我这边的代码问题还是说目前还不支持单程序双编码器呢?

您好 我这边用的是C++ 不是python的demo 用的是git上面的hobot_codec这个demo修改的

你好,参考接口文档,指定视频编码器通道即可

我这边对不同的编解码器指定的是不同的通道 比如jpeg解码器通道号为0 h264编码器通道为1 jpeg编码器通道为2 这样还是会有一样的报错

tros的hobot_codec的使用方式只支持单输入单输出,即一个进程只实现一个功能。如果要实现同时jpeg和h264编码,需要启动两个hobot codec分别实现两个功能。

如果要实现一个进程同时进行jpeg和h264编码,参考RDK手册的基础codec用法:ENCODER(编码模块)API | RDK X3用户手册 (horizon.cc)

是否有什么方法可以通过修改hobot_codec来实现双编码器的方式呢

然后我这边看了下/app目录下的解码示例和rdk x3的文档,发现了两种不同的接口,一种是HB_开头的也就是hobot_codec使用的API, 还有一种就是您刚刚发的sp_开头的API, 请问这两种API之间有什么区别嘛?

RDK的系统是什么版本?sp_开头的接口是面向普通用户提供的简化接口,HB_开头的接口比较复杂当然灵活性更好,接口说明在RDK手册的第7章节7.9 视频编码 | RDK X3用户手册 (horizon.cc)

x3_ubuntu_v1.1.5 系统版本是这个

这是1.0版本系统,上面发的手册链接都是2.0版本系统,1.0系统的手册是另一个链接。推荐升级到2.0,两个版本系统的说明以及1.0系统手册详见地平线RDK套件 | RDK X3用户手册 (horizon.cc)

好的 不过我这边还是比较关注如何在一个进程内使用两个HB的解码器这个问题 如果您这边有相关的资料可以提供给我对比一下就最好了 不然这边编码只能采用CPU来做还是效率比较低的

目前没有这样的示例,这种使用方式不太普遍。可以先看下HB接口说明,有问题再提。

您这边是做什么产品的,什么功能会需要输出两种编码视频?

我们这边做相机集成 多种相机输入和输出 有IPC网络相机 USB相机 MIPI相机等输入 然后统一处理后输出为http mjpeg流/H264流和原始图像流等等