RTMP協(xié)議規(guī)定:第一步避咆,建立一個網(wǎng)絡(luò)連接(NetConnection):客戶端和服務(wù)端的基礎(chǔ)連通關(guān)系 第二步:建立一個網(wǎng)絡(luò)流(NetStream)發(fā)送多媒體的通道(只能建立一個網(wǎng)絡(luò)連接,可以建立多個網(wǎng)絡(luò)流)
播放一個RTMP協(xié)議的流媒體:1.握手 2.建立連接 3.建立流 4.播放 RTMP連接都是以握手作為開始的筋夏。建立連接階段用于建立客戶端與服務(wù)器之間的“網(wǎng)絡(luò)連接”;建立流階段用于建立客戶端與服務(wù)器之間的“網(wǎng)絡(luò)流”岂丘;播放階段用于傳輸視音頻數(shù)據(jù)棠笑。
1.握手(HandShake)
一個RTMP連接以握手開始,雙方分別發(fā)送大小固定的三個數(shù)據(jù)塊
a)握手開始于客戶端發(fā)送C0喘沿、C1塊。服務(wù)器收到C0或C1后發(fā)送S0和S1竭贩。
b)當客戶端收齊S0和S1后蚜印,開始發(fā)送C2。當服務(wù)器收齊C0和C1后娶视,開始發(fā)送S2晒哄。
c)當客戶端和服務(wù)器分別收到S2和C2后睁宰,握手完成。
2.建立網(wǎng)絡(luò)連接(NetConnection)
a)客戶端發(fā)送命令消息中的“連接”(connect)到服務(wù)器寝凌,請求與一個服務(wù)應(yīng)用實例建立連接柒傻。
b)服務(wù)器接收到連接命令消息后,發(fā)送確認窗口大小(Window Acknowledgement Size)協(xié)議消息到客戶端较木,同時連接到連接命令中提到的應(yīng)用程序红符。
c)服務(wù)器發(fā)送設(shè)置帶寬()協(xié)議消息到客戶端。
d)客戶端處理設(shè)置帶寬協(xié)議消息后伐债,發(fā)送確認窗口大小(Window Acknowledgement Size)協(xié)議消息到服務(wù)器端预侯。
e)服務(wù)器發(fā)送用戶控制消息中的“流開始”(Stream Begin)消息到客戶端。
f) 服務(wù)器發(fā)送命令消息中的“結(jié)果”(_result)峰锁,通知客戶端連接的狀態(tài)萎馅。
3.建立網(wǎng)絡(luò)流(NetStream)
a) 客戶端發(fā)送命令消息中的“創(chuàng)建流”(createStream)命令到服務(wù)器端。
b)服務(wù)器端接收到“創(chuàng)建流”命令后虹蒋,發(fā)送命令消息中的“結(jié)果”(_result)糜芳,通知客戶端流的狀態(tài)。
4 播放(Play)
a) 客戶端發(fā)送命令消息中的“播放”(play)命令到服務(wù)器魄衅。
b)接收到播放命令后峭竣,服務(wù)器發(fā)送設(shè)置塊大小(ChunkSize)協(xié)議消息晃虫。
c)服務(wù)器發(fā)送用戶控制消息中的“streambegin”皆撩,告知客戶端流ID。
d)播放命令成功的話哲银,服務(wù)器發(fā)送命令消息中的“響應(yīng)狀態(tài)” NetStream.Play.Start & NetStream.Play.reset扛吞,告知客戶端“播放”命令執(zhí)行成功。
e) 在此之后服務(wù)器發(fā)送客戶端要播放的音頻和視頻數(shù)據(jù)盘榨。
網(wǎng)絡(luò)視音頻服務(wù)主要包括兩種方式:點播和直播喻粹。點播意即根據(jù)用戶的需要播放相應(yīng)的視頻節(jié)目,這是互聯(lián)網(wǎng)視音頻服務(wù)最主要的方式草巡。絕大部分視頻網(wǎng)站都提供了。點播服務(wù)型酥。直播意即互聯(lián)網(wǎng)視音頻平臺直接將視頻內(nèi)容實時發(fā)送給用戶山憨,目前還處于發(fā)展階段。直播在網(wǎng)絡(luò)電視臺弥喉,社交視頻網(wǎng)站較為常見郁竟。
直播服務(wù)普遍采用了RTMP作為流媒體協(xié)議,F(xiàn)LV作為封裝格式由境,H.264作為視頻編碼格式棚亩,AAC作為音頻編碼格式蓖议。采用RTMP作為直播協(xié)議的好處在于其被Flash播放器支持。而Flash播放器如今已經(jīng)安裝在全球99%的電腦上讥蟆,并且與瀏覽器結(jié)合的很好勒虾。因此這種流媒體直播平臺可以實現(xiàn)“無插件直播”,極大的簡化了客戶端的操作瘸彤。封裝格式修然,視頻編碼,音頻編碼方面质况,無一例外的使用了FLV + H.264 +AAC的組合愕宋。FLV是RTMP使用的封裝格式,H.264是當今實際應(yīng)用中編碼效率最高的視頻編碼標準结榄,AAC則是當今實際應(yīng)用中編碼效率最高的音頻編碼標準中贝。視頻播放器方面,都使用了Flash播放器
點播服務(wù)普遍采用了HTTP作為流媒體協(xié)議臼朗,H.264作為視頻編碼格式雄妥,AAC作為音頻編碼格式。采用HTTP作為點播協(xié)議有以下兩點優(yōu)勢:一方面依溯,HTTP是基于TCP協(xié)議的應(yīng)用層協(xié)議老厌,媒體傳輸過程中不會出現(xiàn)丟包等現(xiàn)象,從而保證了視頻的質(zhì)量黎炉;另一方面枝秤,HTTP被絕大部分的Web服務(wù)器支持,因而流媒體服務(wù)機構(gòu)不必投資購買額外的流媒體服務(wù)器慷嗜,從而節(jié)約了開支淀弹。點播服務(wù)采用的封裝格式有多種:MP4,F(xiàn)LV庆械,F(xiàn)4V等薇溃,它們之間的區(qū)別不是很大。視頻編碼標準和音頻編碼標準是H.264和AAC缭乘。這兩種標準分別是當今實際應(yīng)用中編碼效率最高的視頻標準和音頻標準沐序。視頻播放器方面,無一例外的都使用了Flash播放器
歡迎加入:iOS開發(fā)交流群:570890454