音频调试记录!

前言:

大家好,公众号现在可以留言了,后期可以和大家互动交流!

今天主要给大家分享一下,最近调试音频的感受!

音频调试:

我相信大家平时学习和开发,可能接触视频编解码会比较多,对h264和h265会比较熟悉一点!

估计大家平时接触音频的技术点会比较少,在音频技术点上,平时会遇到的技术难点,比如:回声、噪声等音质问题出现,这个相对来说会比较难解决,主要问题点首先要定位清楚,是硬件影响的还是软件影响的,或者说软件算法上可以进行优化!

这就会涉及到音频soc的移植和调试以及相关驱动编写。同时把底层采集到的原始音频数据,要经过上层的编码器进行编码和在业务上进行解码操作,在嵌入式里面,目前用的比较多的编码器标准:

  • AAC

  • G7xx

这里我主要以aac编码和解码来说,常见的aac编码器和解码器开源项目有:

  • fdk-aac

  • faac

  • faad2

最近在调试音频的时候,把采集的pcm通过fdk-aac进行编码的时候,由于是第一次使用fdk-aac(交叉移植第一次到zynq平台),在使用过程中遇到一个坑,就是fdk-aac源码里面不支持24bit的编码,目前只支持16bit,当时调试,底层只支持24bit来存储音频数据,经过编码后成aac音频文件,声音死活都是异常的,就像以前小时候看黑白电视机的声音一样!

在这次调试过程中,也熟悉了tiny-alsa和alsa的应用编程使用,当时一开始用tiny-alsa去访问声卡,以为采集的pcm也有问题,后面就使用alsa去采集,发现也是一样的问题,声音异常;最后后面才排查到是,是底层支持的24bit采样位深度,实际是32bit的,当时用命令arecord 命令录制出来的声音,通过aplay命令播放是正常的,所以就没有怀疑底层声卡的问题!

以上就是在调试音频的时候,遇到的一些问题总结!

相关推荐
上海合宙LuatOS8 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
Android系统攻城狮9 小时前
Android16进阶之音频播放定位MediaPlayer.seekTo调用流程与实战(二百二十七)
音视频·mediaplayer·android16·音频进阶·音频性能实战
晚霞的不甘10 小时前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
听麟11 小时前
HarmonyOS 6.0+ 跨端智慧政务服务平台开发实战:多端协同办理与电子证照管理落地
笔记·华为·wpf·音视频·harmonyos·政务
晚霞的不甘12 小时前
Flutter for OpenHarmony 实现计算几何:Graham Scan 凸包算法的可视化演示
人工智能·算法·flutter·架构·开源·音视频
零一iTEM12 小时前
MAX98357A_音频输出测试
单片机·嵌入式硬件·开源·音视频·硬件工程
Android系统攻城狮14 小时前
Android16进阶之获取播放位置MediaPlayer.getCurrentPosition调用流程与实战(二百二十八)
音视频·android16·音频进阶·音频性能实战
愚公搬代码15 小时前
【愚公系列】《AI短视频创作一本通》020-AI短视频创作实例精解(文旅宣传AI短视频实例精解)
人工智能·音视频
有位神秘人15 小时前
Android获取设备中本地音频
android·音视频
硫酸锌0115 小时前
使用ffmpeg合并文件夹内的所有*.mp4格式视频
ffmpeg·音视频