昨天才知道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启动界面;

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐