写一个基于ffmpeg采集usb音频设备后采集的程序代码
时间: 2023-03-13 14:19:51 浏览: 94
示例代码:#include <stdio.h>
#include <libavformat/avformat.h>int main(int argc, char **argv)
{
AVFormatContext *fmt_ctx = NULL;
AVInputFormat *ifmt = NULL;
AVDictionary *options = NULL;
int ret;
int audio_stream_idx; // 设置输入格式
ifmt = av_find_input_format("alsa"); // 设置音频设备,此处为USB音频设备
av_dict_set(&options, "audio_device", "hw:1,0", 0); // 打开音频设备
ret = avformat_open_input(&fmt_ctx, NULL, ifmt, &options);
if (ret < 0) {
printf("Could not open audio device\n");
return -1;
} // 查找音频流
ret = av_find_best_stream(fmt_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, NULL, 0);
if (ret < 0) {
printf("Could not find audio stream in input\n");
return -1;
}
audio_stream_idx = ret; // 读取音频
AVPacket pkt;
while (av_read_frame(fmt_ctx, &pkt) >= 0) {
if (pkt.stream_index == audio_stream_idx) {
// 处理音频数据
}
av_packet_unref(&pkt);
} av_dict_free(&options);
avformat_close_input(&fmt_ctx); return 0;
}
阅读全文