国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

RTMP流媒體播放過程

2019-11-06 06:49:28
字體:
來源:轉載
供稿:網友

本文描述了從打開一個RTMP流媒體到視音頻數據開始播放的全過程。

注意:RTMP中的邏輯結構

RTMP協議規定,播放一個流媒體有兩個前提步驟:第一步,建立一個網絡連接(NetConnection);第二步,建立一個網絡流(NetStream)。其中,網絡連接代表服務器端應用程序和客戶端之間基礎的連通關系。網絡流代表了發送多媒體數據的通道。服務器和客戶端之間只能建立一個網絡連接,但是基于該連接可以創建很多網絡流。他們的關系如圖所示:

1 簡要介紹

播放一個RTMP協議的流媒體需要經過以下幾個步驟:握手,建立連接,建立流,播放。RTMP連接都是以握手作為開始的。建立連接階段用于建立客戶端與服務器之間的“網絡連接”;建立流階段用于建立客戶端與服務器之間的“網絡流”;播放階段用于傳輸視音頻數據。

2 握手(HandShake)

一個RTMP連接以握手開始,雙方分別發送大小固定的三個數據塊

a)        握手開始于客戶端發送C0、C1塊。服務器收到C0或C1后發送S0和S1。

b)        當客戶端收齊S0和S1后,開始發送C2。當服務器收齊C0和C1后,開始發送S2。

c)        當客戶端和服務器分別收到S2和C2后,握手完成。

握手

 

 

3建立網絡連接(NetConnection)

a)        客戶端發送命令消息中的“連接”(connect)到服務器,請求與一個服務應用實例建立連接。

b)        服務器接收到連接命令消息后,發送確認窗口大小(Window Acknowledgement Size)協議消息到客戶端,同時連接到連接命令中提到的應用程序。

c)        服務器發送設置帶寬()協議消息到客戶端。

d)        客戶端處理設置帶寬協議消息后,發送確認窗口大小(Window Acknowledgement Size)協議消息到服務器端。

e)        服務器發送用戶控制消息中的“流開始”(Stream Begin)消息到客戶端。

f)         服務器發送命令消息中的“結果”(_result),通知客戶端連接的狀態。

建立連接

4建立網絡流(NetStream)

a)      客戶端發送命令消息中的“創建流”(createStream)命令到服務器端。

b)      服務器端接收到“創建流”命令后,發送命令消息中的“結果”(_result),通知客戶端流的狀態。

建立流

 

5 播放(Play)

a)        客戶端發送命令消息中的“播放”(play)命令到服務器。

b)        接收到播放命令后,服務器發送設置塊大小(ChunkSize)協議消息。

c)        服務器發送用戶控制消息中的“streambegin”,告知客戶端流ID。

d)        播放命令成功的話,服務器發送命令消息中的“響應狀態” NetStream.Play.Start & NetStream.Play.reset,告知客戶端“播放”命令執行成功。

e)        在此之后服務器發送客戶端要播放的音頻和視頻數據。

播放流

RTMP協議規范(中文翻譯):http://download.csdn.net/detail/leixiaohua1020/6563059


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒲城县| 历史| 石林| 新津县| 遵化市| 固阳县| 泰顺县| 新宁县| 慈溪市| 平顺县| 临城县| 江华| 万载县| 柳河县| 浑源县| 汤阴县| 海城市| 礼泉县| 华容县| 闵行区| 云南省| 贡觉县| 绥芬河市| 聂荣县| 白沙| 休宁县| 都昌县| 来宾市| 四会市| 庆安县| 拜城县| 定陶县| 凤阳县| 砚山县| 阳新县| 清徐县| 正定县| 和静县| 察雅县| 阳新县| 济宁市|