RTMPdump 是c++版本的RTMP协议解析库,其中包含一个服务器端的rtmpsrv程序,可以替代red5,做一些c++环境下的开发。
官方网站为:http://rtmpdump.mplayerhq.hu/
经过两天的努力,终于将RTMPdump的服务器端程序rtmpsrv与flex客户端连接成功,实现了rtmpsrv与flex之间的通讯。现将环境搭建过程介绍如下。
原文网址:http://blog.csdn.net/yangzhaohui168/archive/2010/07/23/5756734.aspx
一、rtmpsrv 在VC2010下编译:
rtmpdump没有做为单独的lib编译,将其整合到了工程中, 需要引用zlib和一种加密库,如 OpenSSL PolarSSL,这里我选择了PolarSSL。rtmpsrv再调用rtmpdump中的函数。
从网上下载了 zlib123-dll.zip polarssl-0.13.1-gpl.tgz
zlib123-dll.zip 库中lib和dll可以直接引用,不用重新编译。
polarssl-0.13.1-gpl.tgz 运行其中的 /visualc/polarssl.dsw 就可以编译出lib库,然后将其引入到工程中。
另外,rtmpsrv需要解析命令行输入,需要下载个freegetopt-0.11.tar.gz,直接将其中的getopt文件包含到工程中就可以了。(注:win32下默认不包含getopt)
搭建完成后可以运行源程序可以在下面的网址下载:
http://download.csdn.net/source/2566496
二、flex的运行环境
flex运行环境的搭建,这里就不用多说了,上面的下载地址包含一个可以运行的mxml文件,flex builder下新新建一个工程,将其添加进去,就可以运行了,并可以连接到rtmpdump服务器端。
三、rtmpsrv 与 flex连接
1、进入命令行执行服务器端程序:
E:/VcDev/rtmpdump/Debug>rtmpdump.exe -z RTMP Server rtmpdump-2.3 (c) 2010 Andrej Stepanchuk, Howard Chu; license: GPL Streaming on rtmp://0.0.0.0:1935 |
这时服务器端在默认端口1935等待客户端连接。
2、运行客户端程序,并点击连接按钮,客户端终端打印连接成功,并向服务器端发送了hello的invoke AMF消息。
[SWF] D:/Adobe/workspace/rtmpdump/bin-debug/rtmpdump.swf - 638,132 bytes after decompression 连接信息…….. NetConnection.Connect.Success
|
DEBUG: ServePacket, received packet type 14, size 18 bytes DEBUG: ServePacket, received: invoke 18 bytes DEBUG: (object begin) DEBUG: Property: <Name: no-name., STRING: hello> DEBUG: Property: <Name: no-name., NUMBER: 2.00> DEBUG: Property: NULL DEBUG: (object end) DEBUG: ServeInvoke, client invoking <hello> DEBUG2: RTMP_ReadPacket: fd=1884
|
写于:2010-07-23 00:00:00