ffmpeg 采集音频数据

2023-11-08

音视频数据采集的步骤:

  • 设备注册
  • 设置对应的采集方式,avfoundation、dshow、alas
  • 打开设备

具体的例子:

#include <stdio.h>
extern "C"{
    #include <libavutil/avutil.h>
    #include <libavdevice/avdevice.h>
    #include <libavformat/avformat.h>
    #include <libavcodec/avcodec.h>
}



int main(int argc, char const *argv[])
{
    /* code */
    // 注册所有的设备
    avdevice_register_all();

    // 输出的文件
    char *filename = "./audio.pcm";

    // 文件操作
    FILE *outfile = fopen(filename,"wb+");

    // 错误缓冲区
    char errr[1024];

    // 错误码
    int ret = 0;

    // 存储音视频封装格式中包含的信息的结构体,
    AVFormatContext *format_context ;

    // 定义设备地址
    char *device_name = "hw:0";

    AVPacket pkt ;
    av_init_packet(&pkt);
    // 获得媒体数据的格式
    AVInputFormat * iformat = av_find_input_format("alas");

    if((ret=avformat_open_input(&format_context,device_name,iformat,NULL))!=0){
        av_strerror(ret,errr,1024);
    }
    int count = 0;
     while(ret = (av_read_frame(format_context, &pkt))== 0&& 
        count++ < 500) {
        av_log(NULL, AV_LOG_INFO, "pkt size is %d(%p), count=%d\n",
            pkt.size,pkt.data, count);
        fwrite(pkt.data, 1, pkt.size, outfile);
        fflush(outfile);
        av_packet_unref(&pkt);//release pkt
    }

    
    fclose(outfile);
    avformat_close_input(&format_context);
    
    return 0;
}

针对输出的结果进行输出。

ffplay -ar 44100 -ac 2 -f s16le audio.pcm 
  • -ar 比特率
  • -ac 通道数
  • -f 格式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ffmpeg 采集音频数据 的相关文章

随机推荐

  • Pat刷题真题乙级(4)

    标题 前言 Pat乙级1013 组个最小数 Pat乙级1014 科学计数法 Pat乙级1017 打印沙漏 Pat乙级1018 人口普查 Pat乙级1019 旧键盘 前言 这个周末花了两天才写了五道题 嘿嘿 康康吧 Pat乙级1013 组个最
  • Vscode跳板机和通过代理连接远程服务器设置方法

    文章目录 一 VScode跳板机配置 1 ssh安装 config文件配置 二 通过代理连接远程服务器设置方法 本文适用于windows系统 linux系统可以适当参考 主要包括两方面的内容 1 通过跳板机连接远程服务器或远程服务器上的容器
  • Python统计模型探索性数据分析(EDA)系统(单变量-双变量-相关性-缺失值)

    单变量分析 单变量分析旨在更深入地了解单个列 它创建该列的各种统计数据和可视化 例如 要深入了解 特征 year built 要计算year built 的最小值 最大值 不同计数 中值 方差 并创建一个箱线图来检查异常值 一个正常的 Q
  • vsocde使用命令行上传项目到GitHub

    文章目录 前言 一 git init初始化 二 git status查看状态 三 git remote add origin连接远程仓库 四 git add添加文件 五 git commit文件 六 git push 刷到远程仓库 前言 链
  • 合宙Air724UG LuatOS-Air LVGL API控件--进度条 (Bar)

    进度条 Bar Bar 是进度条 可以用来显示数值 加载进度 示例代码 创建进度条 bar lvgl bar create lvgl scr act nil 设置尺寸 lvgl obj set size bar 200 20 设置位置居中
  • Vite 配置 cdn 加载资源

    一 介绍 上篇文章我们从零配置 Vite Vue3 0 开发环境 生产环境 本篇文章我们配置 CDN 加载 因为 Vite 不会重写从外部文件导入的内容 我们需要使用支持 ESM 编译的 CDN 这里我们使用 https esm sh 来引
  • GDCM:GDCM::DataSet的测试程序 C/C++

    GDCM GDCM DataSet的测试程序 C C GDCM Grassroots DICOM 是一个用于处理医学影像和通信的开源软件库 它提供了各种功能 包括读取 写入 转换和处理DICOM 数字影像和通信医学 文件 GDCM库是用C
  • DGL-KE:亚马逊开源知识图谱嵌入库

    这个库的开源已经是去年 2020 的事情了 突然感觉时间好快 当时并没有在意 最近关注到这个库是因为自己在训练知识图谱 Embedding 的时候做的一些调研 考虑到后续大规模知识图谱的训练 需要更快的开源库 于是DGL KE 重新回到我的
  • Spring(二):更简单的存储与读取 Bean

    通过上一章的Spring 我们基本实现了Spring 的读取与存储 但是在操作过程中 读取与存储并没有那么得 简单 一套流程还是很复杂 所以 本章来介绍更加简单得读取与存储 在 Spring 中想要更简单的存储和读取对象的核 是使 注解 也
  • Zabbix 5.0 媒体介质 邮箱配置例子

    QQ企业邮箱 参考 zabbix 腾讯企业邮箱配置图 harveymomo的博客 CSDN博客
  • 程序和功能 没有hyper v_Win10系统hyper-v虚拟机如何关闭?这三种方法麻烦收好

    hyper v很多用户不清楚这是什么 用官方说法是微软的一款虚拟化产品 简单来说就是虚拟机 可以用来安装其他系统 这个功能在Win10和Win8 1中是预设的 对于Win10用户而言此项功能没有多少必要性 那么要如何关闭呢 下面小编就跟大家
  • 求二叉树中最大和的路径(C语言实现)

    目录 1 题目概述 2 题目解析 3 题目代码 4 样例展示 5 题目总结 1 题目概述 假设二叉树中的所有节点值为int类型 采用二叉链表存储 设计递归算法求二叉树bt中从根结点到叶子结点路径和最大的一条路径 例如 对于下图所示的二叉树
  • 成为大厂offer收割机是怎样一种体验?

    一 现状 市场红利正盛 人才短板暴露 计算机的发展历程已经走过了大半个世纪 在当前的互联网 时代下 中国开发者市场正在迎来三大红利 全民编程 行业升级 技术大生态 人人都会编程 家家都是技术公司 全行业数字化升级 面对大量的需求 目前IT人
  • 用户画像常见应用场景+技术实现

    导读 今天和大家分享的主题是用户画像的场景与技术实现方案 主要分三大部分 用户画像常见应用场景 画像产品功能 技术实现方案 01 常见应用场景 1 画像常见的应用场景 不同行业业务属性不同 能采集到的数据源也不同 对画像的应用场景有不同的需
  • 代码随想录算法训练营第一天

    文章目录 数组704 二分查找 题目 难度 示例 算法 二分查找法 循环不变量 两种写法 疑难点分析 算法复杂度分析 数组27 移除元素 题目 难度 示例 算法 暴力 双指针 数组704 二分查找 梦开始的地方 day1 2023 4 19
  • 基于MATLAB的图片中字符的分割与识别

    基于MATLAB的字符的分割与识别 摘 要 本文主要介绍字符识别的基本原理 并且利用MATLAB工具软件实现图片中字符的分割和识别 对于满足一定要求的图片可以实现字符的分割与识别 通过图像读取 图像预处理 图像投影 字符分割 字符识别五个步
  • 一维数组部分实验

    学习目标 1 理解数组的概念 掌握数组的定义及其存储结构 2 掌握一维数组的输入 输出及初始化的方法 3 掌握一维数组的使用 4 掌握与数组有关的算法 学习内容 1 编写程序 将10个整型数2 4 6 18 20赋予一个数组 然后输出该数组
  • 【C语言】初识指针

    C语言 初识指针 一 指针是什么 二 指针和指针类型 1 指针 整数 2 指针的解引用 三 野指针 1 野指针成因 2 如何规避野指针 四 指针运算 五 二级指针 七 指针数组 个人主页 库库的里昂 CSDN新晋作者 欢迎 点赞 评论 收藏
  • c的按位取反运算符(~) 与逻辑逻辑(!)

    位运算 位运算的运算分量只能是整型或字符型数据 位运算把运算对象看作是由二进位组成的位串信息 按位完成指定的运算 得到位串信息的结果 位运算符有 按位与 按位或 按位异或 按位取反 其中 按位取反运算符是单目运算符 其余均为双目运算符 位运
  • ffmpeg 采集音频数据

    音视频数据采集的步骤 设备注册 设置对应的采集方式 avfoundation dshow alas 打开设备 具体的例子 include