架設 media server

因為工作上負責開放式課程網頁的關係,為了提供影音課程播放的平台,有一些架設影音伺服器上的經驗,在此稍作整理,供有需要的人參考。

假如將影音檔放在普通的網頁伺服器上,只能從頭開始播放。要能讓使用者隨意的由任何時間開始播放,首先,要有個 streaming server,才能提供 Video On Demand 的功能。streaming server 的首選當然是 Adobe 公司的 Flash Media Server (FMS),目前為 Adobe Media Server。另外的選擇是 Wowza Media Server,或者是更低成本的 pseudo streaming server。依各人的經驗,Adobe 的 FMS 比較能夠提供穩定的服務,假若只需具有播送功能,還是值得投資的,可以避免因技術性的障礙而使得使用者觀看影片的意願降低。

配合 FMS, Client 端需判斷瀏覽器的能力,決定使用 rtmp、hls、http 的協定。

使用 JW Player 6.4 為例

<center><div id="myElement" >Loading the player...</div></center>

<script type="text/javascript" src="/getcdb/extension/bitstream-display/jwplayer.js"></script> <script type="text/javascript" src="/getcdb/extension/bitstream-display/key.js"></script> <script type="text/javascript">

jwplayer("myElement").setup({
  playlist: [{      image:'video-logo.png',     sources: [{        file: 'rtmp://fms.tst.org/vod/mp4:cou01/video1.mp4',       type: 'rtmp' 
    },{        file: 'http://fms.tst.org/hls-vod/cou01/video1.mp4.m3u8',       type: 'hls' 
    },{        file: 'http://fms.tst.org/vod/cou01/video1.mp4' 
    }],   }],   primary: 'flash',    width: '480',
  height: '340',
  autostart: 'false' 
});
</script>

上述 script,三種 type 都指向同一個檔案,/webroot/vod/cou01/video1.mp4。FMS 伺服器會依網址決定使用 rtmp、hls、或 http 的協定。

影片檔案需為 H.264 的格式,考量網路頻寬及品質,影像的 bit rate 設定為 800Kb,為洽當的選擇。

使用 FFMPEG 轉檔,指令如下

ffmpeg -i video.wmv  -c:v libx264 -b:v 800k -threads 6 video.mp4

在個人的實際經驗中使用固定 bit rate,在透過 HLS 協定傳送時,能夠比較順利的播放。