OBS_Classic经典版框架

一,简介

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

时间: 2024-08-05 18:57:05

OBS_Classic经典版框架的相关文章

Python学习路线分享(2019经典版)

Python 是Web 开发.游戏脚本.计算机视觉.物联网管理和机器人开发的主流语言之一,随着Python用户可以预期的增长,它还有机会在多个领域里登顶.Python学习路线(2019经典版)分享给你.阶段一是Python语言(用时5周,包括基础语法.面向对象.高级课程.经典课程):阶段二是Linux初级(用时1周,包括Linux系统基本指令.常用服务安装):阶段三是Web开发之Diango(5周+2周前端+3周diango):阶段四是Web开发之Flask(用时2周):阶段五是Web框架之To

二次开发网狐6701经典版--创建数据库

准备工具: 1. 网狐6701经典版建库脚本 :点击下载 2.网狐6701经典版的服务端和客户端源码 :qq:2330691071,请与我联系. 数据库角本压缩包解压后如下: 记事本打开 一键安装.bat,其中的 set rootPath=数据库脚本\,些处我有按当前存放文件的目录做修改,比如我改成了,set rootPath=D:\经典版三网通\脚本代码\,确保能找到目录. @echo off TITLE 棋牌数据库[Ver6.6_Spreader] 建立脚本启动中... [期间请勿关闭] m

为经典版eclipse增加web and JavaEE插件

没怎么用eclipse所以对它不熟悉,近期在看phonegap的应用,虽然NetBeans 有android插件,但要开发phonegap类手机应用,感觉还是用eclipse可能更好些,因为eclipse有个phonegap 插件,如果该插件能够把各种配置文件产生好,可以省却用Netbeans开发的手工配置的工作. 开始只安装了eclipse juno的经典版,把ADT和phonegap插件安好后,使用phonegap生成的项目,居然只是原生的Android应用.没有JqueryMobile U

struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)

为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->Maven Project--->Next(之后界面如下所示:) --->Next(点击next之后出现如下界面:选择最后一个 maven-archetype-webapp,然后点击next) --->Next(点击next之后出现如下界面,然后选择好组织号,工程号,版本号即可),最后点击Fi

struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)

为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->Maven Project--->Next(之后界面如下所示:) --->Next(点击next之后出现如下界面:选择最后一个 maven-archetype-webapp,然后点击next) --->Next(点击next之后出现如下界面,然后选择好组织号,工程号,版本号即可),最后点击Fi

django框架简介及自定义简易版框架

web应用与web框架本质 概念 什么是web应用程序呢? Web应用程序就一种可以通过互联网来访问资源的应用程序, 用户可以只需要用一个浏览器而不需要安装其他程序就可以访问自己需要的资源. 应用软件通常有两种架构: B/S架构和传统的C/S架构. C/S架构是客户端/服务端程序, 用户需要访问服务器需要下载单独的客户端, 而B/S则是浏览器/服务端应用程序, 用户只需要选择兼容的合适的浏览器, 如IE, Chrome, Firefox等等来运行即可. Web应用程序通常就是属于B/S架构 ,这

web day13 JSTL标签库(c标签,自定义标签),MVC设计模式,JavaWeb经典三层框架

JSTL 1. jstl的概述 *apache的东西,依赖EL * 使用jstl需要导入jstl1.2.jar * 四大库: > core:核心库,重点 > fmt:格式化:日期.数字 > sql:过时 > xml:过时 2. 导入标签库 *jar包 * 在jsp页面中:<%@taglib prefix="前缀" uri="路径"%> ---------------------- core --> c标签! 1. out和s

闭包-经典版

//里面有形参,实参,匿名函数,闭包等概念的整理: 1.原始版 function createFunctions(){ var result = new Array(); for(var i=0;i<10;i++){ result[i] = function(){ // lv 3 return i }; } return result; } var funcs = createFunctions(); for(var i=0;i<funcs.length;i++){ document.writ

http协议详解(经典版)

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POS