当前位置: 首页 > news >正文

RV1126+FFMPEG推流项目(7)AI音频模块编码流程

一、AI 模块和外设麦克风的关系

AI 模块是 RV1126 芯片的一个重要组成部分。它的主要功能是将外部接入的麦克风采集到的模拟信号通过内置的驱动程序转换为数字信号。这意味着麦克风作为外设,提供音频输入信号,AI 模块通过其硬件和软件的结合,负责对这些信号的处理和转换。

        音频编码流程主要分三步:AI的初始化、AENC的初始化(硬件编码)绑定AI和AENC节点开启AENC线程进行视频编码的采集,注意一下这里的编码是硬件编码,不是使用ffmpeg软件编码。和视频的流程差不多

        在第三篇的时候,已经介绍过了这RV1126_AI_CONFIG、RV1126_AENC_CONFIG这两个数据结构。回顾一下。


RV1126_AI_CONFIG:

typedef struct
{unsigned int id;   ///< 音频通道ID,用于标识不同的音频输入通道AI_CHN_ATTR_S attr; ///< 音频通道属性,包含通道的具体配置信息
} RV1126_AI_CONFIG;

        里面有一个最重要的成员AI_CHN_ATTR_S,是AI模块的数据结构体。

 编码:rkmedia_module_function.cpp

    //AI模块RV1126_AI_CONFIG rv_ai;memset(&rv_ai, 0, sizeof( RV1126_AI_CONFIG)); //清空结构体rv_ai.id = 0; //AI模块采集通道rv_ai.attr.pcAudioNode = AUDIO_PATH; //默认是default,音频alsa路径rv_ai.attr.enSampleFormat = RK_SAMPLE_FMT_S16; //音频采样深度。rv_ai.attr.enAiLayout = AI_LAYOUT_NORMAL; //音频布局,默认是2rv_ai.attr.u32NbSamples = NB_SAMPLES; //AAC默认1024rv_ai.attr.u32SampleRate = 48000;//音频采样率rv_ai.attr.u32Channels = 2; //音频通道数ret =rkmedia_ai_init(&rv_ai); //if(ret != 0){printf("ai模块初始化\n");}else{printf("ai模块创建成功\n");//把音频的通道号id保存到容器RV1126_AI_CONTAINER ai_container;ai_container.id = 0;ai_container.ai_id = rv_ai.id; //保存进去set_ai_container(0, &ai_container);//设置AI容器}

        基本编码流程也是和视频差不多。

相关文章:

RV1126+FFMPEG推流项目(7)AI音频模块编码流程

一、AI 模块和外设麦克风的关系 AI 模块是 RV1126 芯片的一个重要组成部分。它的主要功能是将外部接入的麦克风采集到的模拟信号通过内置的驱动程序转换为数字信号。这意味着麦克风作为外设&#xff0c;提供音频输入信号&#xff0c;AI 模块通过其硬件和软件的结合&#xff0c…...

四、华为交换机 STP

生成树协议&#xff08;STP&#xff09;的核心目的是在存在冗余链路的网络中&#xff0c;构建一个无环的拓扑结构&#xff0c;从而防止网络环路带来的广播风暴等问题 一、STP 原理 选举根桥&#xff1a;网络中的每台交换机都会有一个唯一的桥 ID&#xff08;BID&#xff09;&am…...

服务器卡顿是否等同于遭受CC攻击?

在网站运营或应用服务过程中&#xff0c;遇到服务器响应缓慢或者卡顿时&#xff0c;很多管理员的第一反应是可能遭遇了CC&#xff08;Challenge Collapsar&#xff09;攻击。但实际情况往往更为复杂。本文将探讨服务器卡顿与CC攻击之间的关系&#xff0c;并提供一些基本的排查方…...

【机器学习实战入门】使用Pandas和OpenCV进行颜色检测

Python 颜色检测项目 今天的项目将非常有趣和令人兴奋。我们将与颜色打交道&#xff0c;并在项目过程中学习许多概念。颜色检测对于识别物体来说是必要的&#xff0c;它也被用作各种图像编辑和绘图应用的工具。 什么是颜色检测&#xff1f; 颜色检测是检测任何颜色名称的过程…...

一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建

文章目录 一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建1. 先回忆webpack是个啥2. webpack四大核心2.1 Entry(入口)2.2 Output(输出)2.3 Loader(加载器)2.4 Plugin(插件) 3. 按部就班实现webpack3.1 初始化项目3.2 完成项目骨架搭建3.3 实现webpack构建 一文…...

RabbitMQ基础篇

文章目录 1 RabbitMQ概述1.1 消息队列1.2 RabbitMQ体系结构 2 RabbitMQ工作模式2.1 简单模式&#xff08;Simple Queue&#xff09;2.2 工作队列模式&#xff08;Work Queues&#xff09;2.3 发布/订阅模式&#xff08;Publish/Subscribe&#xff09;2.4 路由模式&#xff08;R…...

GPT-5 传言:一场正在幕后发生的 AI 变革

新的一年&#xff0c;让我们从一个引人入胜的话题开始&#xff1a;如果我告诉你&#xff0c;GPT-5 并非虚构&#xff0c;而是真实存在呢&#xff1f;它不仅真实存在&#xff0c;而且正在你看不见的地方悄然塑造着世界。我的基本假设是&#xff1a;OpenAI 已经秘密开发出 GPT-5&…...

CSS布局与响应式

学习链接 Grid网格布局 前端五大主流网页布局 flex布局看这一篇就够了 grid布局看这一篇就够了 用六个案例学会响应式布局 伸缩盒响应式页面布局实战 实现响应式布局的五种方式 - csdn 如何完成响应式布局&#xff0c;有几种方法&#xff1f;看这个就够了 响应式布局总…...

C++的auto_ptr智能指针:从诞生到被弃用的历程

C作为一种功能强大的编程语言&#xff0c;为开发者提供了众多便捷的特性和工具&#xff0c;其中智能指针是其重要特性之一。智能指针能够自动管理内存&#xff0c;有效避免内存泄漏等常见问题。然而&#xff0c;并非所有智能指针都尽善尽美&#xff0c;auto_ptr便是其中的一个例…...

iOS - Objective-C 底层实现中的哈希表

1. 关联对象存储&#xff08;AssociationsHashMap&#xff09; // 关联对象的哈希表实现 typedef DenseMap<const void *, ObjcAssociation> ObjectAssociationMap; typedef DenseMap<DisguisedPtr<objc_object>, ObjectAssociationMap> AssociationsHashMa…...

什么是软件架构

什么是软件架构 程序员说&#xff0c;软件架构是要决定编写哪些C程序或OO类、使用哪些库和框架 程序经理说&#xff0c;软件架构就是模块的划分和接口的定义 系统分析员说&#xff0c;软件架构就是为业务领域对象的关系建模 配置管理员说&#xff0c;软件架构就是开发出来的…...

【Golang/nacos】nacos配置的增删查改,以及服务注册的golang实例及分析

前言 本文分析的实例来源于nacos在github上的开源仓库 nacos配置的增删查改 先具体来看一段代码&#xff0c;我将逐步分析每一段的作用 package mainimport ("fmt""time""github.com/nacos-group/nacos-sdk-go/clients""github.com/naco…...

RabbitMQ集群安装rabbitmq_delayed_message_exchange

1、单节点安装rabbitmq安装延迟队列 安装延迟队列rabbitmq_delayed_message_exchange可以参考这个文章&#xff1a; rabbitmq安装延迟队列-CSDN博客 2、集群安装rabbitmq_delayed_message_exchange 在第二个节点 join_cluster 之后&#xff0c;start_app 就会报错了 (CaseC…...

Linux UDP 编程详解

一、引言 在网络编程领域&#xff0c;UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;作为一种轻量级的传输层协议&#xff0c;具有独特的优势和适用场景。与 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff0…...

【2024年华为OD机试】(B卷,100分)- 计算最接近的数 (Java JS PythonC/C++)

一、问题描述 题目解析 我们需要找到一个下标 i&#xff0c;使得表达式 X[i] - X[i 1] - ... - X[i K - 1] 的结果最接近于数组的中位数。如果有多个 i 满足条件&#xff0c;则返回最大的 i。 关键点&#xff1a; 中位数计算&#xff1a; 将数组排序后&#xff0c;中位数…...

Pytorch 自学笔记(三):利用自定义文本数据集构建Dataset和DataLoader

Pytorch 自学笔记&#xff08;三&#xff09; 1. Dataset与DataLoader1.1 torch.utils.data.Dataset1.2 torch.utils.data.DataLoader Pytorch 自学笔记系列的第三篇。针对Pytorch的Dataset和DataLoader进行简单的介绍&#xff0c;同时&#xff0c;介绍如何使用自定义文本数据集…...

QT 使用QSqlTableModel对数据库进行创建,插入,显示

文章目录 效果图概述功能点代码分析初始数据插入数据数据显示 总结 效果图 概述 本案例用于对数据库中的数据进行显示等其他操作&#xff0c;其他表格筛选&#xff0c;过滤等功能可看此博客 框架&#xff1a;数据模型使用QSqlTableModel&#xff0c;视图使用QTableView&#x…...

如何学习Transformer架构

Transformer架构自提出以来&#xff0c;在自然语言处理领域引发了革命性的变化。作为一种基于注意力机制的模型&#xff0c;Transformer解决了传统序列模型在并行化和长距离依赖方面的局限性。本文将探讨Transformer论文《Attention is All You Need》与Hugging Face Transform…...

浅谈云计算22 | Kubernetes容器编排引擎

Kubernetes容器编排引擎 一、Kubernetes管理对象1.1 Kubernetes组件和架构1.2 主要管理对象类型 二、Kubernetes 服务2.1 服务的作用与原理2.2 服务类型 三、Kubernetes网络管理3.1 网络模型与目标3.2 网络组件3.2.1 kube-proxy3.2.2 网络插件 3.3 网络通信流程 四、Kubernetes…...

计算 SAMOut V3 在将词汇表从1万 增加到6千万的情况下能够减少多少参数

当我们将词汇表从 60,000,000&#xff08;六千万&#xff09;减少到 10,000 时&#xff0c;实际上是在缩小模型的词嵌入层及其共享的语言模型头&#xff08;LM Head&#xff09;的规模。这将导致参数量显著减少。我们可以通过以下步骤来计算具体的参数减少量。 参数量减少计算…...

内置“龙虾”的异地组网路由器!蒲公英X1 Pro重磅升级

蒲公英异地组网路由器X1 Pro重磅升级&#xff01;首款内置“龙虾”的路由器来了&#xff01;无需云服务器、无需额外电脑&#xff0c;在小巧的路由器里就能一键部署OrayClaw&#xff0c;拥有你的专属“龙虾”&#xff01;它不仅仅是个会聊天的AI&#xff0c;在支持随心搭配大模…...

图像处理实战:用Python+OpenCV实现形态学开闭运算(附完整代码)

PythonOpenCV形态学实战&#xff1a;开闭运算解决文档图像修复难题 在数字化办公场景中&#xff0c;我们常遇到扫描文档存在噪点、文字断裂或笔画粘连的问题。传统图像编辑软件手动修复效率低下&#xff0c;而基于OpenCV的形态学操作能实现批量自动化处理。本文将以实际项目案例…...

HTML转EXE一键打包工具版【实测可用】支持本地网页文件与在线网址直接生成独立可执行程序

温馨提示&#xff1a;文末有联系方式一、的HTML转EXE专业工具 无需订阅、不设试用期、不强制付费——本工具为真正版本&#xff0c;所有功能完全开放&#xff0c;下载即用&#xff0c;彻底告别弹窗广告与隐藏项。二、零环境依赖&#xff0c;纯图形化一键操作 无需安装Node.js、…...

强力解锁Unity开发:Zenject依赖注入框架的5大实战优势

强力解锁Unity开发&#xff1a;Zenject依赖注入框架的5大实战优势 【免费下载链接】Zenject Dependency Injection Framework for Unity3D 项目地址: https://gitcode.com/gh_mirrors/ze/Zenject Zenject是Unity3D生态中最强大的依赖注入框架&#xff0c;它通过解耦组件…...

2026年软件测试薪资全景报告:城市与行业深度对比

在数字化转型加速的背景下&#xff0c;软件测试作为保障软件质量的核心环节&#xff0c;其薪资结构在2026年呈现显著分化。本报告基于行业最新数据&#xff0c;聚焦软件测试从业者的薪资状况&#xff0c;从城市梯度、行业细分、经验技能等多维度进行对比分析。报告旨在为测试工…...

第三节课总结

一、计算机中的单位1、比特位&#xff08;bit&#xff09;&#xff1a;一个比特位只能放一个二进制数据&#xff0c;要么0要么12.字节&#xff08;byte&#xff09;&#xff1a;一个字节 8个比特位1024byte 1KB1024KB 1MB1024MB 1GB1024GB 1T1024TB 1PB3.每一种数据类型都可…...

为什么PyTorch基金会突然终止3个核心子项目?——2026奇点大会技术委员会首次披露AI原生开源治理白皮书(含5项强制合规条款)

第一章&#xff1a;PyTorch基金会治理突变事件全景速览 2026奇点智能技术大会(https://ml-summit.org) 2024年12月&#xff0c;PyTorch基金会宣布启动治理架构重大调整&#xff0c;标志着其从Meta主导的项目向真正中立、多利益相关方共治的开源基金会转型。此次变更并非渐进式…...

模拟型对讲系统市场洞察:2026-2032年复合增长率(CAGR)为3.9%

在智慧社区与智能家居快速渗透的背景下&#xff0c;全球模拟型对讲系统市场正经历从主流产品向基础安防设备的定位转变。据恒州诚思最新调研数据显示&#xff0c;2025年全球模拟型对讲系统市场规模达115.4亿元&#xff0c;预计2032年将增至153.0亿元&#xff0c;2026-2032年复合…...

如何永久保存微信聊天记忆:WeChatMsg数据导出与智能分析全攻略

如何永久保存微信聊天记忆&#xff1a;WeChatMsg数据导出与智能分析全攻略 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/…...

实战部署ECAPA-TDNN说话人识别系统:从架构解析到生产环境优化

实战部署ECAPA-TDNN说话人识别系统&#xff1a;从架构解析到生产环境优化 【免费下载链接】ECAPA-TDNN Unofficial reimplementation of ECAPA-TDNN for speaker recognition (EER0.86 for Vox1_O when train only in Vox2) 项目地址: https://gitcode.com/gh_mirrors/ec/ECA…...