在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务

说明如下:

(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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值