【srs流媒體服務器】工程源代碼結構分析

└── src
    ├── app
    ├── core
    ├── kernel
    ├── libs
    ├── main
    ├── protocol
    └── utest

core:並不是很重要而且與流媒體核心功能無關的代碼;

kernel:將程序基礎功能,比如:日誌功能,錯誤碼功能,I/O、所有宏和常量定義以及音視頻數據相關基礎模塊放在這裏;

libs:socket封裝、rtmp工具;

main:主程序所在

protocol:傳輸協議相關基礎組件,包括rtsp、rtmp、http、json、buffer。我覺得json和buffer爲基礎組件。

app:代碼量最大的模塊。線程封裝、系統狀態檢查、消息隊列類、vhost相關、配置文件相關、ffmpeg封裝類、音視頻相關功能。

這個層次在我看來,不是很清晰。

我認爲一個流媒體服務器程序應該有的樣子:

1、操作系統適配:I/O、socket、thread、內存池,線程池;
2、配置文件模塊;
3、日誌模塊;
4、基礎數據結構,如:隊列,哈希表。特殊數據結構;
5、協議解析組件,http、json、錯誤碼;
6、音視頻相關組件:協議傳輸層,編解碼組件;
7、其它功能與業務;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章