2010/11/22

數碼電視隨身播的各種方案

香港地面數碼電視廣播自 2007年底開通以來,無綫和亞視先後推出了多個新設的數碼頻道;隨著各發射站落成啟用、供電視和電腦用的接收和解碼器的價格下調、以及內置接收和解碼器的新式電視機陸續推出,不足兩年的時間,數碼電視已滲透到本港三分之一家庭中
現時不少賣幾百元的內地牌子手機,都內置了電視接收功能,不過它們大都只對應舊有的模擬訊號接收,畫面質素欠穩定,室內環境更無法播放。如果我們要到處收看實時的數碼電視,究竟可有甚麼方案可供選擇呢?它們孰優孰劣?本文會為大家探討一下。

方案一:直接使用數碼電視接收棒
我們不難在電腦商場找到各式各樣的數碼電視接收棒,部份更賣到二百元以下。把它插到筆記簿或「網本」電腦裡使用,再配合隨棒附送的收看軟件或更多功能的收費軟件 DVBViewer Pro,我們便能在有數碼訊號覆蓋的地方,透過室外天線或大廈室內天線收看到數碼電視頻道。


↑ Mygica 電視接收棒

優點:
  • 價格相宜
  • 隨插即用,毋須長開電腦,使用方便容易

缺點:
  • 接收地點只限於數碼電視訊號覆蓋範圍的戶外
  • 室內接收需要接駁大廈天線
  • 僅限電腦, 而且收看高清台時需配搭具高效能處理器或顯示卡的電腦使用
方案二:使用網絡串流播放專用裝置
市面上有一些專門用來把視訊串流到手機或其他電腦的裝置,如 Slingbox 的Slingbox Solo 和 Slingbox Pro HD,以及 Monsoon 的 Hava Premium /Wireless / Titanium HD 等,都能把數碼電視訊號實時壓縮,並透過網絡串流到手機或其他電腦播放。只要把裝置以色差或 HDMI線連接「機頂盒」或數碼電視機,再把裝置以 LAN線接駁到家裡的路由器(或透過 HomePlug 接駁路由器; Hava Wireless / Titanium HD 可透過 Wifi 連接路由器),設定好軟件和帳戶就可以。


↑ Slingbox Solo / Pro HD

↑ Hava Platinum HD

↑ 利用 N810 透過 Hava Platinum HD 觀看 Now 電視實況 (鳴謝:stdy 網友)

↑ 利用 N810 接駁 Hava Platinum HD 時可啟動數碼電視「機頂盒」的節目表(鳴謝:stdy 網友)

↑ 也能遙控 Now 的節目表
網絡上有人示範在不同的手機上接駁 Hava 收看家中的電視節目

優點:
  • 無地域限制,能上網的地方都能收看
  • 使用方便容易,手機、流動上網裝置和電腦均可使用
  • 可遙控家裡接駁著該裝置的接收機或錄影機調校或播放錄影等,並可收看收費電視台的節目
缺點:
  • 裝置價格相對高昂
  • 裝置須接駁「機頂盒」或電視,並須長期開動裝置及接駁網絡
  • 流動應用需要繳付流動數據費用及受網絡公平政策所約束
  • 播放流暢度易受網絡頻寬的穩定性影響
  • 僅支援部份手機、流動上網裝置和電腦(在這方面,Hava 支援的手機比Slingbox 多
  • 部份播放軟件(如 Slingbox 的 Sling Player 等)需收取費用
  • 由於此方案是遙控家中裝置,不在家使用轉台時,會影響在家的電視使用者。
方案三:透過可收看數碼電視的電腦作實時壓縮並串流播放

目前支援本地數碼電視串流的軟件不多,而比較有名氣的 Orb雖然可透過網頁介面操控,簡單易用;但它卻僅支援香港某幾個牌子的電視接收棒, 而且礙於編碼制式的兼容問題,目前尚未能支援香港所有數碼電視頻道。


↑ 四部裝置同時串流收看數碼電視

近來就研究另一個比較進階的選擇--VLC Media Player。 VLC是免費軟件,集影片播放、實時壓縮、格式轉換及網絡串流等功能於一身,功能強大。有了它,我們可以把數碼電視接收棒收到的標清頻道訊號,實時壓縮成 你的手機或流動上網裝置支援的格式,然後同步透過指定的網絡埠串流出去。VLC同時提供圖像和命令使用界面,不過前者設定比較複雜累贅,可用性反而不及使 用命令界面來得簡單直接。

在裝設有數碼電視接收棒/接收卡的電腦上…
  • 先把 VLC Media Player 1.0.x 下載並安裝好。
  • 安裝好數碼電視接收棒/接收卡的驅動程式,並把它插到電腦裡。
  • 以下我以慈雲山發射站的訊號為基礎,舉出一些常用命令界面的例子(如果你接收其他發射站的訊號,可以參考這各站頻道頻率表)。
    • 開啟視窗的「命令提示字元」(Command Prompt):按 [Windows]-R,然後鍵入 cmd ,再按「確定」
    • 在黑色視窗裡鍵入下面的字令:

      "%PROGRAMFILES%\VideoLANVLC\vlc" dvb-t:// :dvb-frequency=586000000 :dvb-bandwidth=8 :program=83 :sout=#transcode{vcodec=h264,vb=500,scale=0.5}:duplicate{dst=std{access=http,mux=ts,dst=0.0.0.0:3335 }}
讓我來解釋一下這道長命令的各個部份:
  • "%PROGRAMFILES%\VideoLANVLC\vlc"
    會啟動 VLC Media Player 的程式,並接受隨後的設定參數
  • dvb-t://
    開啟數碼電視接收棒/接收卡的硬件設備
  • :dvb-frequency=586000000
    接收數碼頻道 586000KHz。這是慈雲山發射站的無?新數碼頻道的廣播頻率;至於其他頻道和發射站的廣播頻率,可參考這各站頻道頻率表
  • :dvb-bandwidth=8
    設定廣播數據頻率最高為 8 MHz。
  • :program=83
    接收數碼頻道的 83 台節目。83是無?互動新聞台的選台號碼。以慈雲山發射站為例,其他頻道頻率以及選台號碼配搭,請參考這裡
  • :sout=#transcode{...}
    把輸出實時轉換壓縮(transcode)
    • vcodec=h264
      指定輸出影像格式為 H.264 格式。為免令畫質下降及給處理器帶來額外負擔,請依照各數碼頻道的影像格式來指定:收看各新數碼頻道,請指定影像格式 為 vcodec=h264;收看翡翠台、明珠台、本港台和國際台,請指定為 vcodec=mp2v,也就是 MPEG-2 格式
    • vb=500
      動態頻寬為 500Kbps。這可依你實際可用的網絡頻寬及收看設備所能支援的影響格式進行調校,數值越高,畫質越好,但也會耗用更多網絡頻寬以及收看設備的處理器資源。
    • scale=0.5
      把輸出畫面的寬和闊的解像度指定為原有寬和闊解像度的各一半。標清頻道是以 720x576 解像度廣播,指定 scale=0.5 即表示輸出畫面會有 720 (x0.5) x 576 (x0.5) = 360 x 288 的解像度。這可依你實際可用的網絡頻寬及收看設備所能支援的影響格式進行調校,數值越高,畫質越好,但也會耗用更多網絡頻寬以及收看設備的處理 器資源。
    • duplicate{dst=std{access=http,mux=ts,dst=0.0.0.0:3335}
      把剛才實時轉換壓縮後的輸出,以 HTTP 協定網絡串流的方式,透過 TS 格式封裝(encapsulation),廣播到 0.0.0.0:3335 網絡位置。0.0.0.0 為所有的 IP 地址,3335 為預設的連接埠號碼。你可依據你實際的網絡設定指定 dst= 後的 IP 地址和連接埠號碼,前提是你的網絡路由器和防火牆設定需容許該連接埠的雙向溝通。
這樣長長的命令設定,用起來的確比較麻煩。 如果你不想煩, 你可以考慮購買備受好評的數碼電視收看程式 DVBViewer Pro,然後在他們的會員網站下載一個叫 DVBViewer Recording Service 的測試版軟件,再安裝 VLC Media Player 的 0.8.6i 版本(比此版本更新的都不可以),稍加設定, 我們就可以透過網頁界面查到節目表(僅限英文,中文會亂碼)、 設定壓縮和串流的參數、轉台、或預約時間錄影。詳看以下教學片段:http://www.youtube.com/watch?v=reUz-qLI2ss&feature=player_embedded
http://www.youtube.com/watch?v=uxE2ymZ_FJk&feature=player_embedded

不過,這個 DVBViewer Recording Service 始終仍是測試版軟件,每每轉台後都未能找到電視訊號, 在街上的我也只能透過遠端桌面遙控家中電腦,把 DVBViewer Recording Service 的服務停掉然後再啟動,才能成功轉台。 而且由於 VLC Media Player 的編碼器不支援高解像度和高流率的 H.264 TS 格式,所以無論我們純粹使用 VLC 或配搭 DVBViewer Recording Service 使用,兩者都不能實時壓縮及串流高清翡翠台和亞洲高清台。 如果我們硬要嘗試,就只會出現錯誤訊息。

雖然問題和限制多多, 但這方案卻仍然是建構成本最低的無地域限制方案, 而且能夠針對你的手機/ 流動上網裝置以及網絡頻寬等優化壓縮和串流參數,有興趣/ 有需要到處看電視的進階玩家不妨考慮試試。

在手機/流動上網裝置/筆記簿電腦/「網本電腦」上…

我們只要啟動支援以 HTTP 串流播放影片的軟件,如 Windows平台上的 VLC Media Player 或 Linux / Unix 平台上的 mplayer等,輸入家裡電腦的 IP地址和用作電視訊號廣播的連接埠號碼(如果家裡使用非固定 IP地址的家居寬頻服務,可考慮使用動態 DNS服務),我們就能收看得到串流影像。詳情請看下面的影片示範:
http://www.youtube.com/watch?v=wBkP-U6-oEg&feature=player_embedded

在 Windows 平台上以 VLC Media Player 播放串流電視的步驟如下:

  • 啟動 VLC Media Player:開始(Start)→所有程式(AllPrograms)→ VideoLANVLC media player
  • 選擇 檔案(File)→ 開啟網絡串流(Open NetworkStream)
  • 選擇 HTTP/HTTPS/FTP/MMS,然後輸入你家電腦的 IP 地址(或動態 DNS 服務的網域名稱)及連接埠號碼,再按 播放 (Play) 即可:

在 Linux 平台上以 mplayer 播放串流電視的步驟如下。
先確定 mplayer 已被安裝,然後在你的終端機(Terminal)裡,輸入以下命令:
mplayer -x 800 -y 480 -framedrop -lavdopts skiploopfilter=all-cache 8192 http://192.168.1.123:3335

讓我來解釋一下這道命令的各個部份:
  • mplayer
    啟動 mplayer,並接受隨後的設定參數。
  • -x 800 -y 480
    把串流的源畫面解像度(即是上面套用 scale=0.5 後的360x288)放大至 800x480。這裡我設定 800x480 是因為我的諾基亞 N810的螢幕是 800x480 解像度,這樣設定便可以作全螢幕觀賞;你可以指定你的收看設備解像度以得到同樣效果。
  • -framedrop
    在網絡頻寬不足、或播放設備的處理器或記憶體不足以應付時,可藉此參數犧牲部份畫面格數來維持相對正常的播放,而不致斷線。
  • -lavdopts skiploopfilter=all
    在網絡頻寬不足、或播放設備的處理器或記憶體不足以應付時,可藉此參數犧牲部份畫質來維持相對流暢的播放。
  • -cache 8192
    設定緩衝記憶體至8192KB。高緩衝值可在一定程度上確保影片播放的流暢度,然而這亦會令電視節目播放的即時性降低,令節目播放時間與實際接收時間可能會有幾秒至十幾秒的差距。你可按著網絡頻寬的穩定性,將此緩衝值提高或降低。
  • http://192.168.1.123:3335
    這是你先前在家中電腦設定的網絡地址和連接埠號碼。192.168.1.123:3335 只是例子,你應把它替換為你家中電腦的真正 IP地址/動態 IP 網域名稱,以及真實的連接埠號碼(如不是 3335的話)。
以下是我以諾基亞 N810 配合 Zalip HSPA 流動路由器和數碼通的7.2Mbps 流動寬頻服務,用兩部裝置同時欣賞同一串流節目的實況:http://www.youtube.com/watch?v=tRN54aCU_b8&feature=player_embedded

優點:
  • 無地域限制,能上網的地方都能收看
  • 支援的手機、流動上網裝置和電腦比較多
  • 可因應播放裝置支援的影片格式進行針對式的串流
  • 如果頻寬足夠,可支援多於一部裝置實時收看同一頻道
  • 建構成本相對較低

缺點:
  • 實時壓縮及串流軟件設定較繁複,並須顧及很多軟硬件的兼容性問題
  • 需長開具備數碼電視接收棒或接收卡、處理器規格相對強勁的電腦,長期連接上網
  • 實時壓縮及串流軟件未能充份啟用顯示卡的硬體壓縮技術,必須耗用處理器的資源
  • 部份軟件(DVBViewer Pro)需收費
  • 播放軟件使用較不方便,轉台過程複雜;而且一般非固定 IP地址的家居寬頻用家,配合動態 IP地址服務才能方便使用,這一切對用家本身技術背景要求較高
  • 流動應用需要繳付流動數據費用及受網絡公平政策所約束
  • 播放流暢度易受網絡頻寬的穩定性影響
  • 不支援高清翡翠台及亞洲高清台的實時壓縮
  • 不支援字幕顯示及聲道選擇等功能
  • 由於此方案是遙控家中電腦,不在家使用時,在家的電腦使用者也只能透過網絡串流方式才能收看電視
方案四:透過可收看數碼電視的電腦作全功能的串流播放
此方案與方案三不同之處,就是廣播一方把電視訊號廣播出去時,並不會就訊號內容實時壓縮,而是把數碼電視訊號,包括節目表、字幕、聲道選擇等功能完完整整地廣播出去。廣播和收看雙方可各自安裝 DVBViewer 軟件,透過 HKEPC 數碼廣播論壇網友所教授的設定,收看一方就能用 DVBViewer 軟件收看到數碼電視頻道,甚至做到轉台、看節目表、選擇字幕及聲道等功能。


↑ DVBViewer Pro 內置的全功能串流功能

優點:
  • 無地域限制,能上網的地方都能收看
  • 如果頻寬足夠,可支援播放高清頻道、使用數碼廣播的節目表、字幕、聲道選擇等功能,並能透過 DVBViewer 軟件輕易轉台
  • 與方案三相比,廣播一方耗用的處理器資源相對較少
缺點:
  • 需長開具備數碼電視接收棒或接收卡、處理器規格相對強勁的電腦,長期連接上網
  • 對網絡頻寬要求極高 ,串流高清頻道的上下載速度起碼要各有 13-15 Mbps,串流標清頻道上下載速度也各要有 5-6 Mbps,較適合內聯網使用
  • 廣播和收看雙方都得耗用一定程度的處理器資源;若收看高清頻道,收看一方的電腦同樣需要規格較高的處理器;手機等小型流動裝置不能用此方法
  • DVBViewer 軟件需按機收費
  • 一般非固定 IP 地址的家居寬頻用家,配合動態 IP 地址服務才能方便使用,這一切對用家本身技術背景要求較高
  • 流動應用需要繳付流動數據費用及受網絡公平政策所約束
  • 播放流暢度易受網絡頻寬的穩定性影響
  • 由於此方案是遙控家中電腦,不在家使用時,在家的電腦使用者也只能透過網絡串流方式才能收看電視
方案五:上電視台的網站收看實時節目
無綫電視的 MyTV 網站目前提供免費的互動新聞台及創富坊節目的網絡直播服務,只要我們用電腦上它們的網站就能看到。


↑ MyTV 上的即時 互動新聞台

優點:
  • 毋須安裝任何硬件,也毋須特別設定,只要瀏覽器裝有 Adobe Flash Player 10 就能看到
  • 頻寬較有保障,畫面清晰穩定
缺點:
  • 目前為止 MyTV 及亞視網站未有提供其他數碼頻道網絡直播服務
  • 僅能在香港地區收看
  • 即使配備上網和 Adobe Flash 的手機都不能收看,因為 MyTV 是用桌面版的 Adobe Flash 10,支援 H.264 等影片的串流播放,對硬件要求比過往版本都要高,目前的手機規格以及 Flash 版本都不足以應付
方案六:安裝點對點串流電視分享軟件
安裝內地網民熱愛的 PPLive 和 PPStream 等網絡電視軟件,我們就能透過網樂看到包括內地和香港數十個電視台的電視節目。


↑ PPLive 網站

優點:

  • 無地域限制,能上網的地方都能收看
  • 軟件免費,頻道選擇奇多
缺點:
  • 須安裝有關軟件才能收看,然這些軟件很多時都帶有廣告和其他附帶的軟件
  • 未能提供所有本地數碼電視頻道的節目
  • 內地網絡頻寬較少,而基於點對點分享軟件的特性,需要多人同時收看,節目才有機會順暢
  • 部份頻道的節目並非源自實時廣播
  • 僅能在電腦上收看,手機免問
總結 我們探討過目前流動地收看數碼電視的各種方案,各有優劣。首兩個方案以及第五和第六個方案都適合非技術型人士,而且使用 上比較方便和可靠,惟第二個方案需要較高的建構成本。第三個方案雖然對收看設備的要求較有彈性,然而繁瑣的設定和使用方法局限了它的可用性,故此它僅限給 熟悉電腦技術的人士作玩票性質。下表綜合了各方案的優點與缺點讓大家參考:


↑ 按圖可放大

展望未來在流動電視範疇的技術發展,我個人預計將出現有以下數個方向:
  • 各電視台的網站或許會提供更多的網上直播節目,甚至推出「手機親和」的手機直播版本
  • 現有的電視串流軟件如 Orb 等,加強對香港數碼電視傳送制式 DMB T/H 的接收裝置以及 H.264 TS 和 MPEG-2 TS 影片制式的支援
  • 隨 著顯示卡通用化 (General Purpose GPU, GPGPU) 的技術如 NVIDIA 的 CUDA、AMD FireStream、OpenCL 等普及,支援顯示卡硬體壓縮的實時轉換壓縮(transcoding)和串流技術的軟件(希望 VLC 未來 的版本可以做到?)或會面世,屆時電腦作電視串流時不需再耗用大量處理器資訊,實時轉換壓縮兩個高清頻道便會變得可行
  • 手機晶片開發商在未來一兩年可能開發出能接收 DMB T/H 訊號和實時 H.264 TS 和 MPEG-2 TS 解壓/再壓縮數碼電視影像的晶片,並在香港和內地推出能收看數碼電視的高階手機
  • 香港政府已就流動數碼電視廣播的制式和發牌條件展開諮詢工作,電盈和摩托羅拉等亦已就未來可行的制式開始進行測試。當一切落實後,未來五至十年的手機或許會配備流動數碼電視制式的晶片,可隨時收看流動數碼電視節目。
看來滿街的人戴著耳機看電視的日子,距離現在已不遠了!

沒有留言:

張貼留言