OBS (open boardcast server)結構分析


一,簡介

OBS(open boardcast server),是一個用於直播的開源軟件。

官方網站:https://obsproject.com/

代碼托管地址:https://github.com/jp9000/OBS

git地址:https://github.com/jp9000/OBS.git

二,結構

項目文件結構如下圖:

obs

三,分析

最新的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM