標籤:images faac 架構 sam 操作 簡介 ++ 更新 x264
一,簡介
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_Classic經典版架構