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

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

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

音频编码流程主要分三步:AI的初始化**** 、AENC的初始化( 硬件编码****)**** 、绑定AI 和A ENC 节点开启A ENC ****线程进行视频编码的采集,****注意一下这里的编码是硬件编码,不是使用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; //音频布局,默认是2
    rv_ai.attr.u32NbSamples = NB_SAMPLES; //AAC默认1024
    rv_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容器
    }

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

相关推荐
凯子坚持 c几秒前
告别“复读机”:深度拆解星云 SDK 如何破解数字人实时交互的“不可能三角”
人工智能
Captain_Data几秒前
Meta裁员8000人:AI驱动组织重构的技术解析
人工智能·python·ai·重构·meta·大模型·裁员
2501_93332955几秒前
Infoseek媒介宣发功能深度解析:AI如何重构企业品牌传播效率
人工智能·重构
大熊背2 分钟前
一套为硬件加速设计的经典边缘检测流水线(一)----边缘细化原理
人工智能·算法·计算机视觉·梯度计算
雷焰财经3 分钟前
宇信科技亮相Money20/20 Asia:以场景化AI方案推动全球金融数字化转型
人工智能·科技·金融
AI搅拌机4 分钟前
LoRA训练的素材怎么准备?用哪些工具处理?一文讲清图片裁剪、图片压缩、格式转换、批量重命名、视频抽帧、图片对比
人工智能·音视频
彭军辉4 分钟前
生命体AI产品有什么特点
人工智能
沅柠-AI营销5 分钟前
AI时代的企业经营趋势:以算力与Token为核心,重构企业增长逻辑
大数据·人工智能·gpu算力·token·ai智能体·企业经营·成本管控
甲维斯8 分钟前
DeepSeek V4 首测翻车,但整体还可以!
人工智能·deepseek
沃虎Chinty-032 小时前
音频变压器核心技术解析:噪声隔离、阻抗匹配与信号平衡转换
音视频