ffmpeg capture decklink

news2024/10/7 10:20:13

确保decklink设备已经接入

lspci | grep Blackm

02:00.0 Multimedia video controller: Blackmagic Design DeckLink SDI
Micro

确保decklink驱动已经正确安装

lsmod | grep blackmagic

blackmagic_io 2068480 2

确保ffmpeg已经启用decklink,如何配置之前的博文已经提到。

ffmpeg -devices

DE alsa ALSA audio output DE decklink Blackmagic
DeckLink output

查看decklink在ffmpeg中对应的设备名称

ffmpeg -sources

ffmpeg -sources

Auto-detected sources for decklink: 92:a08498c0:00000000 [DeckLink
SDI Micro] (none)

查看ffmpeg支持decklink的各种参数

ffmpeg -h demuxer=decklink

ffmpeg官网上有decklink的参数解释
http://ffmpeg.org/ffmpeg-all.html#decklink-1

以下是伪代码:

  AVDictionary *options = NULL;
    // av_dict_set(&options, "video_size", "640x480", 0);
    // av_dict_set(&options, "framerate", "30", 0);
    // av_dict_set(&options, "pixel_format", "yuyv422,", 0);
    // av_dict_set(&dict, "video_size", "1280*720", AV_DICT_MATCH_CASE);
    // av_dict_set(&dict, "framerate", "10", AV_DICT_MATCH_CASE);
    //以上参数如果不设置的话,就会用默认值,但默认值摄像头不一定支持
    int re = avformat_open_input(&ic, "92:a08498c0:00000000", ifmt, &options);
    if (re != 0)
    {
        printf("无法打开输入流\n");
        ErrorFunc(re);
    }
    re = avformat_find_stream_info(ic, NULL);
    int video_index = -1;
    for (int i = 0; i < ic->nb_streams; i++)
    {
        if (ic->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO)
        {
            // ic->streams[i]->codecpar
            video_index = i;
        }
    }
    printf("ic->streams[i]->codecpar-W:%d\n", ic->streams[video_index]->codecpar->width);
    printf("ic->streams[i]->codecpar-H:%d\n", ic->streams[video_index]->codecpar->height);
    printf("ic->streams[i]->codecpar-F:%d\n", ic->streams[video_index]->avg_frame_rate);

程序打印如下:

[decklink @ 0x559c264d8f00] Autodetected the input mode [decklink @
0x559c264d8f00] Found Decklink mode 1280 x 720 with rate 60.00
ic->streams[i]->codecpar-W:1280 ic->streams[i]->codecpar-H:720
ic->streams[i]->codecpar-F:60

ffmpeg是音视频必备,但即使从业数年,它似乎依然有无穷的秘密,感兴趣添加笔者微信:YQW1163720468,加入ffmpeg微信群讨论。但记得备注:ffmpeg爱好者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/650301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高磁场型霍尔效应测试系统

高磁场型霍尔效应测试系统由&#xff1a;电磁铁、电磁铁电源、高精度恒流源高精度电压表、高斯计、霍尔效应样品支架、标准样品、系统软件。用于测量半导体材料的载流子浓度、迁移率、电阻率、霍尔系数等重要参数&#xff0c;而这些参数是了解半导体材料电学特性必须预先掌控的…

conda下jupyter lab 多kernel

1.安装ipykernel pip install ipykernel2.手动添加 --kernel python -m ipykernel install --name tensorflow --display-name "tensroflow"3. 查看创建的kernel jupyter kernelspec list4. 修改配置文件kernel.json&#xff0c;使得已创建的kernel匹配 5. 修改配…

【Axure教程】根据标签数自动调整尺寸的多选下拉列表

​多选下拉列表常用于需要用户从一组选项中选择多个选项的情况。它提供了一个下拉菜单&#xff0c;用户可以点击展开并选择他们感兴趣的多个选项。多选下拉列表可以用于展示可选标签&#xff0c;并允许用户选择多个标签。例如&#xff0c;在一个博客发布界面上&#xff0c;可以…

【Flutter】如何在 Flutter 中获取设备 ID

文章目录 一、 前言二、 设备 ID 的重要性1. 什么是设备 ID2. 设备 ID 的作用 三、 在 Flutter 中获取设备 ID1. 需要的工具和库2. 简单代码示例3. 完整可以运行的代码 四、 注意事项1. 权限问题2. 设备兼容性问题 五、 总结 一、 前言 在移动应用开发中&#xff0c;有时我们需…

飞书小程序开发教程——获取app_access_token

前言 最近在玩飞书小程序&#xff0c;真是受够了某信的小程序&#xff0c;一坨坨的限制加恶心人的手段。体验了飞书加飞书文档的功能真的还是飞书好用&#xff0c;又可以定制机器人啥的真方便。 但是飞书除了开发者文档真没啥资料&#xff0c;估计没啥人写吧…本专栏后续就慢慢…

DVPP媒体数据处理视频编码问题案例

DVPP&#xff08;Digital Vision Pre-Processing&#xff09;是昇腾AI处理器内置的图像处理单元&#xff0c;通过AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力&#xff0c;主要功能包括图像编解码、视频编解码、图像抠图缩放等。 本期就分享几个关于DVPP视频编码问题…

未磁科技全球首台64通道无液氦心磁图仪及首个培训基地落户北京安贞医院

【全球首台64通道无液氦心磁图仪在北京安贞医院举行开机仪式】 近日&#xff0c;在北京安贞医院举行了未磁科技全球首台64通道无液氦心磁图仪开机仪式&#xff0c;中国医学装备协会赵自林理事长、北京安贞医院纪智礼书记、张宏家院长、宋现涛教授&#xff0c;以及未磁科技蔡宾…

【离散化+枚举】代码源每日一题div2 全部相等

全部相等 - 题目 - Daimayuan Online Judge 题意&#xff1a; 思路&#xff1a; 首先&#xff0c;子序列最长&#xff0c;想到了DP&#xff0c;但是子序列DP&#xff0c;D不出来&#xff0c;所以要放弃想法 不难发现&#xff0c;这道题和顺序没有关系&#xff0c;所以可以说…

Vision Pro,难成初代iPhone

“一个全新的增强显示平台&#xff0c;一个革命性的新产品”&#xff0c;这是苹果CEO库克给Apple Vision Pro的评价。 当苹果拿出Vision Pro时&#xff0c;想必整个科技行业都感到震惊。这不仅是因为苹果时隔十六年后&#xff0c;再次在WWDC带来“革命性产品”&#xff0c;更是…

Ai 赋能|这 6 款免安装的工具,功能超神~

今天小呆给小伙伴们分享几款小巧好用的工具&#xff0c;功能非常实用&#xff0c;而且全都免费&#xff0c;值得大家使用&#xff01; 1、Pix Fix 修复画质损坏的图像 Pix Fix 是一个免费的线上图片工具&#xff0c;可以对过度压缩造成损毁的图片以算法为基础进行噪点的修复&…

【枚举+数学】代码源每日一题div2 数学

数学 - 题目 - Daimayuan Online Judge 题意&#xff1a; 思路&#xff1a; 首先把条件理一下 gcd(s1,s2)K 按照惯用套路 设 s1k1*K s2k2*K 那么就是(k1k2)*Ksum 所以K是sum的一个因子 因此只需要枚举sum的因子即可 但是注意数据范围&#xff1a;1e9 说明不能直接枚…

MySQL数据库加密

有时候为防止别人攻击数据库&#xff0c;直接读取修改数据&#xff0c;我们会对数据库数据进行加密。 一&#xff1a;AES_ENCRYPT(需要加密的数据,密钥) AES_DECRYPT(需要解密的数据,刚才的密钥) 如&#xff1a;update area set jiamiAES_ENCRYPT(test数据加密,miyao) where …

Python基础知识掌握之 字符串格式化

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 为了确保字符串按预期显示&#xff0c;我们可以使用 format() 方法对结果进行格式化。 字符串 format() format() 方法允许您格式化字符串的选定部分。 有时文本的一部分是你无法控制的&#xff0c;也许它们来自数据…

分享几个免费设计生成工具 (第二期)

今天来给大家分享几个国外免费的设计生成工具 A. Tools https://www.a.tools/ 一个免费实用的在线工具箱&#xff0c;提供了 85 个特色工具&#xff0c;包含图形图像、日期和时间、文本编辑器、解密和加密、编程与设计、图表生成器等等&#xff0c;还有热门的 AI聊天提示生成器…

freemarker学习记录

freemarker 介绍 FreeMarker 是一款模板引擎&#xff1a; 即一种基于模板和要改变的数据&#xff0c; 并用来生成输出文本(HTML网页&#xff0c;电子邮件&#xff0c;配置文件&#xff0c;源代码等)的通用工具。 它不是面向最终用户的&#xff0c;而是一个Java类库&#xff0c…

electron 生命周期

生命周期事件&#xff1a; reday: app初始化完成dom-ready:一个窗口的文本加载完成&#xff0c;可以进行dom操作did-finish-load: 导航完成时触发,选项卡旋转器停止旋转时&#xff08;发生在dom-ready后&#xff09;比如点击一个选项卡后&#xff0c;某一个选项下的dom加载完成…

基于zustand维护的一套跨框架(react/vue)跨应用的状态管理及共享方案

zustand-pub 只要从事前端开发&#xff0c;不论是小程序还是web&#xff0c;都绕不开状态管理。 众所周知&#xff0c; zustand 是一套轻量、便捷、可拓展的状态管理方案&#xff0c;不论国内 or 国外&#xff0c;都备受喜爱&#xff0c;star 数已接近 3W。 而 zustand-pub 则…

ThreadLocal源码深度详解

文章目录 一、ThreadLocal简单使用二、ThreadLocal源码详解1、set方法&#xff08;1&#xff09;getMap(t)&#xff08;2&#xff09;createMap 2、get方法3、setInitialValue方法 三、ThreadLocalMap详解1、ThreadLocalMap为什么要设置Entry数组2、key计算的下标会重复吗&…

华为OD机试真题 JavaScript 实现【查找两个字符串a,b中的最长公共子串】【牛客练习题】

一、题目描述 查找两个字符串a,b中的最长公共子串。若有多个&#xff0c;输出在较短串中最先出现的那个。 注&#xff1a;子串的定义&#xff1a;将一个字符串删去前缀和后缀&#xff08;也可以不删&#xff09;形成的字符串。请和“子序列”的概念分开&#xff01; 数据范围…

C语言第三课-----------加油 加油 加油

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com 目录 数组 操作符 常见关键字 ________________________________________ 紧接上一课,上一篇博客我已经简单介绍了变量的作用域和生命周期,常量,字符串转义字符注释,选择语句,循环语句,函数这些下面…