利用ffmpeg打开windows系统下面的摄像头源代码分析

本文详细介绍了如何在Windows系统中利用ffmpeg库打开摄像头,并通过av_register_input_format和av_find_input_format函数找到支持的AVInputFormat结构体。读取到的数据经过转换处理,以适应不同的视频格式需求。转换前,系统会根据目标格式分配内存并创建转换上下文。如需参考示例代码,可访问提供的CSDN链接。
摘要由CSDN通过智能技术生成

首先在主函数里面调用两个注册函数:

avcodec_register_all();
avdevice_register_all();
通过函数名称就很容易看出来这两个函数的实现了,前者主要注册所支持的编码器,而后者主要注册所支持的输入和输出设备.这两个函数的主要通过宏实现:

#define REGISTER_INDEV(X, x)                                            \
    {                                                                   \
        extern AVInputFormat ff_##x##_demuxer;                          \
        if (CONFIG_##X##_INDEV)                                         \
            av_register_input_format(&ff_##x##_demuxer);                \
}

上面通过调用av_register_input_format函数将一系列预先定义好的结构体AVInputFormat当中的成员变量AVInputFormat* next构成一个链表,而这个链表当中的的首部和尾部有一个预先定义的全局变量保存.下面看看支持windows所支持的AVInputFormat结构体的预定义:

static const AVClass vfw_class = {
    .class_name = "VFW indev",
    .item_name  = av_d
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值