日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RTMP流媒体播放过程:握手,建立连接,建立流,播放

發布時間:2024/4/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

?

?

http://blog.csdn.net/leixiaohua1020/article/details/11704355

轉載于:https://www.cnblogs.com/elesos/p/9394212.html

總結

以上是生活随笔為你收集整理的RTMP流媒体播放过程:握手,建立连接,建立流,播放的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。