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);   //关闭设备
相关推荐
AI视觉网奇2 天前
webrtc 硬编码
ffmpeg·webrtc
九转成圣2 天前
避坑指南:彻底解决 FFmpeg drawtext 烧录多行文本出现“方块(□)”乱码的终极方案
ffmpeg
bbq烤鸡2 天前
ffmpeg精确极速剪辑方案
ffmpeg
小镇学者2 天前
【python】 macos 安装ffmpeg 命令行工具
python·macos·ffmpeg
QMCY_jason2 天前
RK3588平台编译 ffmpeg-rockchip 使用rkmpp rkrga 进行硬件转码
ffmpeg
悢七3 天前
单机部署 OceanBase 集群
数据库·ffmpeg·oceanbase
yy我不解释3 天前
关于FFmpeg的安装使用(m3u8转码MP4)
ffmpeg
Chars-D3 天前
FFmpeg源码深度剖析:架构、模块与转码流水线
架构·ffmpeg
·云扬·4 天前
【MySQL】实战:用pt-table-sync修复主从数据一致性问题
数据库·mysql·ffmpeg
Hello.Reader4 天前
一堆 `.ts` 分片合并后音画不同步?从问题定位到通用修复脚本的完整实战
python·ffmpeg·视频