在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务
說明如下:
(1)所有操作最好使用root操作,以盡可能避免權限問題
(2)crtmpserver和web服務器apache(Ngnix亦可)被裝在同一臺服務器上,客戶端使用其他PC的桌面瀏覽器和android手機,下面是測試環境示意圖:
(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播放窗口
下面是在三星蓋世四上的播放效果截圖
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
總結
以上是生活随笔為你收集整理的在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新 crtmpserver 源码的获取
- 下一篇: Linux下系统性能检测利器dstat