使用rtmpdump庫進行rtmps的推流

2021-09-24 23:58:22 字數 1273 閱讀 1083

寫這篇文章的目的:amf真的很奇葩,rtmp大概樣子,rtmpdump庫可實現 rtmps推流

一)理論

1)搞清楚rtmp(real time messaging protocol)是哪家公司發明的?

adobe公司。

2)rtmp協議是怎麼巨集觀上怎麼組織工作的?

client 1 + server + client 2,伺服器提供基本的服務,例如連線,推流(client to server),拉流(server to client),record等服務,客戶端呢,根據自己的需求去找伺服器索要服務。如何想要特殊服務,那必須得多花錢,充個vip。

rtmp與rtsp的工作組織方式是一樣的嗎?留乙個疑問。

3)rtmp是應用層協議,傳輸層都走的是tcp。那麼在這個協議客戶端怎麼和伺服器瘋狂的互動交流的呢(控制資訊)?

使用的是amf(action message format),它有著和xml和json的一樣的使命,就是傳遞交流資料。amf是乙個把空間做到極限的一種東西。編碼方式是  len key type len value全是二進位制的,就這麼任性。也是adobe公司開發的。

typedef enum

amfdatatype;

4)client最開始是怎麼搞上的?

a)tcp連線,sync ack sync  ack三下握手就建立了tcp連線

b)rtmp應用程式握手 c0 c1 c2 (c client) , s0 s1 s2(server)

d)然後在拿amf格式給伺服器傳送public命令,成功後,client就可以將流推上伺服器了。

5)rtmp的分包傳輸,懶得看

一)實操

1)搭建乙個本地的rtmp伺服器

我之前是使用srsrtmp的開源專案原始碼,編譯後,在ubuntu上搭建乙個普通的rtmp伺服器,然後使用srs的工具推一波流。

如果成功了,那麼你已經開啟的rtmp探索之路了。

2)熟悉sample就可以掌握各個庫的使用。

3)拿wireshark抓包,看一下client和server之間的交流過程。

三)有個專案是推流到facebook,facebook全部使用的是rtmps,然後就使用rtmpdump來實現。

rtmp 是最基礎的應用層協議,直接通過tcp進行通訊。

rtmpt 是將rtmp協議,放到http協議裡面。這樣我想起了ip協議放到ip協議裡面,形成隧道。

rtmps 是將rtmp協議,放到https協議裡面,這樣安全。

到這裡就結束了,我使用rtmpdump庫實現了rtmps facebook的推流。

RTMPdump 使用說明

rtmpdump v2.4 2012 07 24 rtmpdump 1 名稱rtmpdump rtmp流 客戶端 rtmp streaming media client 使用引數 rtmpdump h 說明rtmpdump 通過給定的url建立連線到指定的rtmp伺服器.這url應該如下 支援一般以...

RTMPdump 使用說明

rtmpdump v2.4 2012 07 24 rtmpdump 1 名稱 rtmpdump rtmp流 客戶端 rtmp streaming media client 使用引數 rtmpdump h 說明 rtmpdump 通過給定的url建立連線到指定的rtmp伺服器.這url應該如下 支援一...

RTMPdump 使用說明

rtmpdump v2.42012 07 24rtmpdump 1 名稱 rtmpdump rtmp流 客戶端 rtmp streaming media client 使用引數 這些選項定義了如何連線到伺服器 rtmp r url 連線到伺服器的url host n hostname 覆蓋 rtmp...