说明如下:
(1)所有操作最好使用root操作,以尽可能避免权限问题
(2)crtmpserver和web服务器apache(Ngnix亦可)被装在同一台服务器上,客户端使用其他PC的桌面浏览器和android手机,下面是测试环境示意图:
(3)测试环境位于局域网内,由一台路由器接入联通运营商提供的10M包年网络服务
(4)目前测试所用的crtmpserver是trunk 811版本,可能与早期稳定版有些许差别,比如媒体文件存放路径
(5)这里之所以使用jwplayer作为浏览器的flash播放插件,而没有采用通常的adobe flash player,最主要的原因是考虑到开源和全平台兼容性,特别是android和ios上的播放问题。
(6)这里我没有安装到服务器中,主要是因为我只想作为一个调试和阅读代码的环境,并没有去深入地测试它在生产环境上的使用.
1.下载源码包并解压
svn co –username anonymous https://svn.rtmpd.com/crtmpserver/trunk crtmpserver
When it asks for password, hit Enter key
若是zip文件,使用如下命令解压
unzip trunk.zip
cd trunk/
ll
2.安装准备
安装必要的工具包
sudo apt-get install cmake libssl-dev libcrypto++-dev libdl-ruby
3.生成Makefile并Make生成
cd builders/cmake
cmake .
make
4.启动crtmpserver
./crtmpserver/crtmpserver crtmpserver/crtmpserver.lua
下面是启动后的命令行界面
从中可以看出crtmpserver支持很多主流的流媒体协议,rtmp和rtsp,当然这里没有rtmfp和hls,貌似两年前的版本是支持的.
5.查看crtmpserver进程信息
ps aux | grep crtmpserver
root 11729 0.0 0.4 10264 4712 pts/0 S+ 16:57 0:00 ./crtmpserver/crtmpserver crtmpserver/crtmpserver.lua
root 11792 0.0 0.0 4012 756 pts/1 S+ 17:03 0:00 grep –color=auto crtmpserver
6.制作测试样本并复制到crtmpserever中指定目录
从下面的网站下载http://www.dvdvideosoft.com/cn/products/dvd/Free-Video-to-Flash-Converter.htm
得到一个windows平台的软件Free Video to Flash Converter,可将视频文件转换为flash (SWF或者FLV格式) 并将其发布在你的网页上或博客中。目前得到的最新版本是: 5.0.32.1230
我们将要测试的样片《星月神话》高清MV有avi格式转码为flv格式,记为test.flv,按理本应当复制到media目录下面,但是由于当前版本的原因,我发现它已经更改为在如下结构,
事先需要创建如下目录
/Volumes/Storage/media/flv
/Volumes/Storage/media/mp4
/Volumes/Storage/media/mp3
同时需要在/tmp中事先创建
/tmp/metadata目录来存放播放每部视频时的.seek和.meta文件,这些文件是便于拖到检索和存放视频元数据的信息。
7.安装配置web服务器
7.1安装Apache Weserver步骤如下:
root@taoyx-desktop:/home/taoyx# ps aux | grep apache
root 1832 0.0 0.0 4012 760 pts/0 S+ 10:40 0:00 grep –color=auto apache
root@taoyx-desktop:/home/taoyx# sudo apt-get install apache2
root@taoyx-desktop:/home/taoyx# ps aux | grep apache
root 2245 0.0 0.2 5464 2576 ? Ss 10:44 0:00 /usr/sbin/apache2 -k start
www-data 2248 0.0 0.1 5236 1756 ? S 10:44 0:00 /usr/sbin/apache2 -k start
www-data 2250 0.0 0.1 226868 2020 ? Sl 10:44 0:00 /usr/sbin/apache2 -k start
www-data 2251 0.0 0.1 226868 2020 ? Sl 10:44 0:00 /usr/sbin/apache2 -k start
root 2316 0.0 0.0 4012 756 pts/0 S+ 10:44 0:00 grep –color=auto apache
配置网站目录,默认的网站根目录是/var/www
7.2或者安装nginx的二进制包,步骤如下:
直接从命令行安装:
sudo apt-get install nginx
根目录在
/usr/share/nginx/html
测试页面放在这个目录下面就可以了
启动方法:
/etc/init.d/nignx
其他方法:
/etc/init.d/nignx -s stop/quit/reopen/reload
其他查询选项
/etc/init.d/nginx -v/V
8.安装JWPlayer网页内嵌播放器
首先下载JWPlayer安装包,解压,提取出里面的player.swf,jwplayer.js,swfobject.js,
复制到apache的网站目录根目录(/var/www)下新建的子目录jwplayer下面。
我这里使用的是一个早期的jwplayer版本,链接见
http://download.csdn.net/detail/tao_627/6895995
大家如果对最新版的jwplayer感兴趣,可以去jwplayer的官网去下载最新版来倒腾。
新建一个名为test_jwplayer.html的html,内容如下
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Crtmpserver Video Demo</title>
</head>
<body>
<script type='text/javascript' src='swfobject.js'></script>
<div id='mediaspace'>Loading the JWPlayer...</div>
<script type='text/javascript'>
var so = new SWFObject('player.swf','mpl','1280','720','9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addParam('wmode','opaque');
so.addVariable('file','/Volumes/Storage/media/flv/test');
so.addVariable('streamer','rtmp://192.168.0.106/flvplayback/');
so.write('mediaspace');
</script>
</body>
</html>
注意:指定媒体文件时,最好给出绝对路径比较可靠,若是flv文件,.flv必须省略
此处的媒体文件是test.flv
root@taoyx-desktop:/var/www# mkdir jwplayer
root@taoyx-desktop:/var/www# ll
总计 16
drwxr-xr-x 3 root root 4096 2011-07-24 11:21 ./
drwxr-xr-x 16 root root 4096 2011-07-24 10:44 ../
-rw-r–r– 1 root root 177 2011-07-24 10:44 index.html
drwxr-xr-x 2 root root 4096 2011-07-24 11:21 jwplayer/
root@taoyx-desktop:/var/www# cd jwplayer/
root@taoyx-desktop:/var/www/jwplayer# ll
总计 256
drwxr-xr-x 2 root root 4096 2011-07-24 11:31 ./
drwxr-xr-x 3 root root 4096 2011-07-24 11:21 ../
-rw-r–r– 1 root root 133009 2011-07-06 13:08 jwplayer.js
-rw-r–r– 1 root root 106417 2011-07-06 13:08 player.swf
-rw-r–r– 1 root root 6887 2011-04-12 15:47 swfobject.js
-rw-r–r– 1 root root 493 2011-07-24 11:37 test_jwplayer.html
9.点击观看,以验证crtmpserver是否安装成功
打开一个网页浏览器,比如maxthon,在地址栏输入
http://192.168.0.106/jwplayer/test_jwplayer.html
其中192.168.1.106是rtmp服务器crtmpserver所在的IP地址,后面的jwplayer/test_jwplayer.html是针对apache webserver的网站目录根目录(/var/www)的相对路径
稍等片刻,就会弹出一个内嵌网页的JWPlayer播放窗口
下面是在三星盖世四上的播放效果截图
在ipad 4的safari和chrome上测试时,发现加载jwplayer插件时通不过,初步猜测是ios的沙盒安全机制导致的。
10.开机重启注意
(1)每次开机进入linux Ubuntu 12.04后, apache webserver相关进程会自动运行,但是crtmpserver需要进入到trunk/builders/cmake目录下面,使用
./crtmpserver/crtmpserver crtmpserver/crtmpserver.lua
来启动,不能进入下一级目录crtmpserver再启动该命令./crtmpserver crtmpserver.lua,会报错。
(2)每次关机后,在/tmp下的metadata文件夹会被销毁,所以,每次启动crtmpserver之前,需要手动使用root用户来创建该文件
mkdir -p /tmp/metadata