一,简介

OBS(open boardcast server),是一个用于直播的开源软件。

官方网站:https://obsproject.com/

代码托管地址:https://github.com/jp9000/OBS

git地址:https://github.com/jp9000/OBS.git

二,结构

项目文件结构如下图:

三,分析

最新的OBS只能在vista以上操作系统中运行,显卡必须至少支持DX10。

OBS的编译需要visual studio 2013(C++11重写了部分代码),当然你也可以switch到老版本下进行编译,但新的特性或bug修正就无法启用了。

OBS包括五大组件,以及一些附加功能:

video source :

a,DShow的capture filter;

b,游戏画面,hook部分通过minihook实现,获得的surface分别通过D3D10共享在OBS主窗口上显示,以及通过共享内存发送到OBS进程中进行encode;

c,桌面窗口画面,通过GDI实现;

d,图片;

audio source:

a,麦克风及桌面声音,通过MMDevice获取;

b,blank,无声音;

video encoder:

a,x264;

b,nvidia cuda video encoder;

c,intel QSV video encode;

audio encoder:

a,MP3,通过lame库实现;

b,aac,通过libfaac库实现;

stream destination:

a,rtmp stream,通过librtmp实现;

b,file stream,可生成FLV/MP4的文件;

附加功能:

a,音频重采样,通过libsamplerate库实现;

b,音频去噪;

c,自动更新;

四,总结:

OBS逻辑上区分的很清楚,但是代码部分非常杂揉。因而作者正在写一个新的跨windows/linux/mac平台的C++11适配的project。

地址:https://github.com/jp9000/obs-studio

最新文章

  1. php实现设计模式之 工厂方法模式
  2. [HNOI2008],[bzoj1008] 越狱(dp+组合数学)
  3. [BZOJ1163][BZOJ1339][Baltic2008]Mafia
  4. PHP包含文件函数include、include_once、require、require_once区别总结
  5. bzoj 1833 [ZJOI2010]count 数字计数(数位DP)
  6. 虚拟机之仅主机模式(HostOnly)链接外网设置
  7. 【转】java 解析 plist文件
  8. 微信JS-SDK实际分享功能
  9. BZOJ 2423 最长公共子序列
  10. php经典面试题
  11. dij算法为什么不能处理负权,以及dij算法变种
  12. 查看SQLServer 代理作业的历史信息
  13. Dynamics CRM2016 Web API获取实体元数据Picklist属性的Text&Value
  14. cf351B Jeff and Furik (树状数组)
  15. dos2unix详解
  16. SQL中Between查询日期时需要注意的地方
  17. 11: Nginx安装lua支持
  18. 【Java入门提高篇】Day19 Java容器类详解(二)Map接口
  19. codevs 5929 亲戚
  20. Win10 PLSQL 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致

热门文章

  1. Public Key Retrieval is not allowed
  2. JFinal获取多个model
  3. badge徽章、挂件模版
  4. 一次m2eclipse的安装大坑经历之http://m2eclipse.sonatype.org/sites/m2e
  5. OpenGL 编程指南 (2)
  6. ansible笔记(13):变量(二)
  7. Wannafly Camp 2020 Day 2C 纳新一百的石子游戏
  8. altair package and altair_viewer
  9. C++ windows线程操作(转)
  10. Python入门2 —— 变量