说明如下:
(1)所有操作最好使用root操作,以尽可能避免权限问题
(2)crtmpserver和web服务器apache(Ngnix亦可)被装在同一台服务器上,客户端使用其他PC的桌面浏览器和android手机,下面是测试环境示意图:
(3)测试环境位于局域网内,由一台路由器接入联通运营商提供的10M包年网络服务(4)目前测试所用的crtmpserver是trunk 811版本,可能与早期稳定版有些许差别,比如媒体文件存放路径
(5)这里之所以使用jwplayer作为浏览器的flash播放插件,而没有采用通常的adobe flash player,最主要的原因是考虑到开源和全平台兼容性,特别是android和ios上的播放问题。
(6)这里我没有安装到服务器中,主要是因为我只想作为一个调试和阅读代码的环境,并没有去深入地测试它在生产环境上的使用.
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>
下面是在三星盖世四上的播放效果截图
来启动,不能进入下一级目录crtmpserver再启动该命令./crtmpserver crtmpserver.lua,会报错。
(2)每次关机后,在/tmp下的metadata文件夹会被销毁,所以,每次启动crtmpserver之前,需要手动使用root用户来创建该文件
mkdir -p /tmp/metadata