请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

test.c 找不到设备

李老师:
学生编写了test.c后执行报错如下:Failed to open audio device, [-1330794744]Protocol not found,好像是找不到音频设备
但webrtc能找到。麻烦李老师指点一下问题出在哪里?
学生的test.C代码如下:

 #include "test.h"
 void haha(){

        int ret = 0;
        char errors[1024] = {0,};
        AVFormatContext *fmt_ctx = NULL;
        AVDictionary *options = NULL;

        char *devicename = "hw:0,0";

        avdevice_register_all();

        AVInputFormat *iformat = av_find_input_format("alsa");
        ret =  avformat_open_input(&fmt_ctx,devicename,iformat,&options);
        if(ret < 0){
                av_strerror(ret,errors,1024);
                printf("Failed to open audio device, [%d]%s\n", ret, errors);
                return;
        }
        av_log_set_level(AV_LOG_DEBUG);
        av_log(NULL,AV_LOG_DEBUG,"Hello World!\n");
        return;
}
int main(int argc,char* argv[]){
        haha();
        return 0;
}

test.h 代码如下:

#ifndef test_h
#define test_h

#include <stdio.h>
#include "libavutil/avutil.h"
#include "libavdevice/avdevice.h"
#include "libavformat/avformat.h"


void haha(void);


#endif

编译如下:
gcc -g -o test test.c -I /usr/local/ffmpeg/include -L /usr/local/ffmpeg/lib -lavutil -lavdevice -lavformat
编译成功了 test 执行文件

正在回答

1回答

你用ffmpeg命令可以找到设备吗?

1 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕勒4383646 #1
    学生用ffmpeg -devices  发现没有alsa 但有一个叫v4l2的视频输入设备,将程序改为查找v4l2程序能跑通。学生想应该和ffmpeg -devices中没有alsa有关系,请问李老师接下来是否如网上说的需要按alsa驱动?
    回复 有任何疑惑可以回复我~ 2023-01-15 09:24:06
  • 李超 #2
    https://avdancedu.com/631d466a/看看这个,里面搜also
    回复 有任何疑惑可以回复我~ 2023-01-15 22:51:48
  • 提问者 weixin_慕勒4383646 #3
    ffmpeg 已成功找到alsa,谢谢李老师指点
    回复 有任何疑惑可以回复我~ 2023-01-16 18:01:45
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信