本文属于《ZLMediaKit源码分析》连载系列博客的第一篇,简要介绍了ZLMediaKit的功能定位、技术优势和源码目录结构。
ZLMediaKit是一个采用现代C++标准编写的开源项目,它既可以直接作为流媒体服务器使用,也可以作为音视频、流媒体相关应用(如:播放器、推流器、流媒体服务器二次开发)的SDK。
ZLMediaKit原生支持多种操作系统,比如Windows、Linux、macOS、Android、iOS等,开发调试都十分方便。
让我们先从源码目录开始分析。后文将采用“ZLMediaKit/”来表示ZLMediaKit源码的根目录,在这个目录下可以看到3rdpart、Android、api等子目录。
ZLMediaKit/目录下的内容描述如下:
|
子目录 |
内容描述 |
|
3rdpart |
第三方开源库,包含三个子目录,内容如下: (1) jsoncpp:用来处理json格式字符串的C++库。 (2) media-server:由老陈提供的C++媒体服务器,里面包含了若干媒体文件格式、传输协议的封装类。 (3) wepoll:epoll for windows。为Windows平台实现的仿epoll API。 (4) ZLToolKit:整个ZLMediaKit项目范围内通用的基础工具库,ZLMediaKit流媒体协议库和MediaServer应用程序就是基于这个库实现的。此库封装的功能包括日志、线程池、定时器、任务、缓冲区、套接字、事件处理循环、工具类等,由于它比较通用,因此可以作为“第三方开源库”给其它项目使用(包括ZLMediaKit项目)。 |
|
Android |
采用ZLMediaKit框架开发的Android版流媒体播放器。 |
|
api |
将C++风格的ZLMediaKit核心框架封装成纯C风格的API,供C程序调用。 |
|
cmake |
可供ZLMediaKit/CMakeLists.txt加载的cmake子模块。 |
|
conf |
包含流媒体服务器的配置文件config.ini |
|
docker |
docker镜像构建脚本 |
|
package |
rpm包支持 |
|
postman |
restful接口测试工具postman的测试项目文件 |
|
release |
项目构建目标输出目录 |
|
server |
基于3rdpart和src目录中的模块开发的一个流媒体服务器。 |
|
src |
ZLMediaKit流媒体开发库,主要由各种流媒体传输协议实现构成,还有Player、Pusher和Record等功能模块。 |
|
srt |
SRT协议支持 |
|
tests |
测试代码 |
|
webrtc |
WebRTC协议栈支持 |
|
webrtc_player |
WebRTC播放器 |
|
www |
帮助文件 |
从这一篇文章开始,作者将会连载一系列文章,带读者全面领略流媒体领域的明星开源项目ZLMediaKit的技术风范。
ZLMediaKit源码分析连载:探索流媒体技术的基石
ZLMediaKit是一个跨平台的开源流媒体项目,支持多种操作系统。本文是其源码分析系列的第一篇,介绍了ZLMediaKit的功能、技术优势和源码目录结构,包括3rdpart中的第三方库如jsoncpp和wepoll,以及ZLToolKit基础工具库。此外,还提及了Android版、API封装、测试代码和WebRTC、SRT协议的支持。
7140

被折叠的 条评论
为什么被折叠?



