码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 开播客户端


    OBS架构

    配置数据:json表示
    libobs接口导出:export、import

    多线程中的缓冲队列:circlebuf动态循环缓冲

    分层

    UI => libobs => 插件
    请添加图片描述

    libobs

    C实现的,拥有一个全局变量控制所有事务。

    • 视频采集渲染线程、视频编码线程:
      频采集渲染线程负责生产视频帧,视频编码线程负责消耗视频帧,两个线程共同操作一个视频帧缓存队列,是一个标准的1对1生产者-消费者模型。
      1. 根据设置的视频输出频率,每隔固定时间处理所有源的输入,并融合成一张图像缓存起来
      2. 如果开启推流和录像,则通过信号通知视频编码线程编码视频帧
      3. 渲染视频到UI窗口,使用户可以编辑推流画面
      采集、渲染、编码都是调用相关的插件接口处理。libobs本身只作为一个框架存在,不处理具体的事务。
    • 音频采集、音频编码
      与视频采集编码一样是一个生产者和消费者的关系。
    • 推流线程

    插件系统

    插件都是作为一个独立的动态库存在,对外抛出插件定义个接口,在libobs中合适的时候通过dlopen打开插件库,调用具体的接口。

    插件的创建

    主要是实现几个插件的接口:创建(创建回调)、销毁、update(属性更新)、video_render(视频渲染)等接口。

    属性系统

    UI属性:插件创建一个obs_property属性。应用层UI在对应的位置去遍历插件的属性接口,拿到属性后,根据对应的类型创建不同的UI。
    编解码器属性:编解码器插件把对应的自己的数据注册到创建的属性中,UI层通过对应的编解码器获取到对于的属性。

    相关技术

    窗口采集

    通过findwindow接口找到对应窗口的句柄,再通过BitBlt接口完成数据的拷贝。

    桌面采集

    可以使用窗口采集的BitBlt方式(桌面也是窗口的一种)。另外,效率较高的是采用DXGI接口采集。

    NVENC硬件编码技术

  • 相关阅读:
    微软修改 MIT 项目原作者版权声明引发争议;白宫为提高开源安全性邀请软件行业者座谈;Ruby 3.1.0 发布 | 开源日报
    第九章-线程
    【MATLAB教程案例32】基于matlab的交通标志检测分割算法的仿真——形态学处理,膨胀,腐蚀,形状检测,颜色模型,小波滤波等知识的综合应用
    Redis篇---第六篇
    【面试题】如何去掉vue的url地址中的#号?及其原理?
    boss直聘招聘数据可视化分析
    Java数据类型和变量
    C. LIS or Reverse LIS?
    如何去开展软件测试工作
    软件测试基础——缺陷报告全教程,建议转发收藏
  • 原文地址:https://blog.csdn.net/tanxuan231/article/details/127961755
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号