首页 > 解决方案 > LibAV FFMPEG 如何获取设备列表?

问题描述

我查了一下文档,发现了一个很方便AVInputFormat的功能get_device_list。但问题是我不能使用它。

这是我的简短代码片段

#include <QDebug>

extern "C"
{
#include <libavformat/avformat.h>
#include <libavdevice/avdevice.h>
}

int main(int argc, char *argv[])
{
    avdevice_register_all();

    AVFormatContext *formatContext = avformat_alloc_context();

    AVInputFormat *inputFormat = av_find_input_format("dshow");

    AVDeviceInfoList devices;
    inputFormat->get_device_list(formatContext, &devices);

    qDebug() << devices.nb_devices;

    avformat_free_context(formatContext);

    return 0;
}

当我尝试打印时,该代码会崩溃devices。如何正确使用该功能?官方文档没有使用该功能的示例。

标签: c++ffmpeglibav

解决方案


推荐阅读