fthsioa wrote:
小弟入手IP4沒多久...(恕刪)
唉,這樣講好了。
你在網頁上面看到的 Youtube Flash 影片,他的內容「影片」部分並不是用 Flash 這種格式製作,而是一種叫做 H.264 的影片壓縮格式製作。實際上 Youtube Flash 影片「Flash」的部份就只有那個控制影片播放、暫停、快轉、控制音量大小的「播放器」而已。
在網頁內要嵌入一個 Flash 影片,一般的方法就是用〈OBJECT〉(for IE)或是〈EMBED〉(for IE 以外的所有瀏覽器)兩種 HTML tag。那就是讓瀏覽器呼叫 Adobe Flash Player 來載入並播放一個 .swf 檔的內容。Youtube 的作法就是這樣,先用上面講的那兩個 HTML tag 載入影片播放器的 .swf,再讓影片播放器去下載真正的影片內容來播放。
但是如同第一段講的,影片的內容本身並不是用 Flash 格式製作。所以即使不透過電影播放器這個 .swf,用其他的播放器照樣可以下載並播放。例如 iOS 裡面的 Youtube.app。
可是問題來了;嵌入在網頁中的影片,如果想用影片播放器 .swf 以外的播放器來播放,先決條件就是要告訴瀏覽器「真正的影片」的網址在哪裡。以 HTML5 來說,就是要在〈OBJECT〉和〈EMBED〉之外,多加上一個〈MOVIE〉的 tag。當然這樣做程式撰寫人員很麻煩,所以一般網站開發時大多都會用一套現成的 Javascript 函式庫,讓客戶端的瀏覽器自己判斷該用哪一種方式來播放。這個 Javascript 函式庫大概是一年多前才開始普遍使用。
換句話說,只要網站開發人員有使用這個 Javascript 函式庫,在網頁上嵌入的影片你用電腦去看,就會自動用 Flash 版本的播放器播放;你用 iOS 去看,就會自動用 iOS 系統內建的播放器播放。反之,如果網站開發人員用的還是老舊版本的 Youtube 代碼,只有放〈OBJECT〉和〈EMBED〉,在 iOS 上就無法播放。
這就是為什麼有些網頁的 Youtube 你可以看得到、有些網頁的 Youtube 你看不到的原因:問題是出在網頁開發人員。