OBS(openboardcastserver )结构分析一、概述
openboardcastserver (OBS )是用于实时直播的开源软件。
官方网站: https://obsproject.com/
代码托管地址: https://github.com/jp9000/OBS
git地址: https://github.com/jp9000/OBS.git
二是结构项目的文件结构。
三.分析最新的OBS只能在vista以上的操作系统下操作,显卡至少必须支持DX10。
OBS的编译需要visualstudio2013(c11改写了部分代码)。 当然,您也可以切换到旧版本进行编译,但新的特性和错误修复不会生效。
OBS包括五个主要组件和几个附加功能。
video source : a,DShow的capture filter;
b、游戏画面、hook部分用minihook实现,得到的surface分别用D3D10共享显示在OBS主窗口,用共享存储器发送到OBS进程进行编码;
c、桌面窗口界面,用GDI实现;
d、照片
音频源: A、麦克风和桌面语音,通过MMDevice获取;
B、blank,没有声音;
video encoder: a,x264;
b、NVIDIA cuda视频编码器;
c、Intel qsv视频编码;
用audio encoder: a、MP3、lame库实现;
用b、aac、libfaac库实现;
stream destination: a、rtmp stream、librtmp实现;
b、能够生成文件流、FLV/MP4的文件;
附加功能: A、音频重采样,通过libsamplerate库实现;
b、音频去噪;
c、自动更新;
四.总结: OBS在逻辑上区别很清楚,但代码部分非常庞杂。 为此,作者编写了一个跨越新的windows/linux/mac平台的C 11兼容项目。
地址: https://github.com/jp 9000/OBS-studio