【音视频 ffmpeg 学习】麦克风数据采集,命令行播放 持续更新

简介: 【音视频 ffmpeg 学习】麦克风数据采集,命令行播放 持续更新

ffmpeg 命令

windows 环境

查看设备

ffmpeg -list_devices true -f dshow -i dummy

采集麦克风代码

//1. init
  avdevice_register_all();
    //avformat_network_init();
    //2.获取windows采集数据所支持的格式(dshow)
    const AVInputFormat *fmt = av_find_input_format("dshow");
    int ret = 0;
    AVPacket pkt;
    //3.定义录制音屏格式上下文。
    AVFormatContext *ctx = nullptr;
    //内装麦克风 (Conexant SmartAudio HD)
    // 麦克风 (Realtek(R) Audio)
    //const char *audio_device = "audio=内装麦克风 (Conexant SmartAudio HD)";
    const char *audio_device = "audio=麦克风 (Realtek(R) Audio)";
    ret = avformat_open_input(&ctx, audio_device, fmt, nullptr);
    if(ret != 0)
    {
        qDebug() << ret << "打开设备失败";
        return;
    }
    // 4.定义一个文件用来保存所采集的音频设备
    QFile file("./test.pcm");
    file.open(QIODevice::WriteOnly);
    if(!file.isOpen()){
        qDebug() << "file open fialed";
        avformat_close_input(&ctx);
        return;
    }
    //5.采集音频数据 ffplay -ar 4100 -ac 2 -f s16le test.pcm
    while( !status_flag && !av_read_frame(ctx, &pkt)){
         file.write((const char*)pkt.data, pkt.size);
    }
    //6.释放资源
    avformat_close_input(&ctx);
    file.close();

使用命名播放

ffplay -ar 4100 -ac 2 -f s16le test.pcm
相关文章
|
2天前
|
编解码
项目实战——Qt实现FFmpeg音视频转码器(二)
项目实战——Qt实现FFmpeg音视频转码器(二)
44 0
|
2天前
|
编解码 编译器
项目实战——Qt实现FFmpeg音视频转码器(一)
项目实战——Qt实现FFmpeg音视频转码器(一)
45 0
|
2天前
|
编解码 安全 计算机视觉
FFMPEG常用命令 音视频合并
FFMPEG常用命令 音视频合并
9 2
|
2天前
FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放
《FFmpeg开发实战》一书中,第10章示例程序playaudio.c原本仅支持mp3和aac音频播放。为支持ogg、amr、wma等非固定帧率音频,需进行三处修改:1)当frame_size为0时,将输出采样数量设为512;2)遍历音频帧时,计算实际采样位数以确定播放数据大小;3)在SDL音频回调函数中,确保每次发送len字节数据。改进后的代码在chapter10/playaudio2.c,可编译运行播放ring.ogg测试,成功则显示日志并播放铃声。
13 1
FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放
|
2天前
|
存储 编解码 缓存
ffmpeg音视频同步
ffmpeg音视频同步
14 0
|
2天前
|
Web App开发 编解码 vr&ar
使用FFmpeg从音视频处理到流媒体技术的探索和实战应用
使用FFmpeg从音视频处理到流媒体技术的探索和实战应用
49 2
|
2天前
|
编解码 计算机视觉 索引
使用ffmpeg MP4转 m3u8并播放 实测!!
使用ffmpeg MP4转 m3u8并播放 实测!!
47 1
|
2天前
|
编解码 API 开发工具
FFmpeg获取音视频流信息
FFmpeg获取音视频流信息
13 1
FFmpeg获取音视频流信息
|
2天前
|
开发工具
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(三)
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(三)
21 0
|
2天前
|
Linux 编译器 数据安全/隐私保护
Windows10 使用MSYS2和VS2019编译FFmpeg源代码-测试通过
FFmpeg作为一个流媒体的整体解决方案,在很多项目中都使用了它,如果我们也需要使用FFmpeg进行开发,很多时候我们需要将源码编译成动态库或者静态库,然后将库放入到我们的项目中,这样我们就能在我们的项目中使用FFmpeg提供的接口进行开发。关于FFmpeg的介绍这里就不过多说明。
84 0