libRTMP使用說明

2021-07-23 21:05:17 字數 3821 閱讀 7798

名稱

librtmp − rtmpdump real-time messaging protocol api

rtmpdump rtmp(librtmp, -lrtmp)

簡介

#include

描述

實時流協議(real-timemessaging protocol,rtmp)是用於網際網路上傳輸視音訊資料的網路協議。本api提供了支援rtmp, rtmpt,rtmpe, rtmp rtmps以及以上幾種協議的變種(rtmpte, rtmpts)協議所需的大部分客戶端功能以及少量的伺服器功能。儘管adobe公司已經公布了rtmp協議規範(rtmp specification),但是本工程並不是通過adobe的協議規範而是通過逆向工程的方式完成的。因此,它的執行方式可能和公布的協議規範有所偏離,但是一般情況下它和adobe的客戶端的執行方式是一模一樣的。

rtmpdump 軟體包含乙個基本的客戶端:rtmpdump,一些示例伺服器和乙個用來提供對rtmp協議進行支援的庫(librtmp)。本頁面對librtmp的函式進行乙個概述。 這些函式可以在 -lrtmp 庫中找到。其他還有很多函式,但是還沒有為這些函式寫文件。

基本的操作如下文所述。

rtmp_alloc() :用於建立乙個rtmp會話的控制代碼。

rtmp_init():初始化控制代碼。

rtmp_setupurl():設定會話的引數。

rtmp_connect():建立rtmp鏈結中的網路連線(netconnection)。

rtmp_connectstream():建立rtmp鏈結中的網路流(netstream)。

rtmp_read():讀取rtmp流的內容。

客戶端可以在呼叫rtmp_connect()之前呼叫rtmp_enablewrite(),然後在會話開始之後呼叫rtmp_write()。

rtmp_read()返回0 位元組的時候,代表流已經讀取完畢,而後可以呼叫rtmp_close()

rtmp_free():用於清理會話。

所有的資料都使用 flv 格式進行傳輸。乙個基本的會話需要乙個rtmp url。rtmp url 格式如下所示:

支援普通的,隧道的,以及加密的會話。

其他附加的選項可以在url的後面新增以空格為間隔符的「key=value」形式的字串。

選項

網路(network)引數

這些選項定義了如何連線乙個流**伺服器。

socks=host:port

使用指定

socks4

**。

連線(connection)引數

這些選項定義了rtmp連線(connect)請求訊息的內容。如果沒有提供正確的值,流**伺服器會拒絕連線請求。

name

tcurl=url

pageurl=url

流**所在的網頁的url。預設情況下沒有被傳送的價值。

swfurl=url

flashver=version

conn=type:data

任意amf資料追加到connect,型別說明,

b 布林型

n 數字

s 字串

o 物件

z 空對於布林型必須是0或1作為false或true,

對於物件資料必須以0或1分別作為結束和開始的標制,子物件中資料項前加字首型別n,並指定值名稱,例如:

-c b:1 -c s:authme -c o:1 -c nn:code:1.23-c ns:flag:ok -c o:0

會話(session)引數

這些選項在連線成功後生效。

playpath=path

覆蓋rtmp url解析的playpath,rtmpdump有時不能正確解析,通過該選項明確。

playlist=0|1

live=0|1

指定**是實時流。在實時流中沒有恢復和搜尋。

subscribe=path

訂閱的實時流名稱。預設playpath。

start=num

開始到流的秒數(num),實時流無效。

stop=num

停止到流的秒數(num)。

buffer=num

設定緩衝時間,單位毫秒。 預設值36000000。

timeout=num

num秒後沒有收到任何資料會話超時,預設值120。

安全(security)引數

這些選項處理額外的身份驗證,來自伺服器的請求。

token=key

輸入安全令牌響應,如果伺服器需要使用安全令牌驗證。

jtv=json

json令牌用於傳統justin.tv伺服器 ,呼叫netstream.authenticate.ushertoken。

swfvfy=0|1

swfage=days

指定使用快取的swf資訊天數,然後重新檢查,使用0為經常檢查,如果檢查顯示swf具有相同的修改時間戳,它不會被再次檢索。

例子

rtmp_setupurl()使用的乙個例子字串:

參見

rtmpdump(1),rtmpgw(8)

作者

andrej stepanchuk, howard chu,the flvstreamer team 

libRTMP使用說明

名稱 librtmp rtmpdump real time messaging protocol api 庫 rtmpdump rtmp librtmp,lrtmp 簡介 include 描述 實時流協議 real timemessaging protocol,rtmp 是用於網際網路上傳輸視音訊資...

libRTMP使用說明

名稱 librtmp rtmpdump real time messaging protocol api 庫 rtmpdump rtmp librtmp,lrtmp 簡介 include 描述 實時流協議 real timemessaging protocol,rtmp 是用於網際網路上傳輸視音訊資...

libRTMP使用說明

名稱 librtmp rtmpdump real time messaging protocol api 庫 rtmpdump rtmp librtmp,lrtmp 簡介 include 描述 實時流協議 real timemessaging protocol,rtmp 是用於網際網路上傳輸視音訊資...