2011年4月28日

在 Firefox 中使用 video tag 播放 webm 影片

這是一個非常神秘的… 呃,應該算問題而不算 bug…
理論上來說,在支援 HTML5 的 browser 中,可以直接用 video tag 來播放 webm、ogv、mp4 的影片(當然實際的 codec support 狀況還是要看各家瀏覽器啦),不過我自己主要在用的 Firefox Nightly 和 Chrome 都可以正常撥 webm、ogv,IE 的話我沒有測試。(後來補充測試了 IE9,我把結果列在底下)

但是今天實做上的時候發現了一個容易漏掉的地方。我先把網路上隨便的 avi 檔案,用 WebmProject 建議的轉檔軟體:Miro Video Converter 來轉成 webm 的格式,接著丟到我自己的 server 上去,但無論怎麼測試,Firefox 就是無法正確播放我轉出來的影片,chrome 卻可以正常播放… 可是我用 Firefox 到 youtube 開啟 html5 mode 之後,是可以正常播放 webm 影片的… 而直接把 source 改去別人的 webm 影片,Firefox 卻又可以正常播放… 完全猜不透問題在哪裡…

我測試過 video tag、換用 mac os 來轉檔、換一套轉檔軟體等等的方法,就是沒辦法在我的 server 上播放我轉出來的 webm 影片… 好,現在就來解答…

答案就是 apache 設定裡面要加上
AddType video/webm webm
就這麼簡單…加上了之後我的 Firefox 就可以正常播放 webm 影片了…

Chrome 裡面似乎有特別做 webm 的判斷,所以即使我 server 沒有加入這個 mime type 還是可以正常播放… 也就是因為 Chrome 作弊… 害我完全沒想到問題出在 server 端… 總之,就是這麼簡單…

另外下面附上 Firefox 6.0a1、Chrome 13.0.749.0、IE9、IE10pp2、Safari 5、Opera 11 與 webm、ogv、mp4 的支援…

\
webmogvmp4
Chrome 13.0.749.0
Firefox 6.0a1
Opera 11
Safari 5
IE 10 pp2
IE 9

總之,最保險的就是全放上去
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
</head>

<body>

<video id="movie" width="640" height="352" preload controls>
 <source src="test.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
 <source src="test.webm" type='video/webm; codecs="vp8, vorbis"' />
 <source src="test.ogv" type='video/ogg; codecs="theora, vorbis"' />
</video>

</body>
</html>

考慮空間的話就是 webm/ogv 擇一,然後再補 mp4 囉~

沒有留言:

張貼留言