FFmpeg教程-二-代码实现录音

目录

一,实现步骤

二,具体实现

1,注册设备

2,获取输入格式对象

3,打开设备

4,采集数据


一,实现步骤

二,具体实现

1,注册设备

cpp 复制代码
// 初始化libavdevice并注册所有输入和输出设备
avdevice_register_all();

2,获取输入格式对象

cpp 复制代码
//获取输入格式对象
const char *fmtName = "dshow";  //设备名,根据自己的来
const AVInputFormat *fmt = av_find_input_format(fmtName);

3,打开设备

cpp 复制代码
AVFormatContext *ctx = NULL;//格式上下文
const char *deviceName = "audio=阵列麦克风 (AMD Audio Device)"; //自己的输入设备名
int ret = avformat_open_input(&ctx,deviceName,fmt,nullptr);  //打开
   if(ret<0)
   {
       char errbuf[1024];
       av_strerror(ret,errbuf,sizeof (errbuf));
       qDebug()<<"打开设备失败";
       return ;
   }else{
       qDebug()<<"打开成功";
   }

4,采集数据

cpp 复制代码
   AVPacket pkt;//数据包
   av_read_frame(ctx,&pkt);
   file.write((const char *)pkt.data,pkt.size);  //写入。 (请自己创建文件对象file)
   file.close();

5,释放资源

cpp 复制代码
   avformat_close_input(&ctx);   //关闭设备
相关推荐
nuoxin11416 分钟前
GSV1011-富利威-HDMI芯片选型
arm开发·驱动开发·fpga开发·ffmpeg·射频工程
潇湘秦13 小时前
一次微小的CPU波动,你能查到什么?
ffmpeg
O***P57115 小时前
从MySQL5.7平滑升级到MySQL8.0的最佳实践分享
ffmpeg
2501_9071368218 小时前
开源视频批量处理工具FFmpeg Batch AV Converter
ffmpeg·音视频·软件需求
y***n61421 小时前
从MySQL5.7平滑升级到MySQL8.0的最佳实践分享
ffmpeg
Tiger Shi1 天前
使用LIBOBS: 采集桌面,保存图片
ffmpeg·音视频·obs
别动哪条鱼1 天前
AVAudioFifo
数据结构·ffmpeg·音视频
八月的雨季 最後的冰吻1 天前
FFmepg--27-两路音频混合
ffmpeg·音视频
安步当歌1 天前
【FFmpeg】ffmpeg中zig-zag的扫描方式
ffmpeg
q***04052 天前
从MySQL5.7平滑升级到MySQL8.0的最佳实践分享
ffmpeg