最近要搭建一個flv流媒體服務(wù)器來播放視頻,參考了很多文章,總是不是很成功,非常的郁悶,于是干脆也不google了。
一、廢話少說,預(yù)備知識:
×互聯(lián)網(wǎng)上播放視頻的兩種方式
一種是以http協(xié)議方式來訪問視頻文件,這種方式的缺點(diǎn)是不能從視頻特定的幀位置進(jìn)行播放,必須從頭開始。常用的方案是Appache+前端flv播放器。
另外一種方式是搭建專門的復(fù)雜的流媒體服務(wù)器,優(yōu)點(diǎn)是視頻支持拖拽播放,缺點(diǎn)是這種服務(wù)器搭建復(fù)雜,配置要求也比較高,而且運(yùn)行其上的程序必須是某種語言。
常用的免費(fèi)方案是RED5(使用java語言) 我現(xiàn)在做的這個方案是使用lighttpd自帶的flv_streaming模塊來實(shí)現(xiàn)偽流媒體。
×flv格式以及播放器
FLV 是FLASH VIDEO的簡稱,F(xiàn)LV流媒體格式是隨著Flash MX的推出發(fā)展而來的視頻格式。由于它形成的文件極小、加載速度極快,使得網(wǎng)絡(luò)觀看視頻文件成為可能。
我們一般看電影用的格式主要是rm,rmvb,mp4,mpg,avi等格式,這些格式都可以用視頻轉(zhuǎn)換工具轉(zhuǎn)換成flv格式,比如win平臺下的格式工廠、linux下的ffmpeg,但是轉(zhuǎn)換生成的flv往往Meta Data是損壞的,不支持拖拽操作,一拖拽就又從頭播放了。
我們使用flv修復(fù)工具,如flvtools,yamdi等等。
flv播放器也非常多,但是80%的flv播放器也只是起到flv解碼播放的作用,無法向服務(wù)器發(fā)送幀參數(shù)。比如我要拖拽到50秒那個地方播放,而50秒對應(yīng)的幀假如是第900幀,flv播放器應(yīng)該向服務(wù)器發(fā)送一個類似“start=9000”的幀參數(shù)請求。
二、我們搭建流媒體服務(wù)器要有3大條件:
1是支持偽flv流的web服務(wù)器,這里用的是lighttpd
2是Meta Data完好無損的flv文件
3是支持發(fā)送幀參數(shù)的flv播放器,比如fwplayer和flowplayer
搭建步驟
我們首先搭建一下流媒體服務(wù)器
用rpm安裝lighttpd,首先添加rpmforge源
安裝lighttpd,目前最新版本是1.4.28
配置開啟lighttpd的flv_streaming模塊,網(wǎng)上很多教程都只開啟了flv_streaming模塊,建議也開啟mod_secdownload模塊。Lighttpd的配置主文件是/etc/lighttpd/lighttpd.conf,模塊配置文件是/etc/lighttpd/modules.conf
在server.modules 中加入"mod_secdownload","mod_flv_streaming"
我們啟動一下lighttpd
如果啟動成功,我們的流媒體服務(wù)器就已經(jīng)完成了。
在瀏覽器中訪問一下服務(wù)器,如果訪問不了成功,配置一下防火墻,開放80端口。并且把selinux設(shè)置為允許。如果還是不行,你的配置有問題,最好的辦法是看一下日志:tail /var/log/lighttpd/error.log
第二步我們制作一個flv視頻,用到的工具是centos下的ffmepg+flvtool2 或者 win下的格式工廠+flvmdi,流程就是先把rm,rmvb,mov,mp4等等各類視頻匆匆轉(zhuǎn)換成flv格式,再用meteData工具修復(fù)一下。
目前作者的做法是這樣的,
先下載格式工廠:下載地址http://www.xdowns.com/soft/10/35/2008/Soft_41466.html ,如果這個頁面失效了,大家谷歌自己找
通過格式工廠我把一小電影video.rm 轉(zhuǎn)換成了video.flv,具體操作就不詳細(xì)說了
video.flv的修復(fù)工作我是在centos里面進(jìn)行的,因?yàn)閒lvmdi有時候不起作用,還是flvtool2穩(wěn)定。我們可以通過samba共享或者用ftp把video.flv傳到Centos系統(tǒng)里面。
在Centos上安裝flvtool2并修復(fù)一下video.flv
flv文件已經(jīng)準(zhǔn)備好了,再進(jìn)行最后一步,配置flv播放器,我使用的是jw player
下載地址:http://www.longtailvideo.com/players/jw-flv-player/
另外使用了swfobject.js,下載地址:http://code.google.com/p/swfobject /downloads/list
lighttpd默認(rèn)的web目錄在/srv/www/lighttpd下面,我們放這幾個文件
網(wǎng)頁文件:index.html
視頻文件:video.flv
視頻預(yù)覽圖片:perview.jpg
js:swfobject.js
flv播放器:player.swf
---------------------------------------------------------------
附:index.html文件內(nèi)容:
ok!三條件已經(jīng)完成,訪問http://yourserverip/index.html
**************************** ****************
* 作者:
* 葉文濤
* 參考:
* FLV播放器拖動處理 http://hi.baidu.com/flyinweb/blog/item/d0a00ef4afea846bddc4749b.html
* lighttd搭建流媒體Flash服務(wù)器支持seek操作 http://www.bwcsc.net/?q=node/467&page=96
* 用 lighttpd 建立 FLV 影片網(wǎng)站 http://cha.homeip.net/blog/2007/08/328.html
******************轉(zhuǎn)載請注明來源 ****************