课程名称:音视频基础+ffmpeg原理 入门音视频技术开发
课程章节:【实战】音频采集
课程讲师:李超
课程内容
ffmpeg采集音频的流程包括以下三个步骤:
- 打开输入设备
- 获取数据包
- 输出音频文件
在 mac 上采集音频的三个步骤:
- 注册设备
- 设置采集方式,其中 Mac下使用 AVFoundation,Linux 下使用 DShow,Windows下使用 Alsa。
- 打开音频设备
Mac下的示例代码
#注册设备
avdevice_register_all();
#打开音频设备的方式
const AVInputFormat *avInputFormat = av_find_input_format("alsa");
#上下文,前面与后面的API都依赖上下文。打开一个多媒体文件,去封装,编解码等操作都依赖于上下文件。
AVFormatContext *fmtCtx = NULL;
const char *deviceName = "hw:0,0";
#打开设备的方式。解码时会用
AVDictionary *options = NULL;
int ret = 0;
char errors[1024] = {0};
// open device
ret = avformat_open_input(&fmtCtx, deviceName, avInputFormat, &options);
if (ret < 0)
{
av_strerror(ret, errors, sizeof(errors));
printf("failed to open audio device, [%d]%s\n", ret, errors);
}