ffmpeg[学习(四)](代码实现) (使用最新API)实现音频数据解码并且播放

发布时间:2024年01月07日

0、作者杂谈

音频的播放比视频输出的要麻烦点啊,主要是CSDN大多数都是落后的,要么是到处复制粘贴的,我在实现过程中学了很久啊,大多数CSDN文章都是使用旧的API 已经被否决了,于是我读一些官方文档,和一些开源项目音视频的输出过程,才把这块弄懂,但是代码中仍然有问题比如会有刺啦刺啦声音(我猜测应该是PCM数据没有无缝连接上导致的)如果有音视频大佬看到这篇文章,希望大佬们在评论区提出宝贵意见。
作者也放寒假了,在家无聊,可能会考虑直播敲个播放器吧,maybe?
感觉这个专栏没多少人看呃,哎~

一、流程导图

其实与视频解码播放流程差不了太多,前面部分和专栏(一)一样
ffmpeg学习(一)
后面的话是添加了回调函数用于声卡通过回调函数拉数据到声卡缓冲区
在这里插入图片描述

二、实现过程

在这里插入图片描述
这中间省略了很多步骤 其实和ffmpeg学习(三)类似

SDL参数

在这里插入图片描述

转码参数和一开始的参数

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2d471a44ad4f45d99eac2af9ae05b400.pn
这里新API中将AVChannelLayout分离出来了,我们需要自己创建一个AVChannelLayout来获得声道布局为后面转码参数做铺垫

转码器

在这里插入图片描述

数据转换格式

在这里插入图片描述
这里SDL_Delay主要是防止声音播放过快。

回调函数

在这里插入图片描述## 播放过程
在这里插入图片描述

😔 这里播放的是瓦罗兰特的die for you 可惜你们听不到 😄 希望这篇文章对读者有收获!

文章来源:https://blog.csdn.net/Rain_ZZX/article/details/135433350
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。