3.2 影音串流設計
3.2.1 影音合併或分流設計
3.2.1.2 二客戶端串流發送切換的設計
在本研究中,發佈端和接收端的角色是可以互相切換的,發佈端可以將發佈影像的 權限交給其它接收端,然後自己轉為接收端。本論文稱具有發佈影像權力的為發佈權,
具有發佈權的客戶端稱為發佈端。所有成員客戶端皆可以提出切換發佈。
圖 3-15 客戶端提出切換請求的示意圖
所有的切換請求皆須要透過訊息傳遞伺服器傳給另一個客戶端才能進行動作,此活動內 的成員皆可以提出切換發佈權請求,依據發佈權所在的客戶端不同會有不同的切換指 令:
(1) SendPublishKey
具有發佈權的客戶端(發佈端)可指定要將發佈權交給哪個客戶端,則會送出
「SendPublishKey」訊息給目標客戶端,若目標有多個攝影機,同時可指定要顯示 哪個攝影機的畫面,只要該客戶端同意就會開始進行切換流程
(2) RequestPublishKey
不具有發佈權的客戶端(接收端)可向有發佈的客戶端(發佈端)提出取得發佈權 請求,則會送出「RequestPublishKey」訊息給發佈端,只要該發佈端同意就會開始 進行切換流程。
22
依據串流的合併或分流傳送討論切換流程:
(1) 串流合併時的切換流程
客戶端A欲和客戶端B交換發佈權
步驟一:如圖 3-16,切斷客戶端A發佈的影音串流(視訊+音訊)和客戶端B的發 佈音訊串流4,所以其他客戶端都會失去接收這兩個串流(從A發佈的視訊+音訊、
音訊B)
圖 3-16 合併串流切換步驟圖1
步驟二:如圖 3-17,客戶端B從客戶端A取得發佈權,開始發佈影音串流(視訊+
音訊),而客戶端A失去發佈權,但要重新發佈音訊串流,其他客戶端皆要重新接收 這些新發佈端的串流:從客戶端B發佈的影音串流(視訊+音訊)、客戶端A發佈的 音訊串流A
圖 3-17 合併串流切換步驟圖2
4 音訊串流、視訊串流、影音串流:一個串流中若只有音訊流,稱為音訊串流。一個串流中若只有視訊流,
稱為視訊串流。一個串流中若同時有音訊流和視訊流,稱為影音串流。
23
(2) 串流分流的切換流程
客戶端A欲和客戶端B交換發佈權
步驟一:如圖 3-18,切斷客戶端A發佈的視訊,其他客戶端都會失去接收這個視訊 串流。所有音訊串流皆保持傳送,不作任何變動。
圖 3-18 分流串流切換步驟圖1
步驟二:如圖 3-19,客戶端B從客戶端A取得發佈權,開始發佈視訊串流,而客戶 端A失去發佈權,其他客戶端僅需重新接收新發佈端的串流:從客戶端B新發佈的 視訊串流。
圖 3-19 分流串流切換步驟圖2
24
若一個視訊流流量 20KB/s,音訊流流量 5KB/S,合送時影音串流為 20+5=25KB/s,有 5 位成員,10 位訪客,則以B=25、S=5、N=5、M=10代入合併時的流量公式,得