• 沒有找到結果。

第二章蒐集了關於網路影音服務的相關資料,如網路視訊會議、串流媒體的通訊協定和 視訊資料產生的參數控制等。第三章介紹本論文設計之本平台中與影音服務相關的重點 技術,如影音伺服器和影音服務在本平台的地位和功能、客戶端與平台個伺服器端的連 線架構、客戶端程式的互動功能、改善影音串流和同步問題的核心演算法等。第四章測 試本平台的伺服器負載和與第三章內容相關的驗證性測試。第五章結論和未來能進一步 改進的方向。

3

第2章 相關研究 2.1 影音串流

2.1.1 串流媒體(Streaming media)

串流媒體(Streaming media)[1],簡稱串流(Streaming)是指將一連串的媒體 資料壓縮後,經過網路分段傳送資料,在網路上即時傳輸影音以供觀賞的一種技術與過 程,此技術使得資料封包得以像流水一樣發送,讓客戶端與伺服器保持連線

(connection);如果不使用此技術,就必須在使用前下載媒體檔案,這種方式又稱為 漸進式(Progress)。串流傳輸可傳送現場影音或預存於伺服器上的影片,當觀看者在收 看這些影音檔時,影音資料在送達觀賞者的電腦後立即由特定播放軟體播放(如 Windows Media Player、Real Player、Adobe Media Player 或 QuickTime Player)。

2.1.2 串流媒體伺服器(Streaming Media Server)

本研究用的影音伺服器是一種串流媒體伺服器(Streaming Media Server),為串 流媒體技術應用的核心系統,向使用者提供視訊服務的關鍵平台。其主要功能是對串流 媒體進行收集、緩存、調度和傳輸播放,串流媒體應用系統的主要性能表現都取決於媒 體伺服器的能力和程式結構。性能好的媒體伺服器能夠提供更多的客戶端連接數、更高 的資料速率和更快的客戶端連接時間。目前市面上較知名的串流媒體伺服器有 Adobe Media Server、Red5 Media Server、Wowza Media Server 等。

2.1.3 RTMP 通訊協定(Real-Time Messaging Protocol)

RTMP(Real-Time Messaging Protocol)[2]協定是做為客戶端與伺服器端的即時 傳輸協定,是一種專門為高效率傳輸視訊、音訊和訊息資料且基於 TCP/IP 的通訊協定。

以 RTMP 傳遞的串流可以包含視訊流(Video)、音訊流(Audio)、訊息資料流(Message

4

Data),RTMP 將這些資料分開管理,可視為有三條資料流在一個串流中流動。

綜合 2.1 小節,串流媒體為本論文研究客戶端與影音伺服器間傳輸的主要媒介,本 平台的影音伺服器即是一種串流媒體伺服器,主要使用的通訊協定為 RTMP。

2.2 視訊會議系統

視訊會議系統是一種在位於兩個或多個地點的多個使用者之間提供語音和運動彩 色畫面的雙向即時傳送的視聽會話。視訊會議著重在確保使用者間的畫面和語音清晰順 暢,會議進行時大多有一位主持人主持會議進行,由主持人決定誰可發言、分享檔案或 視訊畫面等。大型視訊會議系統在軍事、政府、商貿、醫療等部門有廣泛的應用。視訊 會議依建置方式分成硬體、軟體、網路視訊會議[3]。

現行多數的視訊會議軟體是 C/S 架構,即桌面用戶端(Client)軟體與伺服器(Server 端軟體。正常執行前,需要先配置網路和伺服器,下載並安裝客戶端程式;另外一種軟 體是 Browser/Server(B/S)1架構,由 C/S 發展而來,好處是使用者可直接在網頁瀏覽 器上進行視訊會議,方便好上手是最大的優點,但能力也會受限於 Browser。

視訊會議著重在確保使用者間的畫面和語音清晰順暢,會議進行時大多有一位主持 人主持會議進行,由主持人決定誰可發言、分享檔案或視訊畫面等。

以下是幾個新型態的線上視訊通話系統:

2.2.1 Adobe connect

Adoebe Connect 為一個完全基於 Adobe Flash 開發的視訊傳送、桌面共享、檔案共

1在本雲端服務視訊互助平台中,Browser/Server 架構的 Browser 相當於端、Server 相當於雲,但廣義來說 Browser/Server 架構也是一種 Client/Server 架構,只是為了強調本平台使用的客戶端程式是應用在 Browser 上而特別提出來。

5

享的網路視訊會議系統。僅需在瀏覽器安裝 Adobe Flash Player2即可直接在瀏覽器上 進行視訊會議,除了傳統視訊會議故有的白板、檔案、桌面共享功能外,應用了 Adobe 發展純熟的 RTMP 通訊協定、串流媒體伺服器和串流媒體技術,成為一個 B/S 架構中能 媲美 C/S 架構的視訊會議系統。

2.2.2 Google+ Hangouts

由 Google 開發的社群網站「Google+」,其中包含一個線上多人影音通話系統

「Hangouts」,不具備白板、檔案、桌面共享等功能,透過 Google+的社群功能,可在自 己的交友圈找人加入影音通話中。Google Hangouts 與一般視訊會議取向不同,其重點 不是會議,而是在提供一個便利的網路互動平台,便利的多人語音和視訊,故一直致力 在免安裝上努力以減少使用者的負擔。Google 在推廣開放原始碼聊天平台 WebRTC3加入 瀏覽器中,目前已經有 Mozilla 和 Opera 支援 WebRTC,如此一來使用這兩種瀏覽器將不 需要額外安裝外掛程式。

綜合 2.2 小節,本平台的視訊連線系統核心概念並非是視訊會議,而是 Adobe connect 和 Hangouts 概念的整合。有使用現在網路主流的串流媒體技術作為主要傳輸媒 介,Google Hangouts 的社群與視訊通話相輔相成,結合文字交流的社群討論區和可以 即時互動的視訊連線,進一步達到互助合作的目的。另外本平台將會使用 Adobe Flash

2 Adobe Flash Player 是一種廣泛使用的、專有的多媒體程式播放器。它最初由 Macromedia 編寫,在 Macromedia 被 Adobe 收購後由 Adobe 繼續開發並分發。Flash Player 使用的 SWF 檔案可能由 Adobe Flash、

Adobe Flex 或者其他軟體或第三方工具建立。2011 年已廣泛的被建立在各種瀏覽器中,故通常使用者不需 要特別去安裝,但是需要使用更新檢查程式定期更新版本。

3 WebRTC 是 Google 推出的開放原始碼(BSD)語音視訊聊天軟體。透過簡單的 JavaScript API 使 Chrome 擁有即時通訊能力(RTC),並與 Mozilla 和 Opera 等瀏覽器廠商合作,推動 WebRTC 能成為互動網路視訊和 點對點通信的標準,並在此基礎之上制定網路通訊協定。

6

作為開發平台,其主要原因就是因為 Adobe Flash Player 已廣泛的內建在瀏覽器中,

降低使用者進入本平台的門檻。

2.3 頻寬與影音之相關研究

2.3.1 Adaptive bitrate streaming

Adaptive bitrate streaming 是一種應用於串流媒體的技術,它的運作原理在於檢 測客戶端的頻寬和 CPU 能力後,在伺服器端即時調整對應 bit rate 的影音串流資料傳 送給該客戶端,好處是可以客制化,減少客戶端的緩衝和擁有流暢的畫面。缺點是對伺 服器能力要求高,使用的編碼器要可以將單一來源的視訊資料編碼成多種 bit rates,

依客戶端頻寬不同而切換不同的 bit rates。若是即時(live)視訊連線,則伺服器會 被要求在更短的時間完成。

一些商用的串流媒體伺服器已經有提供此技術支援,如 Adobe Flash Media Server。

2.3.2 Camera control

與 Adaptive bitrate streaming 不同,Camera control 旨在控制攝影機的參數以 改變產生的資料量,屬於一種客戶端控制硬體的技術,大多控制攝影機每秒抓取的張數

(FPS)、畫面解析度(Resolution),其調整參數的反應速度會受到攝影機的硬體能力 影響。

綜合 2.3 小節,Adaptive bitrate streaming 技術已有許多商用伺服器發展成熟。

本論文著重在客戶端的程式開發,對頻寬不足的處理將朝 Camera control 方向去研究。

7

第3章 研究方法與內容

3.1 雲端服務視訊互助平台架構

3.1.1 平台架構架構與各伺服器介紹

本平台建立伺服器叢集(Server cluster)負責使用者互助連線之間的資訊傳輸、記 錄儲存,依其功能和需求我們建立三個伺服器。伺服器叢集包含網頁伺服器(Web Server,

WBS)、訊息傳遞伺服器(Message Server, MSS)、及影音伺服器(Media Server, MDS)

三台伺服器。互助平台的整體架構如圖 3-1 所示。

圖 3-1 互助平台的整體架構

各伺服器在平台中的功能為:

(1) 網頁伺服器:提供客戶端的使用者透過瀏覽器以瀏覽網頁方式來連接互助平台。

伺服器上有儲存平台所有資料 (包括影音、文字、對話及使用者註冊等資訊) 的中央資 料庫及管理系統,並提供討論區介面讓使用者可在平台中找到互助合作的夥伴,建立起 自己的「交友圈」,找到興趣相近或是能夠互相幫忙解決問題的同好。

(2) 訊息傳遞伺服器:主要負責活動進行時的傳遞使用者之間的互動訊息。整個互助 平台中負責扮演訊息傳遞中心的角色,透過網路接受來自客戶端、網頁伺服器的訊息轉

客戶端

網頁伺服器

訊息傳遞伺服器

影音伺服器 資訊

8 展 Browser/Server(B/S)架構下的客戶端程式,並發展影音伺服器與客戶端之間的通 訊機制、客戶端與客戶端之間的同步通訊機制和影音串流的在客戶端與伺服器之間的傳 和存檔的伺服器為「影音伺服器(Media Server)」,其中發佈影音串流的客戶端稱為「發 佈端(Publisher)」,接收影音串流的客戶端稱為「接收端(Receiver)」。一個連線活 動同時間只會有一個影像串流發佈到影音伺服器,其他多個客戶端連上來皆為接收端且

9

能同時觀看這個影音串流。

影音伺服器會開啟數個固定的通道(port)作為客戶端連線的入口,客戶端和影音 伺服器之間使用 RTMP(Real Time Message Protocol)作為通訊協定,由客戶端主動發 啟連線請求將影音串流發佈到伺服器端,同時在伺服器存檔寫到硬碟,並會由網頁伺服 器和資料庫派發的一個專屬影片碼(Video Code)作為寫入檔名。另一客戶端從網頁伺 服器的資料庫端取得這個影片碼,就可以在伺服器上找到目標影音檔。

影音伺服器的主要功能有:

(1) 串流轉送:將發佈端傳來的串流轉給所有訂閱此串流的接收端。

(2) 串流存檔:接收到發佈端傳來的串流同時寫入伺服器的硬碟。

(3) 即時連線模式的串流狀態訊息傳送:發佈端發佈或停止發佈串流到伺服器時,伺服 器會回傳狀態訊息到客戶端,訂閱的接收端能依據這些來自伺服器的狀態訊息作狀 態轉換或是介面變化,如收到串流已停止發佈的訊息,接收端能在介面上通知使用

(3) 即時連線模式的串流狀態訊息傳送:發佈端發佈或停止發佈串流到伺服器時,伺服 器會回傳狀態訊息到客戶端,訂閱的接收端能依據這些來自伺服器的狀態訊息作狀 態轉換或是介面變化,如收到串流已停止發佈的訊息,接收端能在介面上通知使用