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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

libRTMP文档

發布時間:2023/12/31 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 libRTMP文档 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://rtmpdump.mplayerhq.hu/

?

原文地址:http://rtmpdump.mplayerhq.hu/librtmp.3.html

git clone git://git.ffmpeg.org/rtmpdump

?

名稱

?

librtmp ? RTMPDump Real-Time Messaging Protocol API

?

?

RTMPDump RTMP(librtmp, -lrtmp)

?

?

?

#include <librtmp/rtmp.h>

?

描述

?

Real-Time Messaging 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_Pause():流播放的時候可以用于暫停和繼續

?

RTMP_Seek():改變流播放的位置

?

當RTMP_Read()返回0 字節的時候,代表流已經讀取完畢,而后可以調用RTMP_Close()

?

RTMP_Free():用于清理會話。

?

所有的數據都使用 FLV 格式進行傳輸。一個基本的會話需要一個RTMP URL。RTMP URL 格式如下所示:

?

?rtmp[t][e|s]://hostname[:port][/app[/playpath]]

?

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

?

其他附加的選項可以在URL的后面添加, 以空格為間隔符的“key=value”形式的字符串。

?

?

選項

?

網絡(Network)參數

?

這些選項定義了如何連接一個流媒體服務器。

?

socks=host:port

?

使用指定?SOCKS4代理。

?

?

?

連接(Connection)參數

?

這些選項定義了RTMP連接(Connect)請求消息的內容。如果沒有提供正確的值,流媒體服務器會拒絕連接請求。

?

app=name

?

連接到RTMP的應用名,覆蓋RTMP URL中的app。有時rtmpdumpURL 無法正確自動解析app名稱。這時必須使用該選項。

?

tcUrl=url

?

目標流的URL。默認是 rtmp[t][e|s]://host[:port]/app.

?

pageUrl=url

?

流媒體所在網頁的URL。默認情況下沒有被發送的價值。

?

swfUrl=url

?

流媒體使用的SWF播放器的URL。默認情況下沒有被發送的價值。

?

flashVer=version

?

swf播放器使用的Flash版本. 默認是"LNX 10,0,32,18"。

?

conn=type:data

?

任意AMF數據追加到connect,type類型說明:

?

B 布爾型

?

N 數字

?

S 字符串

?

O 對象

?

Z 空null

?

對于布爾型必須是0或1作為FALSE或TRUE,

?

對于對象數據必須以0或1分別作為結束和開始的標制,子對象中數據項前加前綴類型N,并指定值名稱,例如: NB:myFlag:1

?

conn=B:1 conn=S:authMe conn=O:1 conn=NN:code:1.23 conn=NS:flag:ok conn=O:0

?

?

會話(Session)參數

?

這些選項在連接成功后生效。

?

playpath=path

?

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

?

playlist=0|1

?

在play命令之前發set_playlist命令。否則播放列表將會只包含playpath。

?

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

?

swf播放器的URL,此選項將替換所以三個--swfUrl,--swfhash, and --swfsize選項。使用此選項時,swf播放器將從指定URL檢索,并自動計算哈希和大小。此外信息緩存在一個swfinfo文件在用戶主目錄,所以它在每次rtmpdump運行時,并不需要檢索和重新計算。swfinfo記錄URL,生成時間,修改SWF文件時間,它的大小,它的哈希,默認情況下,緩沖信息用于30天,然后重新檢測。

?

swfAge=days

?

指定使用緩存的swf信息天數,然后重新檢查,使用0為經常檢查,如果檢查顯示swf具有相同的修改時間戳,它不會被再次檢索。

?

例子

?

RTMP_SetupURL()使用的一個例子字符串:

?

?"rtmp://flashserver:1935/ondemand/thefile swfUrl=http://flashserver/player.swfswfVfy=1"

?

?

?

?

?

http://rtmpdump.mplayerhq.hu

總結

以上是生活随笔為你收集整理的libRTMP文档的全部內容,希望文章能夠幫你解決所遇到的問題。

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