crtmpserver简介
我们在第一章的时候已经简要说明了crtmpserver,crtmpserver是一个由C 语言编写的开源的RTMP流媒体服务器,与其对应的商业产品自然是Adobe公司的FMS。与FMS相比,从功能上来说crtmpserver只能称为FMS的简化版本,其功能并没有FMS那么完善甚至是远远没有达到。其与flash player的兼容性自然也比不上官方的FMS了。但是crtmpserver提供了最常见的RTMP实现。作为开源的高性能RTMP流媒体服务器,不仅可以用在x86平台的linux服务器,windows服务器,还可以被用在arm等嵌入式平台上。crtmpserver的代码结构良好,类的继承体系清楚,代码效率高。是学习RTMP协议和服务器端编程的好例子。
crtmpserver的官方网站是www.rtmpd.com 但是目前该网站好像是出了问题,并不能打开,crtmpserver的google论坛上有网友说crtmpserver的源码暂时移动到github上了,具体地址是https://github.com/shiretu/crtmpserver 如果大家想要下载到最新的crtmpserver源码,可以到该git页面上下载。后续还请关注crtmpserver的官方网站。
本系列文章并不打算使用该git上下载的代码,由于之前工作中使用的crtmpserver代码是基于717的版本,所以该系列也将基于此版本作为讲解。请在这里下载crtmpserver-centosinit.zip 代码包,其关联的openssl代码为 openssl-1.0.1c.tar.gz
linux下编译与运行crtmpserver
本次linux使用的发行版是Ubuntu 10.10,各个编译工具版本如下:
代码语言:javascript复制gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
g (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
cmake version 2.8.7
crtmpserver源码依赖openssl,所以我们需要先编译openssl库,并安装相关的头文件。另外crtmpserver使用的cmake工具进行源代码的编译管理,所以也需要安装cmake。
运行crtmpserver,编译完成之后此时的目录还在crtmpserver-717/builders/cmake/目录下,直接运行下面的命令:
代码语言:javascript复制./crtmpserver/crtmpserver
./crtmpserver/crtmpserver.lua
程序成功运行之后的显示如下,表示成功运行: