kingor309 2021-10-11 17:01 采纳率: 100%
浏览 194
已结题

用ffmpeg的"kmsgrab"作为输入设备截屏的问题

自己写的C++代码,用ffmpeg的“kmsgrab”作为输入设备截屏,avformat_open_input()返回值一直是-22,查了下意思是“Invalid argument”。
代码如下:


AVInputFormat *ifmt = nullptr;
AVFormatContext *m_vFmtCtx = nullptr;
AVDictionary *options = nullptr;
int openInputRet = -1;

ifmt = av_find_input_format("kmsgrab");
if (ifmt){
    av_dict_set(&options, "framerate", "30", 0);
    //av_dict_set(&options, "format", "bgr0", 0);
    //av_dict_set(&options, "format_modifier", "hwdownload", 0);
    openInputRet = avformat_open_input(&m_vFmtCtx, "-", ifmt, &options);
    printf("avformat_open_input ret: %d\n", openInputRet);//--------------------返回值openInputRet 是 -22
} else {
    printf("no kmsgrab!\n");
}

按FFmpeg Devices Documentation中kmsgrab设备的示例指令执行,可以成功,但不知道c代码怎么写,下面是ffmpeg文档中的示例指令:
ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
ffmpge Devices Documentation链接:

恳请指点!多谢!!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月19日
    • 赞助了问题酬金 10月11日
    • 赞助了问题酬金 10月11日
    • 创建了问题 10月11日

    悬赏问题

    • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
    • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
    • ¥15 手机接入宽带网线,如何释放宽带全部速度
    • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
    • ¥15 ETLCloud 处理json多层级问题
    • ¥15 matlab中使用gurobi时报错
    • ¥15 这个主板怎么能扩出一两个sata口
    • ¥15 不是,这到底错哪儿了😭
    • ¥15 2020长安杯与连接网探
    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么