Steve Jobs 在"Thoughts on Flash"一文中,談及網(wǎng)絡(luò)影音時,多次提到html5與H.264兩項標準。但是,到底html5是什么?Flash和H.264又是什么回事?所以,本文旨在解釋它們之間的關(guān)系,讓大家可以初步了解。
首先,引用Steve Jobs的一段話:
Adobe一再反復宣稱Apple的移動設(shè)備不能提供"完整的網(wǎng)絡(luò)體驗",因為網(wǎng)絡(luò)上75%的影片是Flash格式。但他們沒有說這些影片幾乎所有都屬于一個更為先進的格式:H.264。
單這一段,已經(jīng)令人不知道他到底在說什么,那先讓我們來做個名詞解釋。Flash影片,也就是我們常見的FLV格式視頻,是一種常用的影片格式(Container),播放FLV時需要Flash Player。而H.264是影片編碼(Codec),適用于多種影片格式,像是QuickTime的MOV格式,F(xiàn)lash的FLV格式。而目前在 Youku等各大在線視頻網(wǎng)站上的FLV影片,大多采用H.264作為編碼,所以它們既是Flash,又是H.264。

了解兩者之間的差異之后,現(xiàn)在開始說明Flash與html5在在線播放上的差別。首先,讓我們談?wù)勲娔X上的運作差異,以及穩(wěn)定的糾結(jié)點。
電腦瀏覽器上兩者的差別在哪?又有哪些問題?
首先,讓我們用 Windows結(jié)合Google Chrome瀏覽器介紹播放Youtube視頻時的運作模式:

1,F(xiàn)lash:Youtube上的FLV視頻需要通過一個 SWF(Shockwave Flash)播放器播放,而這個播放器會調(diào)用Flash Player Plug-In來播放影片。
2,html5:YouTube 上的M4V影片直接使用標簽即可播放,而播放器是通過JavaScript編寫的,一切都是利用瀏覽器內(nèi)建功能完成。
這兩種模式的優(yōu)缺點,又可以用『穩(wěn)定性』和『流暢性』來說明:
穩(wěn)定性:
Flash Player最大的問題是容易假死,想必大家都會在玩游戲,看電影時遇到Flash Player出現(xiàn)問題的情況。之前,只要Flash Player一假死,就會連瀏覽器都一起死掉。于是,Google Chrome在推出的時候就一再強調(diào)每個程序都是獨立的,這樣一來,就算Flash Player假死,瀏覽器也不會收到牽連。之后的Mac OS X 10.6中的Safari也加入了這項功能,據(jù)說Firefox3.6.4也會加入。
但是,這樣的功能只是避免瀏覽器隨Flash Player陪葬而已,要是Flash Player穩(wěn)定性不提高的話,問題最終還是沒有解決。而html5利用標簽和JavaScript來播放,不需要任何插件,這樣相對穩(wěn)定很多。
流暢度:
另一件事是,當在線視頻由480P逐漸升級到 720P或者1080P的時候,光是播放就已經(jīng)占用相當高的CPU資源。臺式機播放都有點吃力,更別提是CULV及ATOM的輕省本了。于是Flash Player 10.1版開始加入了硬解碼支持,利用GPU加速來降低CPU資源的占用。實際測試也證明,硬件加速是目前降低CPU占用的唯一辦法。

在這項測試中,Mac上的Safari播放html5影片時占用的資源相當少,主要是因為Safari遇到 H.264格式的影片時,會調(diào)用Mac OS X中的QuickTime X進行解碼,而QuickTime X原來就支持硬解。當時Apple尚未放出硬解API,使得Flash Player 10.0與10.1完全沒有差異。當Apple公布硬解API之后,Adobe也隨即推出Flash Player 10.1 Gala For Mac,加入了硬解功能,CPU占用也明顯減少。微軟也宣布將在IE9中支持html5影片播放和H.264硬解。
比較這兩點,F(xiàn)lash Player除了穩(wěn)定性問題,支持跨平臺(NO Linux)、跨瀏覽器硬解是比html5具有優(yōu)勢。而html5最大的問題在于瀏覽器內(nèi)建編碼不統(tǒng)一,這一點在下文再討論,現(xiàn)在看看移動設(shè)備的狀況。
移動設(shè)備:性能和電量很吃緊
Steve Jobs在文中也提及,目前大多的移動設(shè)備芯片都支持H.264硬解,而目前移動設(shè)備主流芯片幾乎都采用ARM架構(gòu)。的確,ARM11、ARM Cortex-8、Cortex-9大多都支持H.264硬解,但Adobe也宣稱手機上的Flash Player 10.1將支持硬解。

但是就算支持硬解,影片播放和硬件之間隔了一層Flash Player的話,電池消耗又會是如何呢?依照FlashMobileBlog的實測,采用WiFi上網(wǎng),Nexus One能看3個小時的Youtube視頻,但Nexus One官方數(shù)據(jù)中,單機播放影片的時間達7小時。出去無線連接耗用的電量,與Steve Jobs所提及的iPhone可播放10小時的H.264影片,但播放Flash影片僅有5小時,比例大概是2:1,可見Flash耗電確實是個問題。無論如何,再過幾天,Adobe將于Google I/O開發(fā)者大會上展示供Android使用的Flahs Player 10.1,也極有可能隨著Android 2.2版(Froyo)一起更新,到時候就可以見分曉。
不過,如果Adobe不能實際證明 Flash在移動設(shè)備上不耗電的話,通過html5直接在線播放H.264影片則是目前移動設(shè)備最佳的解決方案。
html5影片的糾結(jié)點:瀏覽器支持解碼不一

Steve Jobs發(fā)表公開信后,一名歐洲自由軟件協(xié)會(FSFE,Free Software Foundation Europe)的實習生Hugo Roy寫了一封公開信,認為H.264不是真正的開源標準,因為未符合五項該協(xié)會的定義。Steve Jobs回信表示:
所有的影片編碼都有著專利。Ogg Throra與其他"開放源碼"的編碼目前背后有著一個正在組織中的專利聯(lián)盟(注一)。不幸地,我們不能因為某件事物是開放源碼,就代表或承認它并未侵犯其他人的專利。開放標準并不等同于免授權(quán)費或開放原始碼。
到底為什么H.264不被Mozilla與Opera采用,這個還需要進一步說明。

1,H.264又稱作MPEG 4 Part 10,和MPEG 2一樣需要授權(quán)費,并統(tǒng)一由MPEGLA這個專利聯(lián)盟管理收取。使用MPEG 4標準比編碼/解碼都需要付授權(quán)費,一年產(chǎn)品總算在10萬個以后時免費,但超過10萬個的時候,每個產(chǎn)品將收0.2美金的授權(quán)費,超過500萬時,授權(quán)費降為0.1美金,上限則是500萬美金。
2,線上免費內(nèi)容,如YouTube等視頻網(wǎng)站可免費使用到2016年。但如果提供租借電影,像NetFix,就要依照用戶數(shù)量收取授權(quán)費;如果用于PPV(Pay Per View)以及VOD(Video on Deman),像是MOD與BBTV數(shù)碼有線電視上的收費電影,超過12分鐘的內(nèi)容,也要收取售價的2%授權(quán)費。最多以500萬為上限。
因為這樣的授權(quán)費用規(guī)定,支持GPL協(xié)議的Mozilla基金會,以及支持開源標準的Opera,都力挺開放源代碼的OGG Theora格式,而未內(nèi)建H.264編碼。所以盡管它們都支持html5的標簽,卻無法播放H.264格式的視頻。
html5影片在移動設(shè)備上,除了微軟的Windows Mobile上的IE不支持html5之外,其他采用WebKit核心的瀏覽器的手機大多支持H.264編碼,成為通過格式問題不大。但回到電腦上,畢竟 Opera是商業(yè)公司,不排除未來會內(nèi)建H.264的可能;但Mozilla基金會就完全變成推上的釘子戶,占瀏覽器30%的Firefox使用者,就是看不到H.264格式的影片。
而Google,將會是打開這個僵局的重要角色。Google去年收購了影片編碼研發(fā)公司On2,并且傳言將會在Google I/O大會上,將旗下的VP8編碼開放成為開放原始碼。如此一來,具有接近H.264編碼低流量、高品質(zhì),又開源的VP8,將有可能成為統(tǒng)一html5影音的一匹黑馬。
結(jié)論:
1,移動設(shè)備上:Flash如果耗電問題沒有解決,html5與H.264硬件將會是未來較好的在線播放格式。
2,PC終端:如果主流瀏覽器沒有統(tǒng)一支持html5編碼,普及性將會無法和Flash比
3,Apple:以蘋果產(chǎn)品線的齊全及軟件硬件的配合,在產(chǎn)品上推廣html5不難。但要擴展出去有困難。
注一:微軟過去曾將WMP9編碼開放源代碼,結(jié)果導致許多公司要求編碼的權(quán)利。于是成立VC-1這樣的專利聯(lián)盟(Patents Pool),一共有16家公司組成,包括微軟。