OBS (open boardcast server)结构分析
本博客转载于:https://www.cnblogs.com/xylc/p/3640994.html
一,简介
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
OBS (open boardcast server)结构分析相关推荐
- linux php pdo dblib,PDO_DBLIB (MSSQL) on Ubuntu Server
Czasem zachodzi potrzeba skorzystania z innego sterownika baz danych niż mysql. O ile sprawa wydawać ...
- OBS_Classic经典版框架
一,简介 OBS(open boardcast server),是一个用于直播的开源软件. 官方网站:https://obsproject.com/ 代码托管地址:https://github.com ...
- 我们来用Unity做一个局域网游戏(下)
大家好,我又来了. 废话不多说,咱们赶紧的,接着上一篇文章把这个联网项目搞完. 客户端发送消息 然后在NetworkClient中提供发送消息的方法,发送消息使用消息队列的机制(就是把给发送的消息放进 ...
- 自建rtmp、rtsp媒体服务器及遇到的问题
我是这方面的小白,本文旨在记录自己搭建服务器的过程.一是给自己就下记录以便下次搭建:二是希望能帮助到其他有相同需求的朋友. 我用OBS向服务器推流,这个在OBS上配置就可以 [一.RTMP推流.拉流] ...
- Darwin Streaming Server程序结构分析
Darwin Streaming Server是Apple公司提供的开源实时流媒体播放服务器程序.整个程序使用C++编写,在设计上遵循高性能,简单,模块化等程序设计原则,务求做到程序高效,可扩充性好. ...
- 开源直播工具OBS研究
项目简介 OBS - Free and open source software for live streaming and screen recording(OBS是一款开源的用于录屏直播的工具软 ...
- SQL Server 2014 内存优化表(1)实现内存优化表
内存优化表(Memory-Optimized Tables)是SQL Server 2014的新特性,目前仅适用于评估版(Evaluation Edition).开发版(Developer Editi ...
- Spring Boot常见企业开发场景应用、自动配置原理结构分析
读者应具备: Spring SpringMVC服务器端开发基础 Maven基础 本篇主要介绍Spring Boot在企业开发中常见场景的使用.以及Spring Boot的基本原理结构. 以下为本篇设计 ...
- macOS下nginx配合obs做推流直播.md
这篇探索起源于给妹子看高清电影 动辄10G的1080P电影对于网速不够快又懒得找高清资源的妹子来说并不方便看 而pandaTV等直播平台显然是不可以直播电影的,于是我就按照google的方法自己推流1 ...
最新文章
- 某股份制商业银行数据中心灾备建设经验
- 02 | 系统可用性:没有故障,系统就一定是稳定的吗?
- 根据ip获取所在城市 php,PHP:根据IP地址获取所在城市
- 尤克里里怎么样_尤克里里入门简单教程
- 论文笔记--基于 FCM 聚类的跨模态人物图像标注方法-2015
- enctype=multipart/form-data 文件上传
- Levenberg-Marquardt算法简介和C++实现
- Chrome扩展推荐
- Ubuntu 训练深度学习模型的时候突然重启问题
- 请高手指点,简单的几个数组操作方法不知道是否可以有更好的改进方法或者更简单的方法?
- 微信小程序scroll-view中的坑(因为动态设置高度导致无法下拉)
- 经纬财富:新乡怎么炒白银能挣到钱?
- 有关java开发的单词_Java开发常用英语单词表
- house-prices
- 巴菲特午餐取消,吃饭行情一地鸡毛
- Golang垃圾回收机制详解
- 裁员之外,京东还在偷偷做这件事
- hadoop集群平台的搭建
- 一分钟煮鸡蛋好吃又有营养 - 生活至上,美容至尚!
- IDEA Ctrl+Alt+L 自定义格式化代码的编码格式
热门文章
- python:select interpreter resulted in an error python.setINterpreter not found
- 高德地图很详细的用法 定位 搜索 添加小蓝点marker 移动地图实时定位
- TCR-seq(T细胞受体测序)
- 日常笔记——Windows删除多余的系统还原点
- OOP-面向对象程序设计
- 怎么设置系统消息免打扰,看这里就够了,WIN10系统如何设置系统消息免打扰
- eve手游php,[Murky Army]EVE无烬星河PVP入门————小队战战术及队伍配置(
- pdf合并与拆分软件的使用
- AARRR模型——留存:始于价值,合于套路,久于习惯(中)
- 《C语言程序设计》第4版 何钦铭、颜晖主编 课后习题答案 第5章 习题5