关闭

OBS源码学习笔记(一)

标签: 源码
2866人阅读 评论(0) 收藏 举报
分类:

昨天才知道obs原来是开源的,很兴奋,把obs源码下载下来编译了一下,虽然中间还是出现了一些问题,但总算顺利编译出可执行文件,并可以调试偷笑,了解了下OBS的主要代码,界面主要是用qt编写。

  1. obs-app.cpp是main入口文件,然后通过load_debug_privilege函数,修改了下进程的权限,调用base_set_crash_handler设置全局的crash_handler,crash_param;
  2. 设置def_log_handler函数作为日志打印函数;
  3. 接下来的判断命令行参数,一般上命令行参数argc都为1,没有参数;
  4. 下面调用upgrade_settings函数,它内部先执行GetConfigPath将系统用户的路径拼接上自己的路径得到一个新路径;通过os_opendir获取到目录下第一个句柄,然后通过os_readdir遍历目录下每个文件,接下来是一大堆关于ffmepg输出配置,编码器配置相关的东西,后面再看哪里用到这些东西吧,没通篇读一遍,现在看实在太麻烦了。
  5. 下面设置好curl,然后调用run_program启动主流程;
  6. 接下来创建OBSApp(继承QApplication),调用AppInit进行初始化,create_log_file创建日志文件,调用OBSInit启动界面;

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

obs-studio源码阅读笔记:学习obs流程的第一步,test程序

今天终于跑通了obs-studio的test项目,该程序流程非常简单,对类似我这样的初学者来说,摈除一些干扰项来学习obs-studio加载模块的基本流程,还是很有用的! 图一 程序运行成功...
  • laohuangniu
  • laohuangniu
  • 2017-04-21 11:57
  • 1969

OBS源码分析之render_video处理流程

最近在看OBS源码,发现其复杂度真不是一般的高,看到render_video时脑子混乱了,经过单步调试跟踪才终于明朗了,下面先贴上源码: static inline voidrender_video...
  • xingyunfa
  • xingyunfa
  • 2016-10-21 18:41
  • 1700

基于obs studio 的源码应用

OBS(Open Broadcaster Software)是一个广泛使用的视频录制直播软件。利用该软件可以实现桌面窗口、游戏、网页、RTMP流、图像等的录制直播。OBS也是一个开放源代码的软件,因此...
  • yuan_lo
  • yuan_lo
  • 2016-09-22 14:50
  • 2631

OBS源码阅读笔记(三)--RTMP

首先,我们来看window-basic-main-outputs.cpp,在SimpleOutput构造函数中,调用 streamOutput = obs_output_create("rtmp_ou...
  • jbl5501328
  • jbl5501328
  • 2016-09-06 09:25
  • 2711

OBS源码阅读笔记--如何给source添加展示画面的地方呢?

1、qt有个功能可以将控件提升为自定义控件,我在obs的主界面上放置4个OBSDisplay控件,后面可以通过程序来进行创建比较好; 2、搜索obs_display_add_draw_callback...
  • jbl5501328
  • jbl5501328
  • 2016-11-03 14:03
  • 873

OBS源码阅读笔记--将声音设置和场景挂钩

在切换场景时,声音一直不变,和场景没有关联性,这在插播的场合很不好用,要点两次按钮,然后会有尾音,现在要看看代码,想办法将声音的配置和场景相结合; 我们要先看看界面上的混音器控件是咋添加上声音的: 我...
  • jbl5501328
  • jbl5501328
  • 2016-10-18 16:17
  • 1388

OBS源码阅读笔记(六)--推流地址设置

OBS的推流地址是在哪里设置的呢?我们来看看吧: 首先我们反着来推,比较方便查找: 在rtmp_stream.c中,有个connect_thread线程函数,该行数应该就是处理RTMP连接的,那么里面...
  • jbl5501328
  • jbl5501328
  • 2016-09-28 14:15
  • 2301

OBS源码阅读笔记(四)--视频采集显示

下面来看看OBS如何进行初始化视频采集的: 首先,在OBS的初始化程序中,会调用ResetVideo==>AttemptToResetVideo==>obs_reset_video==>obs_ini...
  • jbl5501328
  • jbl5501328
  • 2016-09-06 11:49
  • 2784

OBS源码阅读笔记--绿化配置文件路径

OBS的配置文件路径现在是在C:\Users\Administrator\AppData\Roaming\obs-studio这种目录里面; 如果生成了exe,想要去掉“设置”按钮,让我们事先设置好配...
  • jbl5501328
  • jbl5501328
  • 2016-10-18 15:03
  • 1083

OBS源码阅读 --RTMP

原文链接 首先,我们来看window-basic-main-outputs.cpp,在SimpleOutput构造函数中,调用 streamOutput = obs_output_create(...
  • yuan_lo
  • yuan_lo
  • 2016-09-21 18:08
  • 1300
    个人资料
    • 访问:50395次
    • 积分:30
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:33篇
    • 译文:0篇
    • 评论:21条
    最新评论