基于联咏平台NT985XX 编码配置及常见问题解析

article/2025/6/9 8:03:09

一、概述

hd_videoenc 的主要目的是从上层单元获取图像原始数据,并控制视频编码器对该图像进行编码,输出码流后可用于保存档案或进行在线串流。

二、HDAL interface介绍

这部分可以直接参考 video_record.c 这支 sample code,

开启与关闭一路的 venc 模块的顺序如下:

hd_videoenc_init: 对编码进行初始化。

hd_videoenc_open: 开启编码通道。

hd_videoenc_set: 设定 config参数与编码参数。

hd_videoenc_start: 用于生效videoenc模块之参数设定与绑定关系。

hd_videoenc_stop: 停止编码通道。

hd_videoenc_close: 关闭编码通道。

hd_videoenc_uninit:对编码进行去初始化。

hd_videoenc_push_in_buf: 非绑定模式下送入 yuv 给 venc 做编码。

hd_videoenc_pull_out_buf: 取出码流。

hd_videoenc_release_out_buf:释放kflow bs缓冲区空间。

三、hd_videoenc_set模块说明:

参数设置hd_videoenc_set可以分为两部分,一是设定Config 参数,二是设定编码参数。

3.1、设定config参数:

video_record.c 中的 set_enc_cfg()

hd_videoenc_set(path, HD_VIDEOENC_PARAM_PATH_CONFIG, &config); 

3.2、 设定编码参数:

参考 video_record.c 中的 set_enc_param()

3.2.1  in参数

hd_videoenc_set(path, HD_VIDEOENC_PARAM_IN, &param);

3.2.2  out参数

hd_videoenc_set(path, HD_VIDEOENC_PARAM_OUT_ENC_PARAM, &param);

3.2.3  rc参数

hd_videoenc_set(path, HD_VIDEOENC_PARAM_OUT_RATE_CONTROL, &rc_param)

四、cat /proc/hdal/venc/info

编码模块最常用的指令就是 cat /proc/hdal/venc/info,在板端跑完AP之后,下此指令可以打印与其他模块的绑定状态、编码器配置设定、编码参数设定值等等。

4.1、查看绑定状态

可以看到这里是绑定模式,videoenc_0_in_0与videoproc_0_out_0绑定:

若是非绑定模式,bind_src显示null

4.2、 venc max_mem size

Venc的max_mem size可以对应到sample code path config中的参数设定,

其大小则取决于max_w, max_h, svc, ltr, bitrate, enc_ms, sout。

max_mem size=codec_size + bs_buff_size + srcout_size。

五、FAQ

5.1、hd_videoenc_start这支API在流程中起到什么作用?

答:分配kflow和kdrv所需的内存,以及编码参数值设定给kdrv。

5.2、hd_videoenc_start会配置kflow和kdrv所需的内存,那会在什么阶段释放?

答:会在hd_videoenc_close释放内存。

5.3、Videoenc部分各个模块的参数该如何理解?

答:参考文档Novatek_HDAL_Videoenc_Programming_Guide_zh.pdf,该文档对videoenc的参数和api都有详细的解释。

5.4、如何理解报错WRN:_NMR_VdoTrig_TrigAndWait() [VDOTRIG][1] queue frame count >= 90, time = 3180304963 us 。

答:此错误表示videoenc path1没有pull out,导致bs满了会发WRN作警告。

解法:可以下指令echo vdoenc encinfo 1 > /proc/hdal/venc/cmd,看到Bque的值是不是很满,若是90,就要检查流程是否有pull out来解决问题。

5.5、WRN:_NMR_VdoTrig_TrigAndwait() [vDoTRIG][2] input frame idx = 410, size not enough, drop frame,time = 325564535 us。

答:表示videoenc path2 没有release out导致bs缓冲区没有释放空间而报错。

解法:下指令echo vdoenc encinfo 2 > /proc/hdal/venc/cmd查看Bque值,

下指令echo isfve showmsg 2 2048 > /proc/hdal/venc/cmd查看帧间隔时间是否过长或飘忽不定,若下此指令没有任何打印,代表没有取流,确认后需自行检查取流线程是否有误。

参考文献:Novatek HDAL Design Specification - hd_videoenc

          NT9852x_BRC_User_Guide_zh

欲知更多技术内容可点击此处前往大大通阅览~


http://www.hkcw.cn/article/NnlgNoYXSm.shtml

相关文章

【PCI】PCI入门介绍(包含部分PCIe讲解)

先解释一下寻址空间: 机器是32bit的话,意味着4G(2的32次方)寻址空间,内存条作为它的实际物理存储设备。大部分在跑内存程序运行,少部分用来存放其他东西。这是一个常见的4G寻址空间分布(不一定是…

中方批美印太战略:除了挑事端搞乱亚太毫无建树

中方批美“印太战略”:除了挑事端 搞乱亚太 毫无建树5月31日,在新加坡出席香格里拉对话会的中国国防大学教授孟祥青在接受总台记者采访时表示,美国在对话会中制造地区分裂,但是东盟国家更关注合作和发展,这才是地区国家的共同心声。var chan_v_w = 960,chan_v_h = 540,cha…

【NLP 78、手搓Transformer模型结构】

你以为走不出的淤泥,也迟早会云淡风轻 —— 25.5.31 引言 ——《Attention is all you need》 《Attention is all you need》这篇论文可以说是自然语言处理领域的一座里程碑,它提出的 Transformer 结构带来了一场技术革命。 研究背景与目标 在 Transfo…

Attention GhostUNet++ 混合的U-Net

最近看到一个全新的分割网络,虽然这个网络并没有发在什么顶级期刊,但是思路还是有点意思的。它是一个混合结合。他将所有的基本都组合在一起了。大家看名字就可以看出来。

C++23 已移除特性解析

文章目录 引言C23 已移除特性介绍1. 垃圾收集的支持和基于可达性的泄漏检测(P2186R2)背景与原理存在的问题移除的影响 2. 混合宽字符串字面量拼接非良构(P2201R1)宽字符串编码概述混合拼接的问题示例分析移除的意义 3. 不可编码宽…

CTFHub-RCE 命令注入-过滤cat

观察源代码 代码里面可以发现过滤了cat 判断是Windows还是Linux 源代码中有 ping -c 4 说明是Linux 查看有哪些文件 127.0.0.1|ls 打开flag文件 我们尝试将cat转义打开这个文件 127.0.0.1|c\a\t flag_6562854712907.php 可是发现 文本内容显示不出来,所以怀…

Dota2参议院与递增的三元子序列:算法揭示策略与模式的双重世界

博客引言: 在我们的生活中,策略与模式无处不在,它们既是解决问题的关键,也是揭示隐藏规律的钥匙。今天,我们将通过两个有趣的问题,探索算法如何在策略博弈与模式识别中发挥作用。 首先,我们将…

ShenNiusModularity项目源码学习(31:ShenNius.Admin.Mvc项目分析-16)

关键词管理页面用于新建、维护、删除、导入/导出系统CMS管理模块的关键词,关键词信息用于匹配CMS管理模块新建的文章内容中相同的信息,使其点击文章中的关键词时可以跳转到关键词关联的链接。关键词管理页面的后台控制器类KeywordController位于ShenNius…

ESP32-idf学习(三)esp32C3连接iot

一、前言 上一篇用蓝牙作为通信方式,虽然勉强完成了控制,但结果显然不是那么符合我们的预期,既然用蓝牙还需要研究一段时间,那我们就先整一些现成的,不需要研究的!iot云平台!这里当然也是通过w…

五芳斋陷多重困局 业绩下滑与库存压力增大

端午节期间,五芳斋面临了多重挑战。2024年公司营收和净利润双双下滑,分别下降超过14%,依然高度依赖粽子销售。市场方面,公司遭遇代工企业“蜜枣粽异物”风波,品牌形象受损。此外,公司给股东送粽子礼盒的举动被网友解读为清理库存,股价也连续下跌,5月30日更是收跌超7%。…

儿童节愿我们永葆童真 留住那份纯真好奇

今天是六一儿童节,每个孩子都会慢慢长大,而每个大人也都曾是孩子。在岁月的流逝中,那颗童心始终未变。愿我们永远保持童真和对这个世界的爱与好奇,快乐、灿烂、温暖、纯粹,一直可爱。责任编辑:zhangxiaohua

python里面导入yfinance的时候报错

我的代码: import yfinance as yf import os proxy http://127.0.0.1:7890 # 代理设置,此处修改 os.environ[HTTP_PROXY] proxy os.environ[HTTPS_PROXY] proxydata yf.download("AAPL",start"2010-1-1",end"2021-8-1&quo…

window桌面任务栏不见了鼠标移动底部无响应命令重启资源管理器无效解决办法

首先虽然重启是万能的,但是我不想重启啊大哥 以前喜欢用taskkill /f /im explorer 然后start explorerwindow11竟然没效果 ,所以ctrlaltdel 任务管理器 直接找到资源管理器右击重启,发现好了 {C44C69DC-D2BB-4E68-9F11-0AC2E2B5300B}.png 另外 ctrlwinsh…

Rollup打包输出产物遇到的一个坑。(分享心得)

文章目录 前言一、rollup的generateBundle钩子?二、遇到bug之前三、bug解决总结 前言 本人在学习过程中,发现一个基于vite的项目,在打包的过程中遇到了一个bug,就是我在学习开发一个vite插件功能,我需要获取到打包的产…

杭州一凶宅竞拍14轮后七五折成交 低价吸引买家

5月30日,杭州富阳区丁香花园蓝庭5号1703室房源在法拍平台上进行拍卖。该房源建成于2007年前后,建筑面积为200.73平方米,是一套东边套顶跃结构的房子。一层布局为二室三厅一厨二卫南北双阳台,二层则有一室(带书房、走入式衣柜)、一卫、一储藏室、一阳台和两露台。房子评估…

陈伟霆说张启山回来了 爷青回热议

2025年5月31日,电视剧《九门》正式官宣演员阵容及制作信息,在影视圈和粉丝群体中引发了广泛关注和热烈讨论。该剧由南派三叔担任原著及总监制,柏杉执导,优酷全网独播,强大的制作班底和引人入胜的剧情设定使其成为2025年最受期待的民国传奇剧之一。主演阵容方面,陈伟霆时隔…

樊振东回应加盟萨尔布吕肯 迎接新挑战

德甲联赛萨尔布吕肯乒乓球甲级俱乐部宣布,奥运冠军樊振东加盟。樊振东表示,他非常期待在萨尔布吕肯和德甲的新挑战,体验新的环境,并与球队一起赢得更多胜利。官宣声明发布后,莫雷加德也表示,能和樊振东成为队友感到很荣幸。责任编辑:zhangxiaohua

CSS专题之层叠上下文

前言 石匠敲击石头的第 15 次 在平常开发的时候,有时候会遇到使用 z-index 调整元素层级没有效果的情况,究其原因还是因为对层叠上下文不太了解,看了网上很多前辈的文章,决定打算写一篇文章来梳理一下,如果哪里写的有问…

Python实现P-PSO优化算法优化BP神经网络回归模型项目实战

说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在当今数据驱动的时代,回归分析作为预测和建模的重要工具,在科学研究和工业应用中占据着重要…

07.概念三:LayerNorm和Softmax

参考视频:LayerNorm和Softmax概念 那我们第三部分的概念,也就是概念的最后一部分 关于LayerNorm和Softmax的概念、以及最后文字是怎么预测出来的 我们先来看一下这个layer normalization,简称layer norm层归一化。我觉得叫数字缩放&#xff0…