OBS (open boardcast server)结构分析
一,简介
OBS(open boardcast server),是一个用于直播的开源软件。
二,结构
项目文件结构如下图:
三,分析
最新的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。
OBS (open boardcast server)结构分析的更多相关文章
- OBS_Classic经典版框架
一,简介 OBS(open boardcast server),是一个用于直播的开源软件. 官方网站:https://obsproject.com/ 代码托管地址:https://github.com ...
- R︱shiny实现交互式界面布置与搭建(案例讲解+学习笔记)
要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 看了看往期的博客,这个话题竟然是第 ...
- 深入解析SQL Server并行执行原理及实践(上)
在成熟领先的企业级数据库系统中,并行查询可以说是一大利器,在某些场景下他可以显著的提升查询的相应时间,提升用户体验.如SQL Server, Oracle等, Mysql目前还未实现,而Postgre ...
- Facebook的体系结构分析---外文转载
Facebook的体系结构分析---外文转载 From various readings and conversations I had, my understanding of Facebook's ...
- P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1
P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1 May ...
- laravel5-目录结构分析
laravel5-目录结构分析 (2016-01-21 11:24:03) 转载▼ 一.环境配置: $ lsb_release -a No LSB modules are available. ...
- Sde表结构分析
原文 Sde表结构分析 今天开始想分析一下sde的表结构,希望能够弄明白sde一个要素类的每个Feature是如何存储的. 弄ArcSDE的人都知道,ArcSDE内一个要素类在关系数据库(以MS SQ ...
- PowerEdge R430 机架式服务器安装( Ubuntu server 14.04.1 、PHP5.5.9、PHP-redis2.8、Phalcon3.1)
未解决问题:换成静态路由的话,怎么就 apt-get udpate 出现错误信息! 解决办法:么有设置网关 一.Ubuntu 系统下载地址: https://certification.ubuntu. ...
- 翻译1-在SQL Server 2016中介绍微软R服务
在SQL Server 2016中介绍微软R服务 源自:http://www.sqlservercentral.com/articles/Microsoft/145393/ 作者:tomakatrun ...
随机推荐
- sublime 插件cssrem安装及配置
CSSREM CSSREM 是一个CSS的 px 值转 rem 值的Sublime Text3自动完成插件.先来看看插件的效果: 一个CSS的px值转rem值的Sublime Text 3自动完成插件 ...
- Java笔记5:单例模式
一.应用杨景 在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或少具有资源管理器的功能.每台计算机可以有若干个打印机,但只能有一个Printer ...
- NDK官方开发指南翻译之 NDK_GDB
这几天看JNI,没有基础,那真是难受--把看到的相关资料记录一下,也分享给刚開始学习的人. 'ndk-gdb' Overview 重要:假设你要调试线程相关的程序.请阅读以下的'Thread Supp ...
- [GraphQL] Filter Data Based on Query Arguments with GraphQL
With GraphQL, every field and nested object can have a set of arguments which can be used to request ...
- EffectiveJava(22)JAVA四种嵌套类的特点及用法
嵌套类: 1.静态成员类 静态成员类是外围类的一个静态成员,遵守同样的可访问性规则 用法:a.作为公有的辅助类 内部类: 2.非静态成员类 语法上只和静态成员类的唯一区别是少一个static修饰符 a ...
- XYWi-Fi v2.0 简单的笔记本无线热点分享工具【Win】
[软件名称]XYWi-Fi [版本号]v2.0 [适用系统]Windows 7/8/8.1/10 [功能特性]简单的笔记本无线热点分享工具 [下载地址]pan.baidu.com/s/1mgmOpJi ...
- spring自己主动装配Bean属性
spring提供了3种类型的自己主动装配 byName:把与Bean的属性具有同样名字(或者ID)的其它Bean自己主动装配到Bean的相应属性中. byType:把与Bean的属性具有同样类型的其它 ...
- svn上检出的项目在myeclipse中报错的解决
项目本身应该是没问题的,应该是验证方面导致的错误的报错,取消验证即可:右键项目,如下操作: 除此之外,还应考虑是否环境问题引起的报错,比如:项目jar包是否发布,jdk的版本,tomcat的版本,等等
- windows 2008 R2 x64安装oracle12c报INS-30131
问题描述:Window 2008 R2 x64安装Oracle12c报[INS-30131]执行安装程序验证所需的初始设置失败 解决方法:先在控制面板的“服务”,看SERVER服务是否启动,如果没有启 ...
- oc block 遍历数组及字典
原遍历数组NSArray * lines = ...for (NSString * line in lines) { // ...}for (int i = 0; i < lines.count ...
