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