您好,登錄后才能下訂單哦!
Version 3.6.500
Jan. 16, 2019
版權(quán)所有2019 云視睿博 NovelTV Inc. 保留所有權(quán)利。
<div STYLE="page-break-after: always;"></div>
遠(yuǎn)程管理API提供一組接口,其他系統(tǒng)(如企業(yè)的業(yè)務(wù)管理系統(tǒng)、媒資管理系統(tǒng)、用戶管理系統(tǒng)、OA系統(tǒng)等)可以通過調(diào)用接口來查詢流媒體服務(wù)器的數(shù)據(jù)和更改流媒體服務(wù)器的配置,實(shí)現(xiàn)與流媒體服務(wù)器的集成。
閱讀本接口規(guī)范時(shí),請首先認(rèn)真閱讀《概述》章節(jié)(即本章節(jié)),然后在閱讀《登錄認(rèn)證》章節(jié),這兩個(gè)章節(jié)是必須閱讀的部分。其他章節(jié)根據(jù)需要選擇閱讀,例如要做轉(zhuǎn)碼集成,閱讀《文件管理》和《轉(zhuǎn)碼》章節(jié)即可。
本文檔定義的接口規(guī)范,對版本號大于等于3.6.500的流媒體服務(wù)器系統(tǒng)有效。
較低版本服務(wù)器,繼續(xù)使用對應(yīng)版本的接口規(guī)范。
本規(guī)范中,流媒體服務(wù)器是通信的服務(wù)器端(簡稱“服務(wù)器”),調(diào)用接口的其他系統(tǒng)是通信客戶端(簡稱“客戶端”)??蛻舳撕头?wù)器通過HTTP協(xié)議通信,客戶端使用HTTP Get向服務(wù)器發(fā)送請求,服務(wù)器返回json格式的業(yè)務(wù)數(shù)據(jù)或操作結(jié)果給客戶端。
接口的請求地址是個(gè)URL地址,每個(gè)接口URL地址都包括分組位置和請求參數(shù),例如: http://ip/mserver/interface/appMgr/?request=get&token=123456
其中:
http://ip/mserver/interface/appMgr/ 是接口請求的URL位置,“ip”在實(shí)際請求中要替換成服務(wù)器的ip地址或域名。
http://ip/mserver/interface/ 代表流媒體服務(wù)器接口服務(wù)在Web上的部署的位置,要保持不變。
appMgr是接口的分組位置,流媒體服務(wù)器接口包括了多個(gè)分組位置,具體參見接口定義部分。
符號?后面是參數(shù)列表,以name=value的形式體現(xiàn)。
其中:
request參數(shù)是在所有接口中都要有的,該參數(shù)表明了請求業(yè)務(wù)的類型。
token參數(shù)提供一個(gè)安全認(rèn)證符號給服務(wù)器,服務(wù)器用token來驗(yàn)證客戶端的合法性,除了登錄驗(yàn)證接口之外,其他接口都需要token參數(shù)。
有關(guān)URL地址的編碼規(guī)范,請參考HTTP 1.1規(guī)范。
服務(wù)器在收到接口請求后,首先判斷token的正確性,如果token錯(cuò)誤,則返回認(rèn)證錯(cuò)誤的消息給客戶端。如果token正確,服務(wù)器返回json格式的文本內(nèi)容給客戶端。返回給客戶端的json文本描述了服務(wù)器對請求的處理結(jié)果和響應(yīng)數(shù)據(jù)。
客戶端必須首先通過身份認(rèn)證才能繼續(xù)調(diào)用接口,在一個(gè)“挑戰(zhàn)—>應(yīng)答”模式的身份認(rèn)證過程中完成身份認(rèn)證,認(rèn)證通過后,服務(wù)器為客戶端分配一個(gè)臨時(shí)令×××token,在后續(xù)的請求中,token作為一項(xiàng)必選參數(shù)提供,服務(wù)器通過token識別用戶身份和驗(yàn)證請求的合法性。
在沒有接口調(diào)用時(shí),token的有效期為30分鐘,之后客戶端再調(diào)用接口時(shí)必須重新進(jìn)行身份認(rèn)證,獲取新的token。
為了確保一定的安全性,客戶端應(yīng)妥善保存token值。
當(dāng)URL請求參數(shù)值中包含URL地址保留字符時(shí),應(yīng)對參數(shù)值進(jìn)行URL編碼。
具體參見“RFC2396: Uniform Resource Identifiers (URI): Generic Syntax”。
當(dāng)請求參數(shù)包含中文字符時(shí),應(yīng)對中文字符采用UTF-8編碼。
本文檔在描述接口的URL地址時(shí),如果沒有特殊說明,會省略掉URL前面的相同部分,從接口的分組位置開始描述。例如,http://ip/mserver/interface/appMgr/?request=get 簡化為 appMgr/?request=get。
在描述參數(shù)時(shí),省略token參數(shù)的描述,在示例中也會省略。在實(shí)際調(diào)用中必須把token參數(shù)加上。
在對參數(shù)進(jìn)行描述時(shí),用【必選】表示該參數(shù)必須提供,用【可選】表示該參數(shù)可以省略,用【URL編碼】表示該參數(shù)需要進(jìn)行URL編碼,【保留】表示該參數(shù)可以接受但尚未被使用。
返回的json消息數(shù)據(jù)結(jié)構(gòu)具有嚴(yán)格的一致性,客戶端可以采用一致的接收和解析方式處理返回消息。
簡單消息
簡單的返回消息包含對請求的處理結(jié)果,結(jié)構(gòu)如下:
{
"code":0,
"err_desc":""
}
其中:
code 為 0 表示處理成功,其它值表示處理失敗。
err_desc是對錯(cuò)誤的描述,在code為0時(shí)err_desc會被省略。
特殊情況,在用戶認(rèn)證的login1和login2接口中,err_desc具有特殊用途用法,具體參見接口描述。除這兩個(gè)接口之外,err_desc都表示錯(cuò)誤描述。
帶業(yè)務(wù)數(shù)據(jù)的消息
有的返回消息除了包含處理結(jié)果信息,還包含業(yè)務(wù)數(shù)據(jù)記錄集,結(jié)構(gòu)如下:
{
"code":0,
"data":{
"count":1,
"items":[{
"server":"g3",
"host":"127.0.0.1",
"protocol":"rtmp",
"app":"liveshow",
"stream":"jgdy"
}]
}
}
其中:
data 業(yè)務(wù)數(shù)據(jù)的根節(jié)點(diǎn):
count 業(yè)務(wù)數(shù)據(jù)的條數(shù),可能的值為0 ~ n
items 業(yè)務(wù)數(shù)據(jù),是一個(gè)數(shù)組,數(shù)據(jù)條數(shù)由count屬性定義。當(dāng)count為0時(shí),items屬性可能為null或者不存在。
本文檔后續(xù)章節(jié)中,在描述items元素的屬性時(shí),會省略一些屬性的描述,即實(shí)際調(diào)用接口返回的屬性在本文檔中可能會沒有描述,這種情況下請直接忽略被忽略描述的屬性值。本文檔中描述的屬性是實(shí)際返回內(nèi)容的一個(gè)子集,沒有描述到的內(nèi)容對集成本系統(tǒng)沒有影響。
帶分頁數(shù)據(jù)的消息
如果返回?cái)?shù)據(jù)較多,服務(wù)器會對返回的數(shù)據(jù)進(jìn)行分頁,客戶端可以按照頁碼請求指定范圍的數(shù)據(jù)。帶分頁信息的返回?cái)?shù)據(jù)結(jié)構(gòu)如下:
{
"code":0,
"data":{
"page":1,
"page_size":"20",
"pages":"1",
"total":"2",
"count":2,
"items":[...]
}
}
分頁數(shù)據(jù)信息在data元素下,意義如下:
page 當(dāng)前頁碼
page_size 每頁數(shù)據(jù)記錄條數(shù)
pages 總共的頁數(shù)
total 總數(shù)據(jù)條數(shù)
count 當(dāng)前返回頁的數(shù)據(jù)條數(shù)
如果返回的數(shù)據(jù)帶有分頁信息,則可以在調(diào)用接口時(shí)使用page參數(shù)來請求指定頁碼的數(shù)據(jù)。
[1] RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1[S].
[2] RFC 3986, Uniform Resource Identifier (URI): Generic Syntax[S].
[3] http://www.json.org/ Introducing JSON
<div STYLE="page-break-after: always;"></div>
客戶端調(diào)用流媒體服務(wù)器接口,首先要做的是身份認(rèn)證,認(rèn)證通過后才可以調(diào)用流媒體服務(wù)器的接口。
服務(wù)器和客戶端通過“挑戰(zhàn)->應(yīng)答”方式(challenge-response)進(jìn)行身份認(rèn)證交互,在這個(gè)過程中,客戶端需要調(diào)用兩次接口向服務(wù)器證明身份。認(rèn)證過程中不需要傳遞密碼,密碼用于簽名驗(yàn)證。
身份認(rèn)證的過如下:
1客戶端使用“用戶名”作為參數(shù)調(diào)用“l(fā)ogin1”接口,向服務(wù)器發(fā)出身份認(rèn)證請求
1.1)服務(wù)器確認(rèn)用戶是否是有效的用戶:
1.2)若不是,則不做進(jìn)一步處理,返回錯(cuò)誤信息
1.3)若是,服務(wù)器產(chǎn)生一個(gè)“隨機(jī)數(shù)(挑戰(zhàn)字符串)”發(fā)送給客戶端
2客戶端使用“用戶密碼”和“隨機(jī)數(shù)(挑戰(zhàn)字符串)”作為輸入,按約定的算法生成一個(gè)hash值,用該hash值作為 調(diào)用“l(fā)ogin2”接口的參數(shù),請求login2接口。
2.1)服務(wù)器用收到的hash值與自己的計(jì)算結(jié)果比較,若二者相同,則通過認(rèn)證;否則,認(rèn)證失敗
2.2)若認(rèn)證通過,服務(wù)器返回“token”給客戶端,否者返回錯(cuò)誤信息。
userAuth/?request=login1&username=admin
{
"code":0,
"err_desc":"auha3gik9m48l1mh"
}
code 等于0,表示用戶有效,此時(shí) err_desc 的內(nèi)容是返回的挑戰(zhàn)字符串(challenge_code)。
code 不等于0,其他值表示錯(cuò)誤,此時(shí) err_desc 的內(nèi)容是錯(cuò)誤描述。
返回的挑戰(zhàn)字符(challenge_code)串用于下一步認(rèn)證。
userAuth/?request=login2&username=admin&hash=8c96202be3da1b23a96c4c838eb34d93
hash=md5(md5(password)+challenge_code)
{
"code":0,
"err_desc":"g2ow17rfyf4nxbkg"
}
code 0 表示登錄成功,此時(shí) err_desc 的內(nèi)容是token值,用于后續(xù)接口的通信認(rèn)證。
code >0 其他值表示錯(cuò)誤,此時(shí) err_desc 的內(nèi)容是錯(cuò)誤描述。
userAuth/?request=logout&token=vvkphp5ca79c538n
{
"code":0,
}
<div STYLE="page-break-after: always;"></div>
用途
查詢服務(wù)器上的應(yīng)用(application)。
請求
appMgr/?request=get&token=abce
token 是在登錄認(rèn)證接口中獲得的token值。后續(xù)接口描述中將省略對token參數(shù)的描述,但是要記住token參數(shù)是必須的。
{
"code":0,
"data":{
"count":2,
"items":[{"app_name":"show3",
"allow_live":"on",
"allow_publish":"on",
"allow_play":"on"
},
{"app_name":"show4",
"allow_live":"on",
"allow_publish":"on",
"allow_play":"on"}
]}
}
返回一個(gè)或多個(gè)應(yīng)用的信息。
app_name 應(yīng)用名
allow_live 是否允許直播業(yè)務(wù),on表示允許,off或省略不允許
allow_publish 是否允許推送直播流到該應(yīng)用,on表示允許,off或省略不允許
allow_play 是否允許播出視頻,on表示允許,off或省略不允許
{
"code":0,
"data":{
"count":1,
"items":[
{
"is_dvr":"on",
"dvr_method":"METHOD_A",
"version_it":"on",
"media_root":"/var/www/media",
"keep_time":"0",
"analyze_duration":"15",
"segment_duration":"10",
"chunk_type":"h",
"chunk_size":"1",
"chunk_ts":"off",
"formats":"flv;hls",
"probe_time":"20",
"tv_streams":"tv",
"application":"__Default"
}
]
}
}
返回應(yīng)用的配置參數(shù),items數(shù)組包含一個(gè)元素。
配置參數(shù):
is_dvr on 表示DVR開啟,off表示關(guān)閉。
media_root 歸檔數(shù)據(jù)保存的根路徑
formats 歸檔的格式,多種格式用半角分號分開。flv 保存flv格式;hls保存hls切片格式;mp4保存mp4格式。
tv_streams 按照電視流格式歸檔的流名稱,多個(gè)名稱用半角分號分開。
application 應(yīng)用名,"Default" 表示使用的是全局配置。
{
"code":0
}
{
"code":0
}
{
"code":0
}
<div STYLE="page-break-after: always;"></div>
用途
查詢活動的視頻流,即正在直播中的視頻流。
請求
streamMgr/?request=get_active_streams
{
"code":0,
"data":{
"count":1,
"items":[
{
"server":"g3",
"host":"192.168.1.230",
"protocol":"rtmp",
"app":"live",
"stream":"live2",
"uid":"23000043",
"end":"end",
"starttime":1516242339
}
]
}
}
items數(shù)組可能包含0或多個(gè)元素。
server 服務(wù)器類型,默認(rèn)是g3
host 服務(wù)器IP地址或域名
protocol 直播協(xié)議,rtmp或rtsp
app 應(yīng)用名
stream 流名稱
starttime 開始直播的時(shí)間,是一個(gè)unix時(shí)間戳
請求
closedStream/?request=close&application=live&stream=live2
application 應(yīng)用名
stream 直播流名稱
{
"code":0
}
用途
解除在上一接口中被關(guān)閉和禁用的直播流,解除后直播流可以允許推流直播。
請求
closedStream/?request=open&application=live&stream=live2
application 應(yīng)用名
stream 直播流名稱
{
"code":0
}
請求
closedStream/?request=list
{
"code":0,
"data":{
"count":1,
"items":[
{
"application":"liveshow",
"stream":"live1",
"time":1516274119
}
]
}
}
items元素下包含被禁用的直播流列表。
application 應(yīng)用名
stream 直播流名稱
time 禁用時(shí)間,unix時(shí)間戳
響應(yīng)
{
"code":0
}
<div STYLE="page-break-after: always;"></div>
用途
查詢某個(gè)應(yīng)用下的點(diǎn)播視頻流。
如果查詢的是點(diǎn)播應(yīng)用(如"vod"),返回的是該點(diǎn)播應(yīng)用下的點(diǎn)播流列表。
如果查詢的是直播應(yīng)用(如“l(fā)iveshow”),則會返回的是有錄制數(shù)據(jù)的歷史直播流的列表,列表中的時(shí)長、修改時(shí)間、生成時(shí)間屬性都是針對該流最后一個(gè)錄制版本的描述??梢酝ㄟ^下一個(gè)接口查詢某個(gè)直播流下的詳細(xì)錄制數(shù)據(jù)。
請求
streamMgr/?request=get_streams&application=vod&pageno=1&page_size=20
application 應(yīng)用名
pageno 頁碼
page_size 分頁大小,【保留】,該參數(shù)暫不支持傳入,分頁大小由服務(wù)器根據(jù)數(shù)據(jù)量自動分頁。
在視頻流較多的情況下,可以通過傳入頁碼參數(shù)請求某一范圍內(nèi)的數(shù)據(jù)。返回的數(shù)據(jù)中含有詳細(xì)的分頁信息,可以通過請求第一頁獲取數(shù)據(jù)總量和分頁的詳情。
本文檔的后續(xù)章節(jié)將不再對分頁屬性做解釋。
{
"code":0,
"data":{
"page":1,
"page_size":"20",
"pages":"2",
"total":"28",
"modify_time":"1515731044",
"count":20,
"items":[
{
"seq":1,
"application":"vod",
"stream":"fk7cpizvhwshjnyu",
"type":"movie",
"starttime":"1515155078",
"modifytime":"1515155078",
"active":"no",
"duration":"10",
"formats":"flv,hls,mp4"
},
{
"seq":2,
"application":"vod",
"stream":"VID20160916153947",
"type":"movie",
"starttime":"1515154953",
"modifytime":"1515154953",
"active":"no",
"duration":"36",
"formats":",,mp4"
} ]
}
}
返回應(yīng)用下的點(diǎn)播流。
data元素下包含數(shù)據(jù)量和分頁信息:
page 當(dāng)前頁碼
pages 總頁數(shù)
page_size 分頁大小
total 總數(shù)據(jù)條數(shù)
count 當(dāng)前分頁中的數(shù)據(jù)條數(shù)
items元素下包含0或多條點(diǎn)播數(shù)據(jù)流,每條記錄的屬性如下:
application 應(yīng)用名
stream 流名稱
type 點(diǎn)播流類型,movie表示是視頻點(diǎn)播流,live表示是直播流(由直播流形成的歸檔數(shù)據(jù))。
modifytime 最后修改的時(shí)間戳
"starttime 開始生成的時(shí)間戳,對于movie類型的流,表示轉(zhuǎn)碼生成的時(shí)間,對于live類型的流表示錄制的時(shí)間。
duration 視頻流的播出時(shí)長,單位 秒
formats 視頻流的格式,一個(gè)視頻流可以有多種格式,多種格式之間使用逗號分開,可以是flv、hls、mp4格式中的一種或多種。
請求
streamMgr/?request=get_stream_files&application=liveshow&stream=jgdy&pageno=1&page_size=20
application 應(yīng)用名
stream 直播流名稱
pageno 頁碼
page_size 分頁大小
{
"code":0,
"data":{
"page":1,
"page_size":"20",
"pages":"1",
"total":"2",
"modify_time":"1515755949",
"count":2,
"items":[
{
"version":"1",
"size":"28759864",
"duration":"353",
"starttime":"1515655308",
"modifytime":"1515655659",
"formats":"hls"
},
{
"version":"0",
"size":"121345164",
"duration":"1209",
"starttime":"1515218380",
"modifytime":"1515219588",
"formats":"hls"
}
]
}
}
返回某個(gè)直播流的錄制數(shù)據(jù)。
items元素下包含0或多條錄制數(shù)據(jù),每條數(shù)據(jù)的屬性如下:
version 版本號
size 錄制數(shù)據(jù)大小,單位 字節(jié)
duration 視頻流的播出時(shí)長,單位 秒
modifytime 最后修改的時(shí)間戳,可以理解成錄制結(jié)束的時(shí)間戳
"starttime 開始錄制的時(shí)間戳。
formats 視頻流的格式,一個(gè)視頻流可以有多種格式,多種格式之間使用逗號分開,可以是flv、hls、mp4格式中的一種或多種。
用途
刪除一個(gè)視頻流。
如果請求刪除的是一個(gè)視頻點(diǎn)播流名稱(如"vod"應(yīng)用下的某個(gè)流),會把這個(gè)點(diǎn)播流下的視頻數(shù)據(jù)刪除掉。
如果請求的是一個(gè)直播流名稱,則會把這個(gè)直播流下的所有版本的錄制數(shù)據(jù)刪除。要刪除直播流的某個(gè)版本的錄制數(shù)據(jù),使用下一個(gè)接口(刪除錄制數(shù)據(jù))。
請求
streamMgr/?request=remove_stream&application=vod&stream=fk7cpizvhwshjnyu
application 應(yīng)用名
stream 流名稱
{
"code":0
}
請求
streamMgr/?request=remove_stream_version&application=liveshow&stream=yellow&version=31
application 應(yīng)用名
stream 流名稱
version 錄制版本號
{
"code":0
}
<div STYLE="page-break-after: always;"></div>
用途
查詢當(dāng)前時(shí)間在線的用戶數(shù)量,返回每個(gè)視頻流觀看用戶的總數(shù)。
請求
statMgr/?request=connection_count
{
"code":0,
"data":{
"count":1,
"items":[
{
"application":"live",
"stream":"live2",
"ver":"",
"count":1
}
]
}
}
返回當(dāng)前時(shí)間視頻流的收看用戶數(shù)。
application 應(yīng)用名
stream 流名稱
ver 版本號,如果是收看的直播回看數(shù)據(jù),會返回版本號
count 用戶數(shù)量
請求
statMgr/?request=connection_detail&application=live&stream=live2&version=
application 應(yīng)用名
stream 流名稱
version 版本號,如果要查看收看某個(gè)直播回看流的用戶數(shù),需要提供版本號參數(shù)
{
"code":0,
"data":{
"count":1,
"items":[
{
"cip":"192.168.1.88",
"sip":"192.168.1.230:1935",
"uid":"D48423AB19931A0A",
"sid":"D48423AB19931A0A",
"ver":"-1",
"format":"rtmp",
"type":"live",
"reg_time":"1516261938",
"start":"-1",
"offset":"-1"
}
]
}
}
返回在線用戶的明細(xì)數(shù)據(jù)。items元素下會包含0或多條記錄。
cip 客戶端ip
sip 服務(wù)器ip
uid 用戶唯一識別id,可以有應(yīng)用系統(tǒng)帶入
sid 每次訪問的唯一識別id
ver 訪問的哪個(gè)版本,對于視頻點(diǎn)播流沒有意義,對于回看流表示錄制版本號
reg_time 開始收看的時(shí)間,unix時(shí)間戳
start 從視頻的第幾秒開始收看,-1表示從視頻開頭處收看。單位 秒
offset 觀看到了第幾秒,該參數(shù)在用戶收看hls和flv格式視頻時(shí)有效。-1表示不支持或無法獲取該參數(shù)。
<div STYLE="page-break-after: always;"></div>
用途
將某個(gè)應(yīng)用設(shè)置為按需錄制應(yīng)用。
應(yīng)用被設(shè)置為按需錄制后,該應(yīng)用下的直播流默認(rèn)情況下不會被錄制,只有在收到開始錄制和停止錄制的指令后才會針對某個(gè)直播流開始錄制和停止錄制。
如果系統(tǒng)的全局配置參數(shù)中設(shè)置了不錄制視頻,直播流不會被錄制。具體參見“application相關(guān)接口”章節(jié)中的DVR相關(guān)接口。
按需錄制的接口,對于live應(yīng)用“live-”開頭的應(yīng)用無效。對于帶有NR符號的應(yīng)用和直播流也無效。
請求
demandDvr/?request=add_app&application=show
application 應(yīng)用名
{
"code":0
}
用途
撤銷某個(gè)應(yīng)用的按需錄制配置。即如果通過上一接口將某個(gè)應(yīng)用設(shè)置為按需錄制應(yīng)用,可以通過本接口撤銷這種設(shè)置。
請求
demandDvr/?request=del_app&application=show
application 應(yīng)用名
{
"code":0
}
用途
查詢所有被設(shè)置為按需錄制的應(yīng)用。
請求
demandDvr/?request=list_app
{
"code":0,
"data":{
"count":2,
"items":[
{
"application":"show1",
"time":1516264587
},
{
"application":"liveshow",
"time":1515742304
}
]
}
}
返回消息的items元素包含0或多條記錄。
application 應(yīng)用名
time 添加時(shí)間,unix時(shí)間戳
用途
對按需錄制應(yīng)用下的直播流,發(fā)送開始錄制指令。服務(wù)器收到指令后會開始錄制該直播流。
如果該直播流當(dāng)前時(shí)間正在直播,服務(wù)器收到指令后會立即開始錄制,直到收到停止錄制指令后才會停止錄制。
如果該直播流當(dāng)前時(shí)間沒有正在直播,服務(wù)器收到該指令后會保持錄制狀態(tài),一旦該直播流開始直播就會開始錄制。
{
"code":0
}
{
"code":0
}
請求
demandDvr/?request=list&application=show
application 應(yīng)用名,如果省略,表示查詢所有應(yīng)用下正在錄制的流。
{
"code":0,
"data":{
"count":2,
"items":{
"show5-112233":{
"application":"show5",
"stream":"112233",
},
"liveshow-live1":{
"application":"liveshow",
"stream":"live1",
}
}
}
}
items包含多個(gè)正在錄制流的列表。
application 應(yīng)用
stream 流
<div STYLE="page-break-after: always;"></div>
用途
針對某個(gè)應(yīng)用,開啟播出認(rèn)證。
開啟播出認(rèn)證后,所有播放該應(yīng)用下的視頻流的請求都需要做合法性認(rèn)證,只有認(rèn)證通過的請求才會允許播放。
認(rèn)證的方法包括token認(rèn)證、referer認(rèn)證和第三方認(rèn)證。
token認(rèn)證,就是為每個(gè)播出流配置一個(gè)認(rèn)證碼(token),播放終端只有獲得該認(rèn)證碼,并將該認(rèn)證碼作為播出請求的參數(shù)提交,才能夠正常播放視頻。
referer認(rèn)證,就是要求播放終端必須從某個(gè)域名下的網(wǎng)站發(fā)起播放請求,也就是只有將播出視頻嵌入到某個(gè)指定域名下的網(wǎng)站才允許播放。
第三方認(rèn)證,就是將認(rèn)證請求轉(zhuǎn)交給第三方系統(tǒng)的服務(wù)接口去認(rèn)證,認(rèn)證通過后才允許播放。開啟第三方認(rèn)證后,所有本地認(rèn)證策略會被忽略。
請求
authMgr/?request=open_play_auth&application=liveshow
application 應(yīng)用名
{
"code":0
}
請求
authMgr/?request=close_play_auth&application=liveshow
application 應(yīng)用名
{
"code":0
}
請求
authMgr/?request=open_play_token&application=liveshow&open=1
application 應(yīng)用名
open 是否開啟認(rèn)證,open=1表示開啟認(rèn)證,open=0表示關(guān)閉認(rèn)證
{
"code":0
}
請求
authMgr/?request=list_play_token&application=liveshow
application 應(yīng)用名
{
"code":0,
"data":{
"count":1,
"items":[
{
"application":"liveshow",
"stream":"live1",
"token":"8501E93883FC4D14",
"use_once":0
}
]
}
}
items元素包含當(dāng)前應(yīng)用下的token定義。
application 應(yīng)用名
stream 流名稱
token token值
請求
authMgr/?request=add_play_token&application=liveshow&stream=live1&token_val=8501E93883FC4D14
application 應(yīng)用名
stream 流名稱
token_val 添加的token值(注意這里使用token_val參數(shù)名,避免與接口認(rèn)證的token參數(shù)沖突)
{
"code":0
}
用途
刪除某個(gè)視頻流的token。
請求
authMgr/?request=delete_play_token&application=liveshow&stream=live1
application 應(yīng)用名
stream 流名稱
{
"code":0
}
用途
為某個(gè)應(yīng)用設(shè)置播出認(rèn)證referer值。
請求
authMgr/?request=set_referer&application=liveshow&url=play.ruiboyun.net;cloud.ruiboyun.net
application 應(yīng)用名
url 允許訪問的域名列表,多個(gè)域名之間使用半角分號隔開。如果要撤銷referer認(rèn)證,將url設(shè)為空即可。
{
"code":0
}
用途
將某個(gè)應(yīng)用下的播出認(rèn)證地址設(shè)置為一個(gè)第三方認(rèn)證地址。
設(shè)置第三方認(rèn)證地址后,所有本地認(rèn)證策略失效。
如果要取消第三方認(rèn)證,將url參數(shù)設(shè)置為空即可。
請求
authMgr/?request=set_play_auth_url&application=liveshow&url=http://i.ruiboyun.net/interface
application 應(yīng)用名
url 第三方認(rèn)證接口的url地址,本參數(shù)需要進(jìn)行【URL編碼】。
{
"code":0
}
請求
authMgr/?request=list
{
"code":0,
"data":{
"count":1,
"items":[
{
"application":"liveshow",
"is_play_auth":0,
"is_pub_auth":1,
"play_auth_url":null,
"pub_auth_url":"",
"referer":null,
"is_play_token_auth":0
}
]
}
}
items應(yīng)用下會返回多條記錄,每條記錄定義個(gè)應(yīng)用的認(rèn)證配置。
application 應(yīng)用名
is_play_auth 是否開啟播放認(rèn)證,0關(guān)閉,1開啟
is_pub_auth 是否開啟推流認(rèn)證,0關(guān)閉,1開啟
pub_auth_url 推流第三方認(rèn)證地址,null,"local","",或省略,都表示不使用第三方認(rèn)證
play_auth_url 播出第三方認(rèn)證地址,null,"local","",或省略,都表示不使用第三方認(rèn)證
referfer 允許播出的域名列表,多個(gè)域名之間使用半角分號隔開,該項(xiàng)僅對播出認(rèn)證有效
is_play_token_auth 是否開啟播出的token認(rèn)證,0關(guān)閉,1開啟,使用該選項(xiàng)是為了配合只使用referer認(rèn)證的情況,該項(xiàng)僅對播出認(rèn)證有效
<div STYLE="page-break-after: always;"></div>
用途
針對某個(gè)應(yīng)用,開啟推流認(rèn)證。
開啟推流認(rèn)證后,所有向該應(yīng)用下的推送直播流的請求都需要做合法性認(rèn)證,只有認(rèn)證通過的請求才會允許推送。
認(rèn)證的方法包括token認(rèn)證和第三方認(rèn)證。
token認(rèn)證,就是為每個(gè)直播流配置一個(gè)認(rèn)證碼(token),推流終端只有獲得該認(rèn)證碼,并將該認(rèn)證碼作為推流請求的參數(shù)提交,才能夠正常推送直播流。
第三方認(rèn)證,就是將認(rèn)證請求轉(zhuǎn)交給第三方系統(tǒng)的服務(wù)接口去認(rèn)證,認(rèn)證通過后才允許推送直播流。開啟第三方認(rèn)證后,所有本地認(rèn)證策略會被忽略。
請求
authMgr/?request=open_pub_auth&application=liveshow
application 應(yīng)用名
{
"code":0
}
請求
authMgr/?request=close_pub_auth&application=liveshow
application 應(yīng)用名
{
"code":0
}
用途
查詢某個(gè)應(yīng)用下推流認(rèn)證token的列表。
請求
authMgr/?request=list_pub_token&application=liveshow
application 應(yīng)用名
{
"code":0,
"data":{
"count":1,
"items":[
{
"application":"liveshow",
"stream":"live1",
"token":"9501E93993FC4D14",
"use_once":0
}
]
}
}
items元素包含當(dāng)前應(yīng)用下的token定義。
application 應(yīng)用名
stream 流名稱
token token值
請求
authMgr/?request=add_pub_token&application=liveshow&stream=live1&token_val=9501E93993FC4D14
application 應(yīng)用名
stream 流名稱
token_val 添加的token值(注意這里使用token_val參數(shù)名,避免與接口認(rèn)證的token參數(shù)沖突)
{
"code":0
}
用途
刪除某個(gè)視頻流的推流認(rèn)證token。
請求
authMgr/?request=delete_pub_token&application=liveshow&stream=live1
application 應(yīng)用名
stream 流名稱
{
"code":0
}
用途
將某個(gè)應(yīng)用下的推流認(rèn)證地址設(shè)置為一個(gè)第三方認(rèn)證地址。
設(shè)置第三方認(rèn)證地址后,所有本地認(rèn)證策略失效。
如果要取消第三方認(rèn)證,將url參數(shù)設(shè)置為空即可。
請求
authMgr/?request=set_pub_auth_url&application=liveshow&url=http://i.ruiboyun.net/interface
application 應(yīng)用名
url 第三方認(rèn)證接口的url地址,本參數(shù)需要進(jìn)行【URL編碼】。
{
"code":0
}
<div STYLE="page-break-after: always;"></div>
用途
查詢某個(gè)應(yīng)用的播出并發(fā)限制值。
如果一個(gè)應(yīng)用設(shè)置了并發(fā)限制值,當(dāng)訪問該應(yīng)用下視頻流的并發(fā)數(shù)超過該值時(shí),終端的播出請求會被禁止。
這個(gè)限制值是該應(yīng)用下所有視頻流的播出并發(fā)數(shù)總和限制值。
請求
limitMgr/?request=get&application=liveshow
application 應(yīng)用名,可以省略,省略時(shí)會返回所有應(yīng)用的配置信息。
{
"code":0,
"data":{
"count":1,
"items":[
{
"application":"liveshow",
"limit":100
}
]
}
}
application 應(yīng)用名
limit 限制值
用途
設(shè)置某個(gè)應(yīng)用的播出并發(fā)限制值。
如果要取消限制,將limit參數(shù)設(shè)為0。
請求
limitMgr/?request=set&application=liveshow&limit=100
application 應(yīng)用名
limit 限制值,該值有一個(gè)允許范圍,具體與服務(wù)器的發(fā)布版本有關(guān)
{
"code":0
}
application 應(yīng)用名
limit 限制值
<div STYLE="page-break-after: always;"></div>
用途
查詢服務(wù)器上的串流任務(wù)。
請求
streamingMgr/?request=get_streaming&id=
id 串流任務(wù)在服務(wù)器上的唯一編號,省略時(shí)會返回所有任務(wù)的列表。
{
"code":0,
"data":{
"count":2,
"items":[
{
"name":"監(jiān)控視頻",
"id":"BAF9B8E5BA819259",
"protocol":"rtsp",
"source_url":"rtsp://192.168.2.246:8555/H264SubStream",
"video_only":"on",
"use_transcode":"on",
"video_size":"1280x720",
"width":"1280",
"height":"720",
"bitrate":"500",
"use_audio_transcode":"on",
"bitrate_audio":"56",
"to_host":"localhost",
"application":"show",
"stream":"cameral1",
"status":0
},
{
"name":"本地文件串流",
"id":"D16E78096B55C850",
"protocol":"file",
"source_url":"file:///var/media/jgdy.mp4",
"to_host":"localhost",
"application":"liveshow",
"stream":"jgdy",
"status":0
}
]
}
}
items元素包含0個(gè)或多個(gè)串流任務(wù)。
name 串流的名稱,在添加任務(wù)時(shí)輸入
id 串流的唯一編號,在添加任務(wù)時(shí)系統(tǒng)自動分配,后續(xù)管理串流任務(wù)需要該id
protocol 輸入?yún)f(xié)議
source_url 視頻源地址
video_only 輸入源是否只有視頻,on表示只有視頻
audio_only 輸入源是否只有音頻,on表示只有音頻
use_transcode 是否啟動視頻轉(zhuǎn)碼,on表示啟動,off或者省略表示沒有轉(zhuǎn)碼
width 轉(zhuǎn)碼的輸出視頻畫面寬度,0表示保持輸入源畫幅大小
height 轉(zhuǎn)碼的輸出視頻畫面高度,0表示保持輸入源畫幅大小
bitrate 視頻轉(zhuǎn)碼的比特率,單位 kbps
use_audio_transcode 是否啟動音頻轉(zhuǎn)碼,on表示啟動,off或者省略表示沒有轉(zhuǎn)碼
bitrate_audio 音頻轉(zhuǎn)碼比特率 單位 kbps
to_host 串流的目標(biāo)服務(wù)器,省略或localhost都表示要串流到本服務(wù)器。如果要串流的其他服務(wù)器,該值為“other”,并使用參數(shù)to_server指示要串流的目標(biāo)服務(wù)器IP或域名。
to_server要串流其他服務(wù)器的IP或域名。
application 串流的目標(biāo)應(yīng)用名
stream 串流的目標(biāo)直播流名稱
status 串流任務(wù)狀態(tài) 0沒有運(yùn)行 1正在運(yùn)行 其他表示異常
用途
添加一個(gè)串流任務(wù)。
添加串流任務(wù)時(shí),要調(diào)用接口的客戶端提供一個(gè)唯一的任務(wù)id,該id可由字母和數(shù)字組成,用于在調(diào)用后續(xù)接口時(shí)識別該任務(wù)。
如果提供的id和已經(jīng)存在任務(wù)的id相同,則服務(wù)器會將該請求當(dāng)作修改串流任務(wù)處理。
請求
streamingMgr/?request=add_streaming&name=監(jiān)控視頻&id=BAF9B8E5BA819259&protocol=rtsp&source_url=rtsp%3a%2f%2f192.168.2.246%3a8555%2fH264SubStream&video_only=on&use_transcode=on&video_size=1280x720&width=1280&height=720&bitrate=500&use_audio_transcode=on&bitrate_audio=56&to_host=localhost&application=show&stream=cameral1
參數(shù):
id 任務(wù)唯一編號,應(yīng)由字母或數(shù)字組成,長度建議在6個(gè)字符以上,要避免重復(fù)
protocol 串流輸入源的協(xié)議,支持rtsp、rtmp、udp、http、mms等協(xié)議
source_url 串流輸入的源地址,該參數(shù)需要進(jìn)行【url編碼】
video_only 是否只有視頻,on 表示只有視頻,在只有視頻時(shí),所有音頻相關(guān)參數(shù)會被忽略
use_transcode 是否進(jìn)行視頻轉(zhuǎn)碼,on表示進(jìn)行轉(zhuǎn)碼,off或者省略表示不轉(zhuǎn)碼。如果不進(jìn)行視頻轉(zhuǎn)碼,所有視頻轉(zhuǎn)碼參數(shù)會被忽略
width 視頻轉(zhuǎn)碼輸出的畫面寬度,單位像素
height 視頻轉(zhuǎn)碼輸出的畫面高度,單位像素
bitrate 視頻轉(zhuǎn)碼輸出的比特率,單位kpbs
use_audio_transcode 是否進(jìn)行音頻轉(zhuǎn)碼,on表示進(jìn)行轉(zhuǎn)碼,off或者省略表示不轉(zhuǎn)碼。如果不進(jìn)行音頻轉(zhuǎn)碼,所有音頻轉(zhuǎn)碼參數(shù)會被忽略。
bitrate_audio 音頻轉(zhuǎn)碼比特率,單位kbps
to_host 串流的目標(biāo)服務(wù)器,省略或localhost都表示要串流到本服務(wù)器。
如果要串流的其他服務(wù)器,該值為“other”,并使用參數(shù)to_server指示要串流的目標(biāo)服務(wù)器IP或域名。
to_server要串流其他服務(wù)器的IP或域名,要是本參數(shù)生效,必須將to_host值設(shè)為other。
application 串流輸出的應(yīng)用名,定義向服務(wù)器的哪個(gè)應(yīng)用輸出直播流
stream 串流輸出的直播流名稱
{
"code":0
}
用途
啟動一個(gè)串流任務(wù)。
添加完串流任務(wù)后,可以調(diào)用該接口運(yùn)行任務(wù)。
請求
streamingMgr/?request=start_streaming&id=BAF9B8E5BA819259
id 串流任務(wù)的唯一編號,可以通過查詢串流任務(wù)接口獲得。
{
"code":0
}
用途
停止一個(gè)串流任務(wù)。
請求
streamingMgr/?request=stop_streaming&id=8A9B587159245ED5
id 串流任務(wù)的唯一編號,可以通過查詢串流任務(wù)接口獲得。
{
"code":0
}
用途
刪除一個(gè)串流任務(wù)。
請求
streamingMgr/?request=remove_streaming&id=8A9B587159245ED5
id 串流任務(wù)的唯一編號,可以通過查詢串流任務(wù)接口獲得。
{
"code":0
}
<div STYLE="page-break-after: always;"></div>
用途
查詢服務(wù)器上的自動刪除任務(wù)。
自動刪除任務(wù)是一種運(yùn)行在服務(wù)器上的服務(wù),按照定義的規(guī)則自動刪除過期的視頻內(nèi)容。例如,對于監(jiān)控和視頻直播類業(yè)務(wù),可以定義一個(gè)任務(wù),定期刪除某個(gè)直播流30天前的錄制內(nèi)容。
請求
autodelMgr/?request=get&application=&stream=
application 應(yīng)用名,可以省略,省略時(shí)表示查詢所有應(yīng)用下的自動刪除任務(wù)。
stream 直播流名,可以省略,省略時(shí)表示查詢某個(gè)應(yīng)用下的所有自動刪除任務(wù)。
{
"code":0,
"data":{
"count":1,
"items":[
{
"application":"liveshow",
"stream":"hks",
"timeline":"3600"
}
]
}
}
application 應(yīng)用名
stream 直播流名
timeline 視頻保留的時(shí)間長度,單位秒,例如,3600表示保存1小時(shí)內(nèi)的節(jié)目
用途
新建一個(gè)自動刪除任務(wù)。
請求
autodelMgr/?request=set&application=liveshow&stream=live1&timeline=86400
application 應(yīng)用名,【必選】
stream 直播流名,【必選】
timeline 視頻保留的時(shí)間長度,單位秒,【必選】,例如,86400表示保存1天內(nèi)的節(jié)目
如果應(yīng)用名和直播流名和已有任務(wù)的都一樣,則會覆蓋已有的任務(wù)。
{
"code":0
}
用途
刪除一個(gè)自動刪除任務(wù)。
請求
autodelMgr/?request=remove&application=liveshow&stream=live1
application 應(yīng)用名,【必選】
stream 直播流名,【必選】
{
"code":0
}
<div STYLE="page-break-after: always;"></div>
這組接口實(shí)現(xiàn)視頻資源的上傳及管理,為視頻轉(zhuǎn)碼和發(fā)布提供支持。
上傳的服務(wù)器上的視頻文件,經(jīng)過轉(zhuǎn)碼發(fā)布后形成可以對外播出的在線視頻資源。
本小節(jié)描述文件上傳和管理的接口,轉(zhuǎn)碼接口在下一章節(jié)說明。
請求
http://host/upload?app=g3_video&sub_path=&file_name=&token=abcd&field_name=field_abcd
其中:
http://host/upload 是上傳位置,保持不變。host替換成實(shí)際的流媒體服務(wù)器IP地址或域名。
參數(shù):
app=g3_video,表示上傳的是視頻文件,要保持不變。
sub_path表示上傳到哪個(gè)子目錄下,如果省略表示上傳到用戶根目錄下。
file_name上傳文件要在服務(wù)器上保存的文件名,如果跟上傳文件名一樣,則省略。該參數(shù)提供了一個(gè)上傳文件在服務(wù)器上重新命名的機(jī)會。中文件名要采用UTF-8編碼。
token意義跟其他接口一樣。
{
"code":0
}
{
"code":0,
"data":{
"page":"1",
"page_size":"50",
"pages":"1",
"total":"1",
"count":1,
"items":[{
"filename":"案例視頻8.mp4",
"mtime":"2018-01-12 12:43",
"size":"3153954",
"charset":"UTF-8",
"timestamp":1515732410,
"is_media":1,
"duration":98,
"bitrate":255309,
"stream_number":2,
"timestamp_m":1515397208,
"streams":[
{
"index":"0",
"type":"video",
"codec":"h364",
"pic_width":640,
"pic_height":352,
"bitrate":208980,
"duration":98,
"pix_fmt":"yuv420p",
"frame_rate":"28/1"
},
{
"index":"1",
"type":"audio",
"codec":"aac",
"lan":"und",
"channels":1,
"bitrate":43970,
"duration":98,
"sample_rate":44100
}
]
}]
}
}
返回?cái)?shù)據(jù)包含分頁信息,在文件量較大時(shí)要按頁查詢。
items元素包含0或多個(gè)文件信息。streams元素是該文件包含的音視頻流信息,一個(gè)多媒體文件會包含1到多個(gè)音視頻流
filename 文件名,返回的文件名總是采用UTF-8編碼
charset 文件名在服務(wù)器上的字符集編碼,省略表示是UTF-8編碼。如果為非UTF-8編碼,在后續(xù)的接口中請將該屬性帶入
mtime 文件最后的修改時(shí)間
size 文件大小,單位字節(jié)
duration 文件播出時(shí)長,單位秒
bitrate 綜合碼率,單位bps
stream_number 文件包含的音視頻流總數(shù)
streams元素:
streams包含0或多個(gè)音視頻流,屬性:
index 流的索引編號,在轉(zhuǎn)碼接口中,在多語言音頻流的情況下,可以通過傳入音頻流索引號選擇指定的音頻流。
type 視頻或音頻,對應(yīng) video 或 audio
codec 流編碼格式,例如視頻h364編碼,音頻aac編碼等
bitrate 流的比特率,單位bps
pix_fmt 視頻幀格式
frame_rate 幀率
pic_width 視頻畫幅寬度
pic_height 視頻畫幅高度
lan 音頻語言信息,語言編碼縮寫
channels 音頻聲道數(shù)
sample_rate音頻采樣率
{
"code":0,
"data":{
"count":2,
"items":[
{
"filename":"auto",
"mtime":"2018-01-06 16:36",
"size":"4096",
"timestamp":0,
"auto_transcode":1
},
{
"filename":"audio",
"mtime":"2017-12-27 18:09",
"size":"4096",
"timestamp":0,
"auto_transcode":0
}]
}
}
items元素包含0或多個(gè)目錄信息。
filename 目錄名
mtime 最后修改時(shí)間
auto_transcode 是否針對該目錄設(shè)置了自動轉(zhuǎn)碼任務(wù),1表示有自動轉(zhuǎn)碼任務(wù)
{
"code":0,
"data":{
"count":1,
"items":[
{
"filename":"/案例視頻8.mp4",
"charset":"UTF-8",
"mtime":1515732213,
"size":3153954,
"timestamp":1516941450,
"is_media":1,
"duration":98,
"bitrate":255309,
"stream_number":2,
"timestamp_m":1515397208,
"streams":[
{
"index":"0",
"type":"video",
"codec":"h364",
"pic_width":640,
"pic_height":352,
"bitrate":208980,
"duration":98,
"pix_fmt":"yuv420p",
"frame_rate":"28/1"
},
{
"index":"1",
"type":"audio",
"codec":"aac",
"lan":"und",
"channels":1,
"bitrate":43970,
"duration":98,
"sample_rate":44100
}
]
}
]
}
}
返回一個(gè)文件的信息,包含多媒體信息。
返回?cái)?shù)據(jù)的文件信息的描述與查詢文件列表接口中對文件信息的描述相同。
{
"code":0
}
<div STYLE="page-break-after: always;"></div>
用途
對上傳到服務(wù)器上的視頻進(jìn)行轉(zhuǎn)碼,轉(zhuǎn)碼后可以面向互聯(lián)網(wǎng)或局域網(wǎng)發(fā)布播出。
參數(shù)說明:
src 輸入文件名,如果文件在轉(zhuǎn)碼目錄的下級子目錄內(nèi),則需要包含該子目錄,如: subdir/myvideo.mp4。中文文件名參數(shù)使用UTF-8字符集編碼。
encoding 輸入文件名在服務(wù)器上的實(shí)際字符集編碼。如果是UTF-8可以省略。
src_id 轉(zhuǎn)碼后輸出資源的資源編號,由轉(zhuǎn)碼方提供(可以和集成的業(yè)務(wù)系統(tǒng)關(guān)聯(lián)對應(yīng)),只能包含英文字符和數(shù)字,要確保其唯一性。這個(gè)編號就是資源在流媒體服務(wù)器上的播出流名稱,可以使用該編號獲取播出視頻流。
application 應(yīng)用名,定義轉(zhuǎn)碼結(jié)束后資源發(fā)布到流媒體服務(wù)器上的哪個(gè)應(yīng)用下。該應(yīng)用名和流名稱(對應(yīng)src_id)可以確定一個(gè)資源的播出地址。
video_bitrate 視頻轉(zhuǎn)碼的比特率,單位Kbps,如果省略表示不對視頻進(jìn)行轉(zhuǎn)碼。只有視頻格式是H264,并且碼率大小適合播出(如在2Mbps以下),才可以省略該參數(shù)。
audio_bitrate 音頻轉(zhuǎn)碼的比特率,單位Kbps,如果省略表示不對音頻進(jìn)行轉(zhuǎn)碼。只有音頻格式是AAC,并且碼率大小適合播出(如在100Kbps以下),才可以省略該參數(shù)。
width 視頻轉(zhuǎn)碼輸出的畫面寬度,省略或者設(shè)為0表示不改變畫幅,使用原始視頻的畫幅大小。
height 視頻轉(zhuǎn)碼輸出的畫面高度,省略或者設(shè)為0表示不改變畫幅,使用原始視頻的畫幅大小。
deinterlace 對于隔行掃描的視頻畫面,該參數(shù)定義是否進(jìn)行畫面的反交錯(cuò)處理,ON表示要進(jìn)行反交錯(cuò),OFF或者省略表示不進(jìn)行反交錯(cuò)處理。
audio_stream 音頻流索引號,對于多語言的多媒體提文件,會包含多個(gè)語言的音頻流,使用該參數(shù)可以選擇一種語言輸出。不清楚怎么使用時(shí),請省略該參數(shù),大部分情況下不需要提供。
output_formats 轉(zhuǎn)碼輸出格式,可以是flv,hls,mp4格式的一種或幾種,多種格式使用分號隔開。省略該參數(shù)時(shí)將會使用系統(tǒng)配置的歸檔格式參數(shù)。
callback 可選參數(shù)。轉(zhuǎn)碼結(jié)果回調(diào)接口位置,該參數(shù)是一個(gè)HTTP地址,轉(zhuǎn)碼結(jié)束后系統(tǒng)使用HTTP Get向該地址匯報(bào)轉(zhuǎn)碼結(jié)果。調(diào)用回調(diào)接口時(shí),系統(tǒng)會在回調(diào)接口URL上附加上資源編號參數(shù)src_id
和轉(zhuǎn)碼結(jié)果參數(shù)result
,result=ok
表示轉(zhuǎn)碼成功,result=error
表示轉(zhuǎn)碼失敗。
publish 可選參數(shù)。如果需要將轉(zhuǎn)碼輸出的視頻信息發(fā)布到第三方系統(tǒng),可以提供發(fā)布地址,轉(zhuǎn)碼結(jié)束后會將視頻信息提交給該地址。如果沒有該需求,請省略該參數(shù)和title參數(shù)。
title 如果要進(jìn)行轉(zhuǎn)碼信息發(fā)布,可以提供一個(gè)發(fā)布的標(biāo)題。
{
"code":0
}
{
"code":0,
"data":{
"count":1,
"items":[
{
"status":"working",
"src_file":"案例視頻8.mp4",
"application":"vod",
"bitrate":"800",
"width":"640",
"height":"352",
"bitrate_audio":"56",
"src_id":"8ass3",
"add_time":"1516947498",
"from":null,
"start_time":"1516947498",
"encode_progress":"1.0%",
"work_duration":1
}
]
}
}
返回0或多個(gè)轉(zhuǎn)碼任務(wù)的進(jìn)度信息。
src_file 轉(zhuǎn)碼文件名
application 輸出應(yīng)用名
src_id 資源編號
start_time 開始轉(zhuǎn)碼時(shí)間,Unix時(shí)間戳
encode_progress 轉(zhuǎn)碼進(jìn)度,百分比格式
work_duration 轉(zhuǎn)碼持續(xù)時(shí)間,單位秒
bitrate 視頻轉(zhuǎn)碼碼率,Kbps
bitrate_audio 音頻轉(zhuǎn)碼碼率,Kpbs
width 轉(zhuǎn)碼輸出畫幅寬度
height 轉(zhuǎn)碼輸出畫幅高度
請求
transcodeMgr/?request=stop_transcode&src_id=8ass3
src_id 轉(zhuǎn)碼任務(wù)的資源編號,由轉(zhuǎn)碼接口傳入。
{
"code":0
}
<div STYLE="page-break-after: always;"></div>
管理系統(tǒng)中的管理員帳號。
備注: 如果傳入的name在系統(tǒng)中存在同名用戶,則會用新的信息替換原有信息,相當(dāng)于“修改”用戶。
暫不支持
請求
userAuth/?request=functions
響應(yīng)
{
"code": 0,
"data": {
"count": 17,
"items": [
{
"controller": "loginWeb",
"name": "登錄管理平臺"
},
{
"controller": "appMgr",
"name": "管理應(yīng)用"
},
{
"controller": "streamMgr",
"name": "管理播出流"
},
{
"controller": "authMgr",
"name": "管理播出/推流認(rèn)證"
},
{
"controller": "streamingMgr",
"name": "管理串流"
},
{
"controller": "streamingMgr2",
"name": "管理監(jiān)控接入"
},
{
"controller": "closedStream",
"name": "關(guān)閉/開啟直播流"
},
{
"controller": "demandDvr",
"name": "執(zhí)行按需錄制"
},
{
"controller": "limitMgr",
"name": "設(shè)置并發(fā)限制"
},
{
"controller": "autodelMgr",
"name": "設(shè)置自動刪除"
},
{
"controller": "set_domain",
"name": "設(shè)置本機(jī)域名"
},
{
"controller": "cdnMgr",
"name": "配置CDN"
},
{
"controller": "statMgr",
"name": "播出統(tǒng)計(jì)和明細(xì)"
},
{
"controller": "transcodeMgr",
"name": "管理轉(zhuǎn)碼"
},
{
"controller": "fileMgr",
"name": "管理轉(zhuǎn)碼文件(上傳和管理資源文件)"
},
{
"controller": "systemMgr",
"name": "重啟服務(wù)"
},
{
"controller": "cms_module",
"name": "使用內(nèi)容管理模塊(如果安裝)"
}
]
}
}
<div STYLE="page-break-after: always;"></div>
本接口實(shí)現(xiàn)錄制rtmp協(xié)議的直播流。
請求
recorderMgr/?request=add&id=8ass3&duration=120&input=rtmp://ip/app/stream
id 任務(wù)的唯一編號,由調(diào)用接口方傳入,用于識別一個(gè)任務(wù)。
input 要錄制的直播地址
duration 錄制時(shí)長,秒
img_int 截圖間隔,秒
callback 回調(diào)地址,如果有回調(diào)地址,錄制結(jié)束后將回調(diào)該URL地址。
響應(yīng)
{
"code":0
}
回調(diào)說明
如果提供了callback參數(shù),錄制結(jié)束后將會請求該地址。
系統(tǒng)將使用POST協(xié)議向該地址發(fā)送任務(wù)執(zhí)行的情況。POST數(shù)據(jù)是一個(gè)json串,json結(jié)構(gòu)如下:
{
"id":"abcd",
"result":"OK",
"start":"1516947498",
"review_url":0,
"images":[
{
"offset":0,
"url":"imageurl"
},
]
}
id 任務(wù)編號,有添加任務(wù)時(shí)傳入
result 錄制結(jié)果,OK 或 ERROR
start 開始錄制時(shí)間,UNIX時(shí)間戳
review_url 回看地址
images 截圖數(shù)組
offset 截圖時(shí)間,相對于開始錄制時(shí)間的秒數(shù)。
url 截圖地址
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。