【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、其它功能与业务;

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