ffmpeg 采集音频数据

音视频数据采集的步骤:

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

具体的例子:

cpp 复制代码
#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;
}

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

cpp 复制代码
ffplay -ar 44100 -ac 2 -f s16le audio.pcm 
  • -ar 比特率
  • -ac 通道数
  • -f 格式
相关推荐
小鹿研究点东西11 小时前
直播带货长视频AI自动剪辑开播:一场直播如何反复利用?
ffmpeg·自动化·音视频·语音识别
换个昵称都难12 小时前
webrtc PeerConnection 模块介绍
音视频·webrtc
潜创微科技13 小时前
4K60 over IP 方案简介
网络·嵌入式硬件·网络协议·tcp/ip·音视频
超哥--13 小时前
B站视频内容智能分析系统(三):B站视频自动采集
java·开发语言·音视频·ai编程
localbob19 小时前
日语视频 SRT 字幕生成软件下载:日语视频本地自动翻译SRT字幕生成、日语视频自动翻译 Faster Whisper v1.7 下载与使用教程(含AMD显卡支持)
whisper·音视频·机器翻译·日语字幕翻译·日语视频翻译·本地ai翻译日语视频
音乐宝贝家21 小时前
吉他桶型技术解析:GA桶 vs D桶 vs OM桶——入门弹唱选哪个
新媒体运营·音视频·业界资讯·媒体·材质·零售·内容运营
luoyayun36121 小时前
Qt + FFmpeg 实战:获取音视频文件基础属性、流信息和元数据
qt·ffmpeg·音视频·元数据·获取音视频文件属性
Rudon滨海渔村21 小时前
ffmpeg裁剪视频黑屏、不准时等处理方式 - ffmpeg基本操作
ffmpeg·音视频
谁刺我心1 天前
[QtCPP]Examples使用示例-QtMultimedia、QMediaPlayer、Audio音频引擎测试mp3播放
qt·音视频·qml
FFZero11 天前
[mpv脚本系统] (五) C层系统调用的实现: mpv client通信机制
c语言·音视频