关于 使用audacity原数据分析ffmpeg录音提取AVFrame原始aac/pcm数据有噪音 的解决方法
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/153582175
长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…
Qt开发专栏:各种问题解决(点击传送门)
FFmpeg、SDL和流媒体开发专栏
问题
音频录像的时候,音频已经做过了,重写准备做音视频同步音频写入mp4,为了确认音频没问题,写了个裸流aac的byte播放,发现有噪声,然后就钻进去了。
以上使用了信号槽消息队列,这样就无需进行同步互斥了。
以下是ffmpeg结合Qt完成的信号槽录制框架:
相关博客
《FFmpeg开发笔记(十二):ffmpeg音频处理、采集麦克风音频录音为WAV》
《FFmpeg开发笔记(十三):ffmpeg采集麦克风音频pcm重采样为aac录音为AAC文件》
音频,音频重采样,音视频同步录制是ffmpeg的核心关键技术,需要融会贯通!
分析过程
下面是audacity的使用,然后继续就是分析过程:
使用pcm进行保存,也是有这个噪声,发现存储代码应该是1014个点,而不是1024个点:
aac的确实是1024个点,因为笔者做了fifo,确认了下:
确认采样点也没问题,下面直接保存aac的1014个点试一试:
声音存在问题,确认是转码有问题,检查转码的代码,之前是通了没有问题的代码的,这里可能出现了其他问题。
没找到问题所在,排除所有问题。
硬着头皮继续写完功能再回头解决。
解码acc到byteaary拿出来的代码:
编码byteArray到aac的代码:
然后播放mp4,发现是正常的,这里太奇怪了。
解决方法
音频pcm元数据1014持续存储(没问题)
—>>>音频aac原数据1014持续存储(测试播放有噪声)(确认格式、采样率‘、通道、声音布局、采样点没问题)
—>>>音频aac原数据fifo后1024持续存储(测试播放有噪声)(确认格式、采样率‘、通道、声音布局、采样点没问题)
—>>>音频aac原数据fifo后1024恢复AVFrame的data进行编码mp4(测试mp4没问题)
实际就是把流程走完,中间为什么有问题,不清楚,因为原始数据有问题,那么avframe也应该有问题,实际也没问题,
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/153582175