OBS_Classic经典版框架
一,简介
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_Classic经典版框架的更多相关文章
- 为经典版eclipse增加web and JavaEE插件
链接地址:http://jingyan.baidu.com/article/f25ef2546cd0e2482d1b825d.html 为经典版eclipse增加web and JavaEE插件 百度 ...
- struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)
为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...
- struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)
为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...
- 经典 MapReduce框架(MRv1)
在 MapReduce 框架中,作业执行受两种类型的进程控制: 一个称为 JobTracker 的主要进程,它协调在集群上运行的所有作业,分配要在 TaskTracker 上运行的 map 和 red ...
- django框架简介及自定义简易版框架
web应用与web框架本质 概念 什么是web应用程序呢? Web应用程序就一种可以通过互联网来访问资源的应用程序, 用户可以只需要用一个浏览器而不需要安装其他程序就可以访问自己需要的资源. 应用软件 ...
- 软媒魔方 v6.2.1.0 绿色纯净版及经典版
软媒魔方,最好用的 Windows 系统增强软件!从最早的优化大师发展为一款系统超级增强套装,自动化.智能化解决各种电脑问题.软媒魔方,全新一代Windows系统增强辅助工具,智能+专业双操控模式,系 ...
- Apache与php的整合(经典版),花了一天去配置成功经验
1.首先在官方下载php-7.0.7-Win32-VC14-x64.zip和httpd-2.4.20-win64-VC14.zip,也可以下载镜像版的apache:apache_2.4.4-x64-o ...
- 经典MVC框架技术-struts2基础知识
Struts2框架简介 struts2框架是在struts1和webwork技术的基础上,进行合并的全新框架,struts2以Webwork为核心,采用拦截器来处理用户的请求,这样的设计使得业务逻辑控 ...
- 使用IR2104S搭建的H桥-机器人队比赛经典版(原作者答疑)
原理图地址:http://bbs.ednchina.com/BLOG_ARTICLE_3020313.HTM?click_from=8800020962,4950449047,2014-05-01,E ...
随机推荐
- navicat 连接报2059错误
原因 navicat不支持mysql新版本的加密规则,mysql8 之前的版本中加密规则是mysql_native_password, mysql8之后,加密规则是caching_sha2_passw ...
- mysql 数据库基础操作
一 知识储备 MySQL数据库基本操作知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student, ...
- python面试的100题(13)
29.Given an array of integers 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数.你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用.示例:给定nums ...
- Mac 上完美解决SVN问题及svn软件
注:本文是转自https://blog.csdn.net/qq_40144558/article/details/80630466 svn对Mac的支持不算美好,几乎所有软件都很繁琐,我们作为开发其实 ...
- 解决wxpy获取不到指定群聊对象的情况
我们可以通过Bot.friends 以及Bot.groups 来获取到所有的好友以及聊天群,这里需要注意的是,聊天群需要保存到通讯录中,不然可能会出现找不到聊天群的情况. 摘自:http://www. ...
- linux修改主机名(hostname)
修改/etc/sysconfig/network文件并重启
- 快速搭建SSM框架环境开发项目【配置】
maven在线仓库https://mvnrepository.com/ maven构建项目 pom.xml <project xmlns="http://maven.apache.or ...
- python3练习100题——008
今天第二道,做了明天就可以休息一下- 原题链接:http://www.runoob.com/python/python-exercise-example8.html 题目:输出 9*9 乘法口诀表. ...
- codeblocks汉化
1.- 汉化包 腾讯微云 2.首先打开codeblocks安装文件夹,如:D:\CodeBlocks\share\CodeBlocks\locale\zh_CN,注意:zh_CN文件夹需自行创建 3. ...
- apk 测试入门基本操作
通过以上两个方法查询到运行的system service后,就可以在dumpsys后面加上service的名字,查看指定的service信息. // 查看Activity相关信息adb shell d ...
