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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

rtmp服务器与播放器的交互

發布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rtmp服务器与播放器的交互 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載于:http://www.cnblogs.com/haibindev/archive/2012/04/16/2450989.html

  RTMP(Real Time Messaging Protocol)是常見的流媒體協議,用來傳輸音視頻數據,結合flash,廣泛用于直播、點播、聊天等應用,以及pc、移動、嵌入式等平臺,是做流媒體開發經常會接觸到的協議。我之前曾經寫過一篇文章“RTMP協議發送H.264編碼及AAC編碼的音視頻”,簡單介紹過如何在自己的程序里使用rtmp協議,不過那篇文章講的主要是如何實現一個rtmp直播的發布端,主要側重在“采集-編碼-rtmp發布”這樣的流程。這篇文章的主要內容是和大家分享下,做一個簡單的、輸出H.264直播流的rtmp server,需要實現哪些功能和步驟。?

常見的rtmp服務器

  有很多知名的rtmp server,其中既有商業程序也有開源程序,簡單列舉如下:

  開源項目

? ??

?

  商業程序

? ??

  當然,還有一些其他的開源、商業rtmp服務器(如ffserver),我就不一一列舉了。我并沒有一一嘗試,不過,從它們的聲明來看,一般來說,商業rtmp程序要比開源程序支持更多的協議以及更多的平臺,至于哪個更好,這就不好說了。我比較推薦的是crtmpserver,高性能,號稱可以支持“thousands of simultaneous connections”,而且它的開發社區目前很活躍。不過缺點是,代碼量有點龐大,而且在不斷增加當中。

  rtmp服務器的功能比較復雜,要完整實現比較困難,如果你需要的是一個完整功能的rtmp server,那就可以從它們之中選擇一個,如果你的需求和我一樣,只是一個簡單的、輸出H.264直播流的rtmp server,那就需要自己來設計和實現。

rtmp server與播放器的交互

  我們需要實現的是:支持flash播放協議、輸出H.264直播流的rtmp server,那么首先,我們必須了解rtmp服務器和flash播放器客戶端之間是怎樣的一個交互流程。通過閱讀《rtmp specification 1.0》就可以了解,我這里把它歸納總結一下。

? ??

  基本上一個rtmp server實現了以上6點交互協議,就可以支持flash的播放,順利的輸出h.264視頻流。

設計與實現

  知道了交互過程,我們就可以來設計和實現自己的Rtmp服務器了。由于RTMP協議是基于TCP協議的,所以rtmp server本質上就是一個TCP服務器,它的邏輯結構基本上和普通的TCP服務器是類似的。

  事實上,librtmp已經提供了基本的rtmp報文的讀取和發送,可以在librtmp的基礎上進行開發,來實現各種rtmp協議的組包和發送,從設備、文件或網絡中獲取到視頻數據,封裝成Rtmp數據報文,發給flash播放器,完成播放。

  我在另一篇文章“RTMP協議發送H.264編碼及AAC編碼的音視頻”中,已經詳細介紹了如何編譯和使用librtmp,感興趣的可以去看一下。那篇文章中談的是rtmp協議視頻發布端,和發布端相同的是,rtmp server向flash播放器發送的視頻數據流,也是需要首先發送"AVC sequence header",這其中包含的是重要的編碼信息,沒有的話,flash播放器將無法解碼。下面的代碼即是rtmp server收到播放請求之后,從"H264Reader"獲取并發送的播放流程。

? ??

?

?

轉載于:https://www.cnblogs.com/wenjing309/archive/2013/01/02/2841824.html

總結

以上是生活随笔為你收集整理的rtmp服务器与播放器的交互的全部內容,希望文章能夠幫你解決所遇到的問題。

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