若该文为原创文章,转载请注明原文出处
本文章博客地址: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

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐