DIAL 小註解

這邊的  DIAL 是指 Netflix 和 Youtube 最近在推的 DIscover And Launch 架構. 這個技術有什麼稀奇呢? 其實它是另一種把手機/平板的螢幕投影到電視大螢幕上的方法, 特別是那些支援 DIAL 的 APP 在兩個螢幕上都存在時. 雖然說我們已經有了 Wifi Display / Miracast, WIDI 可以投影任何手機或電腦畫面到電視上, 不過它們只能視為螢幕的切換,沒有動用到 TV 上的 APP.這點是主要的不同.

使用 Miracast 也不算是容易的事. 比方說, 原本手機和電視都是各自連到家中的無線 AP 上網, 但是為了要做 Miracast, 他們得要切到  的 1, 6, 11 CH 三者其中之一去進行連線.不然他們沒辦法互相發現對方. [1] 若是無線 AP 本來不是設在 1/6/11 CH, 那麼就得有從 AP 暫時斷線再連線的動作.

 

根據 Netflix 所做的比較, DIAL 可以提供簡單的連線方式 (見下圖)[2] – 假如我們先忘記有無線 AP.此處的假設是:第一個屏 (電視、機頂盒、藍光播放機的大屏) 已經有執行 APP 的能力, 而不只是一台 "非智慧型電視". 如果電視原本沒有 "智慧", 至少得接上一個轉接盒, 電視端才能具備連網、又能執行 APP 程式的條件.

那麼, 為何只要在第二個屏 (小屏) 上執行 Youtube、Netflix,就可以跳過電視上的設定, 直接播出畫面呢? 這裡面共有 3 個不同的角色 [3]. 大屏的平台提供者 (1st screen CE device deveoper), 它要能夠用正確的參數把大屏的 APP 程式跑起來,並且確保小屏的 APP 的 payload 可以送給大屏的 APP.而小屏的 APP 負責提供 payload,大屏的 APP 負責收 payload. 另外, 無論是大屏或小屏的 APP 都要先註冊 Application Name, 這樣才能確保不會把 Youtube 的內容送給 Netflix 的 APP 程式播.

根據網站上的評論 [4], DIAL 的規格是為了對抗 Apple Airplay 跨平台的優勢. 若是我 Android 手機上有個 Youtube, Android 電視端也有一個 Youtube APP, 兩者卻不能夠連動, 使用情境就不如 Apple 方便了. 然而 DIAL 只解決了連線, Miracast 只解決了 mirror; 要讓使用者完全從 "瞪小屏" 轉到大小通吃 – 例如: 讓大屏可以顯示小屏應有的操作 (如增加手機聯絡人), 而小屏本身又變身為遙控器,不顯示聯絡人編輯畫面, 這個還有賴於 "非蘋陣營" 軟體開發人員的努力.

[ref]

1. WI-FI Alliance Member Symposium 

2. DIAL

3. Details for Developers

4. The story behind DIAL: How Netflix and YouTube want to take on AirPlay

再探 Youtube 技術

現在已經有 Panasonic 的電視可以支援 Youtube 了! 雖然美國朋友說比較紅的已經變成 Hulu, 不過美國境外的人暫時還看不到 Hulu 網站, 所以我們還是先搞懂 Youtube.

Youtube 的網站有幾個地方值得探討:

Q1. Video/Audio 壓縮格式

Q2. 可否下載?

Q3. 未來發展

A1. 關於第一個問題:

Youtube 支援的格式為:

Platform Container Video Audio
PC SWF/FLV FLV1=Sorenson MP3
覆蓋式廣告(480×70)
影片內廣告(320×250)
SWF (Shockwave Flash) + FLA    
手機  3GP  H263 AMR 

手機 Youtube 資料來源: http://www.thinknext.net/archives/tag/youtube#

 

A2. Youtube 使用 streaming 串流技術, 基本上不希望大家下載.

然而, 還是有網站和工具協助大家下載這些影片:

http://blog.roodo.com/jojos/archives/3434155.html

下載之後, 還有很多轉檔工具.

http://download.longtermly.com/category/internet-tools/youtube-tools/

如果 user 端可以支援 streaming 的話 (也就是採用 RTP、RTSP 網路協議), 當然可以藉著 Youtube 的網址, 播出正確的內容. 當然, 若實際上不支援 SWF, 就要 hack 到檔案正確的位置, 透過 HTTP 網路協議, 將整個檔案 (FLV) 拿來解.

Youtube 為了防範大家找到 FLV 真正的位置, 會在 streaming URL 與 file storage URL 之間改變對應關係. 也就是說, 如果大家乖乖 streaming, 那個 URL 是不會變的. 但是如果想要 download 的話, 就要找出兩者對應的規則.

通常這個規則也很簡單. 引用啾啾的部落格的文字:

舉例來說如果我想下載此影片:
原網址:
http://www.youtube.com/watch?v=IncztAzMsck

將「watch?v=」換成「v/」後貼到瀏覽器上
http://www.youtube.com/v/IncztAzMsck
網址將會變成
http://www.youtube.com/p.swf?video_id=IncztAzMsck&eurl=&iurl=http…

再把「p.swf?」改成「get_video.php?」變成
http://www.youtube.com/get_video.php?video_id=IncztAzMsck&eurl=&i…

之後就可以直接下載影片了,記得要加上 .flv 副檔名,這就是直接下載的方法.

A3. 關於第三個問題, 因為 SWF 已經是 Adobe 的資產. 在 Adobe 的藍圖之中, 未來會用 H.264 和 AAC 來當作 Adobe SWF/FLV decoder 的音視頻格式.

也有一種說法是, Youtube 其實已經悄悄地在提供 SWF 9 的輸出. 使用 popcorn hour 這台機器連上 Youtube 就會看到畫質較佳的 streaming quality.這一點未經證實.

如果連結到其他 Youtube like 的網站, 它的 video 可能是 VP6. 主要是 flash player 的版本不同. 詳見下表:

version container video 格式
6 SWF/FLV TrueMotion VP6 (H.263-like)(audio = NellyMoser)
7 SWF/FLV Screen video bitstream
format = lossless
 8 SWF/FLV TrueMotion VP6 (H.263-like)
9 SWF/FLV H.264
10 SWF/FLV 多了 3D effect, audio mixing 等功能