OBS (open boardcast server)结构分析
来源:互联网 发布:c语言求最短路径 编辑:程序博客网 时间:2024/06/06 14:27
OBS (open boardcast server)结构分析
一,简介
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)结构分析
- OBS (open boardcast server)结构分析
- OBS (open boardcast server)结构分析
- OBS (open boardcast server)结构分析
- OBS代码分析
- obs源码分析
- obs 核心结构体(一)
- obs 核心结构体(二)
- obs 核心结构体(三)
- obs 核心结构体(四)
- obs 核心结构体(五)
- Ubuntu安装OBS(Open Broadcaster Software)
- OBS源码分析之rtmp
- Boardcast receiver
- SUSE12.1手工安装OBS-Server
- /usr/lib/obs/server/BSConfig.pm
- OBS源码分析之render_video处理流程
- OBS源码分析--视频采集显示
- 2017 火种CTF Writeup
- 归并算法详解
- Java并发编程实战----- AQS(三):阻塞、唤醒:LockSupport
- 3.RxJava2.x与RxJava1.x的差异对比
- 基于html5的五子棋游戏
- OBS (open boardcast server)结构分析
- 众人是如何看待婚前性行为、处女情结的?
- 阿里云ECS Spark安装
- Shell脚本工具
- 和铃声相关的内容(RingtoneManager)
- QTreeWidget简单使用
- 二叉树(1)
- iOS启动页倒计时跳过按钮
- 4. RxJava操作符与应用场景