2011年1月16日 星期日

HTML5 视频这滩浑水(1)基本概念

Google 宣布将在 Chrome 浏览器中移除对 H.264 视频解码的支持,此举在业界引起了不小的骚动。借此机会我们回顾一下 HTML5 视频格式之争。

首先需要理清一些基本概念。我们平常笼统说的「视频格式」其实包含三个部分:视频编码、音频编码、容器格式。其中「编码」这个概念其实又包含两个方面:编码和解码。「视频编码」作为动词指的是将动态的图像信息转化为二进制数据的过程;其逆过程称为「视频解码」。「视频编码」作为名词则通常指的是某种特定的编码方式。同样的概念也适用于「音频编码」,只不过它转化的是声音信息。大多数「视频文件」都同时包含视频和音频,因此编码后至少都有两组二进制数据,并且两组数据必须按照特定的方式同步起来,否则我们看到的画面和听到的声音将不吻合。为了解决编码后多组不同类型的的数据的存储、传输问题,需要将他们按照一定的规律组织起来,这种组织方式即是「容器格式」。

我们常见的视频文件扩展名包括 .avi, .rmvb, .mp4, .mkv 等。其实扩展名都是指的某种容器格式。这些容器里面存放的数据可能采用了多种不同的编码方式。例如,常见的 avi 文件里面存放的通常是 xvid 或 divx 编码的视频和 mp3 编码的音频。rmvb 文件里面存放的通常是 RV40 编码的视频和 cook 编码的音频。mp4 文件里面通常存放的是 H.264 编码的视频和 AAC 编码的音频。mkv 文件里面存放的则可能包含前面各种。

限于篇幅我们不涉及所有常见的视频格式。这次主要讨论两种:

1、采用 H.264 视频编码和 AAC 音频编码的 MP4 文件(H.264/AAC/MP4 组合)
2、采用 VP8 视频编码和 Vorbis 音频编码的 WebM 文件(VP8/Vorbis/WebM 组合)

H.264 是目前公认的效率最高的的视频编码。它是由国际电信联盟通电信标准部 (ITU-T) 和国际标准化组织/国际电工委员会动态图像专家组 (ISO/IEC MPEG) 共同开发的一种视频压缩技术。它的另外一个名称是 MPEG-4 AVC。目前 H.264 被广泛的运用在蓝光电影、数字电视、卫星电视、网络媒体等领域。可以说 H.264 是目前被运用得最为广泛的视频编码。

AAC 是 ISO/IEC 标准化的音频编码。它是比 MP3 更先进的音频压缩技术,目的在于取代陈旧的 MP3。AAC 音频编码被广泛的运用在数字广播、数字电视等领域。目前网上最大的音乐零售商苹果的 iTunes 音乐商店的所有数字音乐也全部采用的 AAC 音频编码。

MP4 则是 ISO/IEC 制定的容器格式标准,用以封装编码后的视频和音频数据。MP4 支持多种方式编码后的数据,但最常见的是 H.264 编码的视频和 AAC 编码的音频。

VP8 是类似于 H.264 的另一种视频编码,由 On2 公司开发。后来 Google 收购了 On2,因此 VP8 现在归 Google 所有。据称为了避开 H.264 的专利问题,VP8 没有采用一些特别的算法,使得其压缩效率效率略低于 H.264。

Vorbis 是类似 AAC 的另一种免费、开源的音频编码,由非盈利组织 Xiph 开发。业界的普遍共识是 Vorbis 是和 AAC 一样优秀、用以替代 MP3 的下一代音频压缩技术。由于 Vorbis 是免费、开源的,并且没有 AAC 的专利问题,许多游戏厂商采用 Vorbis 编码游戏中的音频资料,例如著名的 Halo,Guitar Hero 等。最近流行的在线音乐网站 Spotify 也是使用的 Vorbis 音频编码。

WebM 是 Google 基于开源容器格式 Matroska(.mkv 很多朋友应该不陌生)而专门开发的一种新型容器格式。其目的是用来封装 VP8 编码的视频和 Vorbis 编码的音频数据以供网络媒体使用。

在涉及 HTML5 视频格式的讨论中,通常「H.264」指代 H.264/AAC/MP4 这个组合,而「WebM」指代 VP8/Vorbis/WebM 这个组合。为了符合习惯、避免重复,我们也将采用同样的简称,即 H.264 = H.264/AAC/MP4,WebM = VP8/Vorbis/WebM。

source: apple4.us

2010年12月5日 星期日

RGB ,YUV, YCbCr的定義


YUV
視頻編解碼器功能
視頻編碼器要求YUV4:2:0格式的視頻輸入,因此可能根據應用需要進行視頻輸入的預處理,即對YUV4:2:2隔行掃描(例如從攝像機)到YUV 4:2:0非隔行掃描轉換,僅抽取但不過濾UV分。對視頻解碼器而言,還需要進行後處理,以將解碼的YUV 4:2:0數據轉換為RGB進行顯示,包括:YUV 4:2:0到RGB轉換;16位或12位RGB顯示格式;0到90度旋轉,實現橫向或縱向顯示。此外,視頻編解碼器通常還要求具有以下功能和特性:
支持MPEG-4簡單類 0、1 與 2 級;
兼容H.263與 MPEG-4 編解碼標準;
MPEG-4視頻解碼器支持的可選項有:AC/DC預測、可逆可變長度編碼(RVLC)、再同步標誌(RM)、數據分割(DP)、錯誤隱藏專利技術、支持每個宏塊4個運動矢量(4MV)、自由運動補償、解碼VOS層;
MPEG-4視頻編碼器選項有:RVLC、RM、DP、支持每個宏塊4個運動矢量(4MV)、報頭擴展碼、支持編碼期間碼率改變、支持編碼期間編碼幀率改變、插入或不插入可視對象序列起始碼;
支持編碼期間序列中插入I幀;
支持編碼器自適應幀內刷新(AIR);
支持多編解碼器,可用相同代碼運行多個編解碼器實例。

RGB
紅綠藍(RGB)是計算機顯示的基色,RGB565支持的色深可編程至高達每像素16位,即RGB565(紅色5位,綠色6位,藍色5位)。


YCbCr
在DVD、攝像機、數字電視等消費類視頻產品中,常用的色彩編碼方案是YCbCr,其中Y是指亮度分量,Cb指藍色色度分量,而Cr指紅色色度分量。人的肉眼對視頻的Y分量更敏感,因此在通過對色度分量進行子採樣來減少色度分量後,肉眼將察覺不到的圖像質量的變化。主要的子採樣格式有YCbCr 4:2:0、YCbCr 4:2:2 和YCbCr 4:4:4。
4:2:0表示每4個像素有4個亮度分量,2個色度分量(YYYYCbCr),僅採樣奇數掃描線,是便攜式視頻設備(MPEG-4)以及電視會議(H.263)最常用格式;4:2:2表示每4個像素有4個亮度分量,4個色度分量(YYYYCbCrCbCr),是DVD、數字電視、HDTV 以及其它消費類視頻設備的最常用格式;4:4:4表示全像素點陣(YYYYCbCrCbCrCbCrCbCr),用於高質量視頻應用、演播室以及專業視頻產品。


source: http://www.cnblogs.com/lucky-apple/archive/2008/07/02/1234022.html

2010年10月5日 星期二

音頻編碼技術標準

(一)電話質量的音頻壓縮編碼技術標準

電話質量語音信號頻率規定在300Hz~3.4kHz,採用標準的脈衝編碼調製(PCM),當採樣頻率為8kHz,進行8bit量化時,所得數據速率為64kbit/s,即椄一個數字話路。 1972年CCITT(現稱為ITU-T)制定了PCM標準G.711,速率為64kbit/s,採用非線性量化μ律或A律,其質量相當於12bit線性量化。

1984年CCITT公佈了自適應差分脈衝編碼調製(ADPCM)標準G.721,速率為32kbit/s。這一技術是對信號和它的預測值的差分信號進行量化,同時再根據鄰近差分信號的特性自適應改變量化參數,從而提高壓縮比,又能保持一定信號質量。因此ADPCM對中等電話質量要求的信號能進行高效編碼,而且可以在調幅廣播和交互式激光唱盤音頻信號壓縮中應用。

為了適應低速率語音通信的要求,必須採用參數編碼或混合編碼技術,如線性預測編碼(LPC),矢量量化(VQ),以及其他的綜合分析技術。其中較為典型的碼本激勵線性預測編碼(CELP)實際上是一個閉環LPC系統,由輸入語音信號確定最佳參數,再根據某種最小誤差準則從碼本中找出最佳激勵碼本矢量。 CELP具有較強的抗干擾能力,在4~ 16kbit/s傳輸速率下,即可獲得較高質量的語音信號。 1992年CCITT制定了短時延碼本激勵線性預測編碼(LD-CELP)的標準G.728,速率16kbit/s,其質量與32kbit/s的G.721標準基本相當。

1988年歐洲數字移動特別工作組制定了採用長時延線性預測規則碼本激勵(RPE-LTP)標準GSM,速率為13kbit/s。 1989年美國採用矢量和激勵線性預測技術(VSELP),制定了數字移動通信語音標準CTIA,速率為8kbit/s。為了適應保密通信的要求,美國國家安全局(NSA)分別於1982年和1989年制定了基於LPC,速率為2.4bit/s和基於CELP,速率為4.8kbit/s的編碼方案。

其他語音相關標準如:
G.723: 一種ITU-T 推薦標準, 用於傳輸速率在5.3~6.4 kbps之間多媒體通信傳輸的雙速率語音編碼器。
H.221:ITU-T的H.320推薦標準的框架部分,被正式稱為“視聽電話服務中64至1920 kbps通道的框架結構”。該推薦標準敘述了能讓編碼器和譯碼器在時間上同步的同步操作。
H.222:ITU-T 推薦標準,規定了運動圖片及相關音頻信息的通用編碼。
H.223:ITU-T的H.324標準的一部分,一個控制/復用協議,通常被叫作“用於低位率多媒體通信的複用協議”。
H.233:一種複用推薦標準,是ITU-T視頻互操作推薦標準協議族的一部分。該推薦標準規定音視信息的單個畫面如何在數字頻道中進行複用。
H.231:附加於ITU-T的H.320 協議族的推薦標準,規定多點控制單元,用於多點會議中將三個或三個以上遵從H.320 的編解碼器(codec)橋接在一起。
H.242:ITU-T的H.320 協議族中視頻互操作推薦標準部分。它規定了建立一個音頻會話和在通信終止後結束該會話的協議。
H.245:ITU-T的H.323 和H.324 協議族部分,定義多媒體終端之間的通信控制。
H.261:ITU-T的推薦標準,使不同視頻編解碼器(codec)能解釋一個信號是怎樣被編碼和壓縮的,以及怎樣解碼和解壓縮這個信號。它也定義了CIF 和QCIF兩種圖形格式。
H.263:包含在H.324 協議族中的視頻編解碼器(codec)。
H.320:一個ITU-T 標準,它包含了大量的單個推薦標準:編碼、組幀、信令及建立連接(H.221, H.230, H.321, H.242, 以及H.261 )。應用於點對點和多點可視會議會話,且包含G.711,、G.722 和G.728三種音頻算法。
H.323:H.323 將H.320 擴展到了內聯網、外聯網和互聯網的包交換網絡中:以太網、令牌環和其他一些可能不保證QoS的網。它也規定了ATM包括ATM QoS上可視會議過程。它支持點對點和多點操作。
H.324:一個ITU-T 標準。它在模擬電話線(POTS)上提供了點對點的數據、視頻和音頻會議。 H.324 協議族包括H.223(一種多路復用協議)、H.245(一種控制協議)、T.120(一套音頻圖像協議)和V.34(一種調製解調器規範)。
T.120:ITU-T的“多媒體數據傳輸協議”,一種數據共享/數據會議規範,使用戶能通過任何H.32x 可視會議共享文件。

(二)調幅廣播質量的音頻壓縮編碼技術標準

調幅廣播質量音頻信號的頻率在50Hz~7kHz範圍。 CCITT在1988年制定了 G.722標準。 G.722標準是採用16kHz採樣,14bit量化,信號數據速率為224kbit/s,採用子帶編碼方法,將輸入音頻信號經濾波器分成高子帶和低子帶兩個部分,分別進行ADPCM編碼,再混合形成輸出碼流,224kbit/s可以被壓縮成64kbit/s,最後進行數據插入(最高插入速率達16kbit/s),因此利用G.722標準可以在窄帶綜合服務數據網N-ISDN中的一個B信道上傳送調幅廣播質量的音頻信號。

(三)高保真度立體聲音頻壓縮編碼技術標準
高保真立體聲音頻信號頻率範圍是50Hz~20kHz,採用44.1kHz採樣頻率,16bit量化進行數字化轉換,其數據速率每聲道達705kbit/s。
一般語音信號的動態範圍和頻響比較小,採用8kHz 取樣,每樣值用8bit 表示,現在的語音壓縮技術可把碼率從原來的64kbps 壓縮到4kbps 左右。但多媒體通信中的聲音要比語音複雜的多,它的動態範圍可達100dB, 頻響範圍可達20Hz~20KHz。因此,聲音數字化後的信息量也非常大,例如把6聲道環繞立體聲數字化,按每聲道取樣頻率48KHz,每樣值18bits 表示,則數字化後的數據碼率為:6×48KHz×18bits= 5.184Mbit/s,即使是兩聲道立體聲,數字化後碼率也達到1.5Mbps 左右,而電視圖像信號數字壓縮後碼率大約為1.5Mbps~10Mbps,因此,相對而言聲音未經數字壓縮的碼率就太高了,為了更有效地利用寶貴的信道資源,必須對聲音進行數字壓縮編碼。
由於有必要確定一套通用的視頻和聲音編碼方案,ISO/IEC標準組織成立了ISO/IES JTC1/SC29/WG11,即MPEG(活動圖像專家組)。該小組負責比較和評估幾種低碼速率數字聲音編碼技術,以產生一套國際標準,用於活動圖像、相關聲音信息及其結合,和用數字存儲媒體(DSM)存儲與重現。 MPEG針對的DSM包括CD-ROM、DAT、磁光盤和電腦磁盤。基於MPEG的壓縮技術還將用於多種通信信道,如:ISDN、局域網和廣播。 "低於1.5Mbit/s的用於數字存儲媒體的活動圖像和相關聲音之國際標準ISO/IEC" (MPEG-1)1992年11月完成。其中ISO lll72-3作為“MPEG音頻”標準,成為國際上公認的高保真立體聲音頻壓縮標準,一般稱為“MPEG-1音頻”。 MPEG-1音頻第一和第二層次編碼是將輸入音頻信號進行採樣頻率為48kHz,44.1kHz,32kHz的採樣,經濾波器組將其分為32個子帶,同時利用人耳屏蔽效應,根據音頻信號的性質計算各頻率分量的人耳屏蔽門限,選擇各子帶的量化參數,獲得高的壓縮比。 MPEG第三層次是在上述處理後再引入輔助子帶,非均勻量化和熵編碼技術,再進一步提高壓縮比。 MPEG音頻壓縮技術的數據速率為每聲道32~448kbit/s,適合於CD-DA光盤應用。
MPEG-2也定義了音頻標準,由兩部分組成,即MPEG-2音頻(Audio,ISO/IEC 13818-3)和MPEG-2 AAC(先進的音頻編碼,ISO/IEC 13818-3)。 MPEG-2 音頻編碼標準是對MPEG-1後向兼容的、支持二至五聲道的後繼版本。主要考慮到高質量的5 1 聲道、低比特率和後向兼容性,以保證現存的兩聲道解碼器能從5 1 個多聲道信號中解出相應的立體聲。 MPEG-2 AAC除後向兼容MPEG-1音頻外,還有非後向兼容的音頻標準。
MPEG-4 Audio標準(ISO/IEC 14496-3)可集成從話音到高質量的多通道聲音,從自然聲音到合成聲音,編碼方法還包括參數編碼(parametric coding),碼激勵線性預測(CELP ,code excited linear predictive)編碼,時間/頻率(T/F,time/frequency)編碼,結構化聲音(SA,structured audio)編碼,文語轉換(TTS,text-to-speech)的合成聲音,和MIDI合成聲音等。
MPEG-7 Audio 標準(ISO/IEC 15938-3)提供了音頻描述工具。

2010年7月7日 星期三

Impulse Response

所謂脈衝響應(Impulse Response)
就是輸入訊號經過一個運算之後就變成輸出訊號
假設輸入訊號為x(t)
輸出訊號為y(t)

則當y(t) = h(t)*x(t)

則h(t)便為其"脈衝響應"

2010年6月28日 星期一

想印大海報印表卻不夠大怎麼辦?用Easy Poster Printer來幫你分割列印吧

想印大海報印表卻不夠大怎麼辦?用Easy Poster Printer來幫你分割列印吧

當我們想印出一張大海報時,可能需要一台所費不貲的大型印表機,或是拿去專門的店來列印輸出,相當花錢。今天阿正老師要來介紹一套免費的海報印製軟體–Easy Poster Printer,可以幫你把大張的圖片或海報切割成多張A4尺寸的紙張,用一般印表機即可列印出來喔!使用起來非常簡單,常需要列印海報的大尺寸圖片的玩家可別錯過啦!
image

Easy Poster Printer是一套來自丹麥的免費軟體,安裝及使用都相當簡單,主要的功能有:
- 可使用一般的印表機來印製各種尺寸的海報(最大20×20公尺)
- 可儲存你的海報,並與其他人分享
- 可在任何時間列印或預覽海報中的某一頁
- 可以即時載入、清除、旋轉或翻轉圖片
- 可用公釐、公分、英吋或紙張數來定義海報大小
- 可將一般的影像重新取樣為高畫質海報(150-600dpi)
- 可以更換背景顏色
- 可用剪貼簿的複製、貼上功能,直接將影像貼入海報中


Easy Poster Printer小檔案
軟體版本:2.0.3
官方網站:http://www.gdsoftware.dk/

ref: http://blog.soft.idv.tw/?p=748&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+quicktop+(Software+Player)

2010年5月25日 星期二

遠端桌面如何登入主機的主控台(Console)工作階段

當使用遠端桌面進行遠端的伺服器主機遙控的時候,每次連進去主機都會多開一個新的 Session (工作階段),也就是一台機器變成同時兩個使用者登入,即便是同一個使用者帳號。

假設我主機放在遠端的機房裡,我可能在機房的電腦已經有做一些工作沒做完,想說視窗先不關掉,回辦公室再連進去繼續操作,但每次連進去卻是不同的畫面,至於這個問題有兩種解決辦法:

第一種:利用「工作管理員」的「使用者」頁籤進行工作階段的切換

  1. 先登入遠端桌面,在開啟「工作管理員」,並點選「使用者」頁籤

    先登入遠端桌面,在開啟「工作管理員」,並點選「使用者」頁籤

  2. 在另一個工作階段按下滑鼠右鍵,選擇「連線」就可以將工作階段切換過去了

    在另一個工作階段按下滑鼠右鍵,選擇「連線」就可以將工作階段切換過去了

第二種:使用 mstsc 指令外加 /console 參數 ( 這一招應該是最簡單的 )

  1. 開啟「執行」對話框 ( 可以按快速鍵 Win + R ),並輸入 mstsc /console

    開啟「執行」對話框 ( 可以按快速鍵 Win + R ),並輸入 mstsc /console

  2. 輸入遠端電腦的 IP 連線過去後就是「主控台(Console)」的工作階段畫面了!

不過使用 Vista 的使用者要特別注意,當 Vista 升級更新到 Service Pack 1 (SP1) 之後將不在提供 /console 參數了,而是改成 /admin 參數:

%systemroot%\system32\mstsc.exe /admin


source: The Will Will Web

2010年4月29日 星期四

Thoughts on Flash by Steve Jobs

Apple has a long relationship with Adobe. In fact, we met Adobe’s founders when they were in their proverbial garage. Apple was their first big customer, adopting their Postscript language for our new Laserwriter printer. Apple invested in Adobe and owned around 20% of the company for many years. The two companies worked closely together to pioneer desktop publishing and there were many good times. Since that golden era, the companies have grown apart. Apple went through its near death experience, and Adobe was drawn to the corporate market with their Acrobat products. Today the two companies still work together to serve their joint creative customers – Mac users buy around half of Adobe’s Creative Suite products – but beyond that there are few joint interests.

I wanted to jot down some of our thoughts on Adobe’s Flash products so that customers and critics may better understand why we do not allow Flash on iPhones, iPods and iPads. Adobe has characterized our decision as being primarily business driven – they say we want to protect our App Store – but in reality it is based on technology issues. Adobe claims that we are a closed system, and that Flash is open, but in fact the opposite is true. Let me explain.

First, there’s “Open”.

Adobe’s Flash products are 100% proprietary. They are only available from Adobe, and Adobe has sole authority as to their future enhancement, pricing, etc. While Adobe’s Flash products are widely available, this does not mean they are open, since they are controlled entirely by Adobe and available only from Adobe. By almost any definition, Flash is a closed system.

Apple has many proprietary products too. Though the operating system for the iPhone, iPod and iPad is proprietary, we strongly believe that all standards pertaining to the web should be open. Rather than use Flash, Apple has adopted HTML5, CSS and JavaScript – all open standards. Apple’s mobile devices all ship with high performance, low power implementations of these open standards. HTML5, the new web standard that has been adopted by Apple, Google and many others, lets web developers create advanced graphics, typography, animations and transitions without relying on third party browser plug-ins (like Flash). HTML5 is completely open and controlled by a standards committee, of which Apple is a member.

Apple even creates open standards for the web. For example, Apple began with a small open source project and created WebKit, a complete open-source HTML5 rendering engine that is the heart of the Safari web browser used in all our products. WebKit has been widely adopted. Google uses it for Android’s browser, Palm uses it, Nokia uses it, and RIM (Blackberry) has announced they will use it too. Almost every smartphone web browser other than Microsoft’s uses WebKit. By making its WebKit technology open, Apple has set the standard for mobile web browsers.

Second, there’s the “full web”.

Adobe has repeatedly said that Apple mobile devices cannot access “the full web” because 75% of video on the web is in Flash. What they don’t say is that almost all this video is also available in a more modern format, H.264, and viewable on iPhones, iPods and iPads. YouTube, with an estimated 40% of the web’s video, shines in an app bundled on all Apple mobile devices, with the iPad offering perhaps the best YouTube discovery and viewing experience ever. Add to this video from Vimeo, Netflix, Facebook, ABC, CBS, CNN, MSNBC, Fox News, ESPN, NPR, Time, The New York Times, The Wall Street Journal, Sports Illustrated, People, National Geographic, and many, many others. iPhone, iPod and iPad users aren’t missing much video.

Another Adobe claim is that Apple devices cannot play Flash games. This is true. Fortunately, there are over 50,000 games and entertainment titles on the App Store, and many of them are free. There are more games and entertainment titles available for iPhone, iPod and iPad than for any other platform in the world.

Third, there’s reliability, security and performance.

Symantec recently highlighted Flash for having one of the worst security records in 2009. We also know first hand that Flash is the number one reason Macs crash. We have been working with Adobe to fix these problems, but they have persisted for several years now. We don’t want to reduce the reliability and security of our iPhones, iPods and iPads by adding Flash.

In addition, Flash has not performed well on mobile devices. We have routinely asked Adobe to show us Flash performing well on a mobile device, any mobile device, for a few years now. We have never seen it. Adobe publicly said that Flash would ship on a smartphone in early 2009, then the second half of 2009, then the first half of 2010, and now they say the second half of 2010. We think it will eventually ship, but we’re glad we didn’t hold our breath. Who knows how it will perform?

Fourth, there’s battery life.

To achieve long battery life when playing video, mobile devices must decode the video in hardware; decoding it in software uses too much power. Many of the chips used in modern mobile devices contain a decoder called H.264 – an industry standard that is used in every Blu-ray DVD player and has been adopted by Apple, Google (YouTube), Vimeo, Netflix and many other companies.

Although Flash has recently added support for H.264, the video on almost all Flash websites currently requires an older generation decoder that is not implemented in mobile chips and must be run in software. The difference is striking: on an iPhone, for example, H.264 videos play for up to 10 hours, while videos decoded in software play for less than 5 hours before the battery is fully drained.

When websites re-encode their videos using H.264, they can offer them without using Flash at all. They play perfectly in browsers like Apple’s Safari and Google’s Chrome without any plugins whatsoever, and look great on iPhones, iPods and iPads.

Fifth, there’s Touch.

Flash was designed for PCs using mice, not for touch screens using fingers. For example, many Flash websites rely on “rollovers”, which pop up menus or other elements when the mouse arrow hovers over a specific spot. Apple’s revolutionary multi-touch interface doesn’t use a mouse, and there is no concept of a rollover. Most Flash websites will need to be rewritten to support touch-based devices. If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?

Even if iPhones, iPods and iPads ran Flash, it would not solve the problem that most Flash websites need to be rewritten to support touch-based devices.

Sixth, the most important reason.

Besides the fact that Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow Flash on iPhones, iPods and iPads. We have discussed the downsides of using Flash to play video and interactive content from websites, but Adobe also wants developers to adopt Flash to create apps that run on our mobile devices.

We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform. If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.

This becomes even worse if the third party is supplying a cross platform development tool. The third party may not adopt enhancements from one platform unless they are available on all of their supported platforms. Hence developers only have access to the lowest common denominator set of features. Again, we cannot accept an outcome where developers are blocked from using our innovations and enhancements because they are not available on our competitor’s platforms.

Flash is a cross platform development tool. It is not Adobe’s goal to help developers write the best iPhone, iPod and iPad apps. It is their goal to help developers write cross platform apps. And Adobe has been painfully slow to adopt enhancements to Apple’s platforms. For example, although Mac OS X has been shipping for almost 10 years now, Adobe just adopted it fully (Cocoa) two weeks ago when they shipped CS5. Adobe was the last major third party developer to fully adopt Mac OS X.

Our motivation is simple – we want to provide the most advanced and innovative platform to our developers, and we want them to stand directly on the shoulders of this platform and create the best apps the world has ever seen. We want to continually enhance the platform so developers can create even more amazing, powerful, fun and useful applications. Everyone wins – we sell more devices because we have the best apps, developers reach a wider and wider audience and customer base, and users are continually delighted by the best and broadest selection of apps on any platform.

Conclusions.

Flash was created during the PC era – for PCs and mice. Flash is a successful business for Adobe, and we can understand why they want to push it beyond PCs. But the mobile era is about low power devices, touch interfaces and open web standards – all areas where Flash falls short.

The avalanche of media outlets offering their content for Apple’s mobile devices demonstrates that Flash is no longer necessary to watch video or consume any kind of web content. And the 200,000 apps on Apple’s App Store proves that Flash isn’t necessary for tens of thousands of developers to create graphically rich applications, including games.

New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too). Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.

Steve Jobs
April, 2010