溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

NTV Media Server G3 API All in One

發(fā)布時(shí)間:2020-06-29 08:12:50 來源:網(wǎng)絡(luò) 閱讀:871 作者:sendoffice 欄目:開發(fā)技術(shù)

NTV Media Server G3 API Specification

Version 3.6.500
Jan. 16, 2019
版權(quán)所有2019 云視睿博 NovelTV Inc. 保留所有權(quán)利。


<div STYLE="page-break-after: always;"></div>

1.概述

1.1.用途及閱讀方法

遠(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é)即可。

1.2.適用版本

本文檔定義的接口規(guī)范,對版本號大于等于3.6.500的流媒體服務(wù)器系統(tǒng)有效。
較低版本服務(wù)器,繼續(xù)使用對應(yīng)版本的接口規(guī)范。

1.3.通信協(xié)議

本規(guī)范中,流媒體服務(wù)器是通信的服務(wù)器端(簡稱“服務(wù)器”),調(diào)用接口的其他系統(tǒng)是通信客戶端(簡稱“客戶端”)??蛻舳撕头?wù)器通過HTTP協(xié)議通信,客戶端使用HTTP Get向服務(wù)器發(fā)送請求,服務(wù)器返回json格式的業(yè)務(wù)數(shù)據(jù)或操作結(jié)果給客戶端。

1.4.接口請求

接口的請求地址是個(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ī)范。

1.5.接口響應(yīng)

服務(wù)器在收到接口請求后,首先判斷token的正確性,如果token錯(cuò)誤,則返回認(rèn)證錯(cuò)誤的消息給客戶端。如果token正確,服務(wù)器返回json格式的文本內(nèi)容給客戶端。返回給客戶端的json文本描述了服務(wù)器對請求的處理結(jié)果和響應(yīng)數(shù)據(jù)。

1.6.接口安全

客戶端必須首先通過身份認(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值。

1.7.URL編碼

當(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編碼。

1.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ù)可以接受但尚未被使用。

1.9.返回消息結(jié)構(gòu)

返回的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.10.參考

[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>

2.登錄認(rèn)證

客戶端調(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ò)誤信息。

2.1.login1接口

  • 用途
    客戶端向服務(wù)器申請進(jìn)行身份認(rèn)證,服務(wù)器返回“挑戰(zhàn)字符串”給客戶端。
  • 請求
    userAuth/?request=login1&username=admin
    username 登錄服務(wù)器的用戶名。
  • 響應(yīng)
    {
    "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)證。

2.2.login2接口

  • 用途
    對login1接口返回“挑戰(zhàn)字符串”進(jìn)行hash運(yùn)算,將運(yùn)算結(jié)果提交給服務(wù)器,進(jìn)行身份合法性認(rèn)證。
  • 請求
    userAuth/?request=login2&username=admin&hash=8c96202be3da1b23a96c4c838eb34d93
    username 登錄服務(wù)器的用戶名。
    hash是使用用戶密碼和挑戰(zhàn)字符串作為輸入計(jì)算出的md5摘要值(hash),算法如下:
    hash=md5(md5(password)+challenge_code)
    算法描述:首先計(jì)算出密碼的hash值,然后在生成的密碼hash值尾部拼接上挑戰(zhàn)字符串形成新的字符串,最后計(jì)算這個(gè)新字符串的hash值。
    hash算法采用md5算法,生成的摘要采用16進(jìn)制編碼,編碼生成的字符采用小寫字母。
    例如,字符串111111的hash值是 96e79218965eb72c92a549dd5a330112
  • 響應(yīng)
    {
    "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ò)誤描述。

2.3.logout接口

  • 用途
    退出登錄,服務(wù)器銷毀用戶登錄信息,作廢“token”。
    建議客戶端在退出系統(tǒng)時(shí)總是調(diào)用該接口。
  • 請求
    userAuth/?request=logout&token=vvkphp5ca79c538n
  • 響應(yīng)
    {
    "code":0,
    }

<div STYLE="page-break-after: always;"></div>

3.application管理接口

3.1.查詢應(yīng)用接口

  • 用途
    查詢服務(wù)器上的應(yīng)用(application)。

  • 請求
    appMgr/?request=get&token=abce
    token 是在登錄認(rèn)證接口中獲得的token值。后續(xù)接口描述中將省略對token參數(shù)的描述,但是要記住token參數(shù)是必須的。

  • 響應(yīng)
    {
    "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或省略不允許

3.2.查詢DVR配置接口

  • 用途
    查詢應(yīng)用的DVR配置參數(shù)。
    流媒體服務(wù)器的DVR功能可以將直播流在服務(wù)器上進(jìn)行錄制保存,DVR配置參數(shù)定義了保存的行為。
    系統(tǒng)有全局DVR配置參數(shù),默認(rèn)情況下會對每個(gè)應(yīng)用生效。
    如果一個(gè)應(yīng)用(application)沒有DVR配置參數(shù),則會使用全局配置參數(shù)。
    如果對一個(gè)應(yīng)用配置了部分DVR參數(shù),沒有配置的參數(shù)依然會使用全局配置參數(shù)。
  • 請求
    appMgr/?request=get_dvr_paras&application=
    application 應(yīng)用名,如果沒有指定應(yīng)用名,則會查詢?nèi)峙渲脜?shù)。
  • 響應(yīng)
{
    "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" 表示使用的是全局配置。

3.3.開啟DVR功能

  • 用途
    開啟DVR功能。
    系統(tǒng)暫不支持針對某個(gè)應(yīng)用開啟和關(guān)閉DVR功能,也不支持針對某個(gè)應(yīng)用配置其他DVR參數(shù)。DVR的開啟、關(guān)閉和修改配置參數(shù)會對所有應(yīng)用生效。
  • 請求
    appMgr/?request=open_dvr
  • 響應(yīng)
    {
    "code":0
    }

3.4.關(guān)閉DVR功能

  • 用途
    關(guān)閉DVR功能。
  • 請求
    appMgr/?request=close_dvr
  • 響應(yīng)
    {
    "code":0
    }

3.5.設(shè)置DVR保存格式

  • 用途
    設(shè)置DVR保存格式,可以設(shè)置直播流在流媒體服務(wù)器上以一種或多種格式保存。
  • 請求
    appMgr/?request=set_dvr_format&formats=flv;hls;mp4
    format 設(shè)置的歸檔格式,多種格式用半角分號分開。flv 保存flv格式;hls保存hls切片格式;mp4保存mp4格式。
  • 響應(yīng)
    {
    "code":0
    }

<div STYLE="page-break-after: always;"></div>

4.直播流相關(guān)接口

4.1.查詢活動的視頻流

  • 用途
    查詢活動的視頻流,即正在直播中的視頻流。

  • 請求
    streamMgr/?request=get_active_streams

  • 響應(yīng)
    {
    "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í)間戳

4.2.關(guān)閉并禁用直播流

  • 用途
    關(guān)閉一個(gè)直播流,并將該直播流設(shè)為禁用狀態(tài)。
    調(diào)用該接口后,直播流會被立即關(guān)閉,直播客戶端和播放客戶端的連接都會中斷。關(guān)閉后的直播流會被禁止再次推流,除非調(diào)用后續(xù)接口解除禁用。
  • 請求
    closedStream/?request=close&application=live&stream=live2
    application 應(yīng)用名
    stream 直播流名稱

  • 響應(yīng)
    {
    "code":0
    }

4.3.解除禁用的直播流

  • 用途
    解除在上一接口中被關(guān)閉和禁用的直播流,解除后直播流可以允許推流直播。

  • 請求
    closedStream/?request=open&application=live&stream=live2
    application 應(yīng)用名
    stream 直播流名稱

  • 響應(yīng)
    {
    "code":0
    }

4.4.查詢被禁用的直播流

  • 用途
    查詢被關(guān)閉并被禁用的直播流。
  • 請求
    closedStream/?request=list

  • 響應(yīng)

{
    "code":0,
    "data":{
        "count":1,
        "items":[
            {
                "application":"liveshow",
                "stream":"live1",
                "time":1516274119
            }
        ]
    }
}

items元素下包含被禁用的直播流列表。
application 應(yīng)用名
stream 直播流名稱
time 禁用時(shí)間,unix時(shí)間戳

4.5.關(guān)閉直播流(不禁用)

  • 用途
    關(guān)閉一個(gè)直播流,但是不禁用,推流客戶端可以再次推流進(jìn)來。
    調(diào)用該接口后,直播流會被立即關(guān)閉,直播客戶端和播放客戶端的連接都會中斷。
  • 請求
    streamMgr/?request=close_active_stream&application=live&stream=live2
    application 應(yīng)用名
    stream 直播流名稱

響應(yīng)

{
    "code":0
}

<div STYLE="page-break-after: always;"></div>

5.點(diǎn)播流相關(guān)接口

5.1.查詢點(diǎn)播流

  • 用途
    查詢某個(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é)將不再對分頁屬性做解釋。

  • 響應(yīng)
    {
    "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格式中的一種或多種。

5.2.查詢直播流錄制數(shù)據(jù)

  • 用途
    查詢某個(gè)直播流的錄制數(shù)據(jù),錄制數(shù)據(jù)也是一種點(diǎn)播流,是錄制直播流形成的點(diǎn)播數(shù)據(jù)。
    一個(gè)直播流每次啟停都會生一份錄制數(shù)據(jù),多次啟停后會在一個(gè)直播流下生成多份錄制數(shù)據(jù)。直播流的錄制數(shù)據(jù)使用版本號區(qū)分,版本號從0開始,每生成一個(gè)新文件版本號會增1。
  • 請求
    streamMgr/?request=get_stream_files&application=liveshow&stream=jgdy&pageno=1&page_size=20
    application 應(yīng)用名
    stream 直播流名稱
    pageno 頁碼
    page_size 分頁大小

  • 響應(yīng)
    {
    "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格式中的一種或多種。

5.3.刪除視頻流

  • 用途
    刪除一個(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 流名稱

  • 響應(yīng)
    {
    "code":0
    }

5.4.刪除錄制數(shù)據(jù)

  • 用途
    刪除某個(gè)直播流的某個(gè)版本的錄制數(shù)據(jù)。
    要刪除所有版本的錄制數(shù)據(jù),請使用上一接口(刪除視頻流);
  • 請求
    streamMgr/?request=remove_stream_version&application=liveshow&stream=yellow&version=31
    application 應(yīng)用名
    stream 流名稱
    version 錄制版本號

  • 響應(yīng)
    {
    "code":0
    }

<div STYLE="page-break-after: always;"></div>

6.查看在線用戶

6.1.查詢在線用戶

  • 用途
    查詢當(dāng)前時(shí)間在線的用戶數(shù)量,返回每個(gè)視頻流觀看用戶的總數(shù)。
    請求
    statMgr/?request=connection_count

  • 響應(yīng)
    {
    "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ù)量

6.2.查詢在線用戶明細(xì)

  • 用途
    查詢當(dāng)前時(shí)間正在播放某個(gè)視頻流的用戶明細(xì),包括用戶的終端IP和使用的播放協(xié)議。
  • 請求
    statMgr/?request=connection_detail&application=live&stream=live2&version=
    application 應(yīng)用名
    stream 流名稱
    version 版本號,如果要查看收看某個(gè)直播回看流的用戶數(shù),需要提供版本號參數(shù)

  • 響應(yīng)
    {
    "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>

7 按需錄制直播流

7.1.定義按需錄制的應(yīng)用

  • 用途
    將某個(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)用名

  • 響應(yīng)
    {
    "code":0
    }

7.2.撤銷按需錄制的應(yīng)用

  • 用途
    撤銷某個(gè)應(yīng)用的按需錄制配置。即如果通過上一接口將某個(gè)應(yīng)用設(shè)置為按需錄制應(yīng)用,可以通過本接口撤銷這種設(shè)置。

  • 請求
    demandDvr/?request=del_app&application=show
    application 應(yīng)用名

  • 響應(yīng)
{
    "code":0
}

7.3.查詢按需錄制的應(yīng)用

  • 用途
    查詢所有被設(shè)置為按需錄制的應(yīng)用。

  • 請求
    demandDvr/?request=list_app

  • 響應(yīng)
        {
                "code":0,
                "data":{
                        "count":2,
                        "items":[
                                {
                                        "application":"show1",
                                        "time":1516264587
                                },
                                {
                                        "application":"liveshow",
                                        "time":1515742304
                                }
                        ]
                }
        }

    返回消息的items元素包含0或多條記錄。
    application 應(yīng)用名
    time 添加時(shí)間,unix時(shí)間戳

7.4.開始錄制

  • 用途
    對按需錄制應(yīng)用下的直播流,發(fā)送開始錄制指令。服務(wù)器收到指令后會開始錄制該直播流。
    如果該直播流當(dāng)前時(shí)間正在直播,服務(wù)器收到指令后會立即開始錄制,直到收到停止錄制指令后才會停止錄制。
    如果該直播流當(dāng)前時(shí)間沒有正在直播,服務(wù)器收到該指令后會保持錄制狀態(tài),一旦該直播流開始直播就會開始錄制。

  • 請求
    demandDvr/?request=start&application=liveshow&stream=live1
    application 應(yīng)用名
    stream 直播流名稱
  • 響應(yīng)
    {
    "code":0
    }

7.5.停止錄制

  • 用途
    對按需錄制應(yīng)用下的直播流,發(fā)送停止錄制指令。服務(wù)器收到指令后會停止錄制該直播流。
  • 請求
    demandDvr/?request=stop&application=liveshow&stream=live1
    application 應(yīng)用名
    stream 直播流名稱
  • 響應(yīng)
    {
    "code":0
    }

7.6.查看正在錄制的流

  • 用途
    對按需錄制應(yīng)用下的直播流,發(fā)送停止錄制指令。服務(wù)器收到指令后會停止錄制該直播流。
  • 請求
    demandDvr/?request=list&application=show
    application 應(yīng)用名,如果省略,表示查詢所有應(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>

8 播出認(rèn)證相關(guān)接口

8.1.開啟播出認(rèn)證

  • 用途
    針對某個(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)用名

  • 響應(yīng)
    {
    "code":0
    }

8.2.關(guān)閉播出認(rèn)證

  • 用途
    針對某個(gè)應(yīng)用,關(guān)閉播出認(rèn)證。關(guān)閉后播放該應(yīng)用下的視頻流不需要做認(rèn)證。
  • 請求
    authMgr/?request=close_play_auth&application=liveshow
    application 應(yīng)用名

  • 響應(yīng)
    {
    "code":0
    }

8.3.開啟和關(guān)閉播出token認(rèn)證

  • 用途
    針對某個(gè)應(yīng)用,開啟和關(guān)閉播出token認(rèn)證方式。
    設(shè)置該參數(shù)是為了迎合僅使用referer認(rèn)證情況。
  • 請求
    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)證

  • 響應(yīng)
    {
    "code":0
    }

8.4.查詢播出token

  • 用途
    查詢某個(gè)應(yīng)用下播出認(rèn)證token的列表。
    每個(gè)token設(shè)置到一個(gè)視頻流上,播放客戶端訪問該視頻流需要給出正確的token值。
  • 請求
    authMgr/?request=list_play_token&application=liveshow
    application 應(yīng)用名

  • 響應(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值

8.5.添加播出token

  • 用途
    為視頻流添加播出認(rèn)證token。
    每個(gè)token設(shè)置到一個(gè)視頻流上,播放客戶端訪問該視頻流需要給出正確的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ù)沖突)

  • 響應(yīng)
    {
    "code":0
    }

8.6.刪除播出token

  • 用途
    刪除某個(gè)視頻流的token。

  • 請求
    authMgr/?request=delete_play_token&application=liveshow&stream=live1
    application 應(yīng)用名
    stream 流名稱

  • 響應(yīng)
    {
    "code":0
    }

8.7.設(shè)置播出認(rèn)證的referer值

  • 用途
    為某個(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è)為空即可。

  • 響應(yīng)
    {
    "code":0
    }

8.8.設(shè)置第三方播出認(rèn)證地址

  • 用途
    將某個(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編碼】。

  • 響應(yīng)
    {
    "code":0
    }

8.9.查詢播出和推流認(rèn)證配置

  • 用途
    查詢服務(wù)器上播出和推流認(rèn)證的配置情況。本接口會返回所有應(yīng)用的認(rèn)證配置信息,包括推流認(rèn)證和播放認(rèn)證的配置信息。
  • 請求
    authMgr/?request=list

  • 響應(yīng)
    {
    "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>

9 推流認(rèn)證相關(guān)接口

9.1.開啟推流認(rèn)證

  • 用途
    針對某個(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)用名

  • 響應(yīng)
    {
    "code":0
    }

9.2.關(guān)閉推流認(rèn)證

  • 用途
    針對某個(gè)應(yīng)用,關(guān)閉推流認(rèn)證。關(guān)閉后向該應(yīng)用推送視頻流不需要做認(rèn)證。
  • 請求
    authMgr/?request=close_pub_auth&application=liveshow
    application 應(yīng)用名

  • 響應(yīng)
    {
    "code":0
    }

9.3.查詢推流token

  • 用途
    查詢某個(gè)應(yīng)用下推流認(rèn)證token的列表。

  • 請求
    authMgr/?request=list_pub_token&application=liveshow
    application 應(yīng)用名

  • 響應(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值

9.4.添加推流token

  • 用途
    為視頻流添加推流認(rèn)證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ù)沖突)

  • 響應(yīng)
    {
    "code":0
    }

9.5.刪除推流token

  • 用途
    刪除某個(gè)視頻流的推流認(rèn)證token。

  • 請求
    authMgr/?request=delete_pub_token&application=liveshow&stream=live1
    application 應(yīng)用名
    stream 流名稱

  • 響應(yīng)
    {
    "code":0
    }

9.6.設(shè)置第三方推流認(rèn)證地址

  • 用途
    將某個(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編碼】。

  • 響應(yīng)
    {
    "code":0
    }

<div STYLE="page-break-after: always;"></div>

10 并發(fā)限制相關(guān)接口

10.1.查詢并發(fā)限制配置

  • 用途
    查詢某個(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)用的配置信息。

  • 響應(yīng)
    {
    "code":0,
    "data":{
        "count":1,
        "items":[
            {
                "application":"liveshow",
                "limit":100
            }
        ]
    }
    }

    application 應(yīng)用名
    limit 限制值

10.2.設(shè)置并發(fā)限制值

  • 用途
    設(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)

  • 響應(yīng)
    {
    "code":0
    }

    application 應(yīng)用名
    limit 限制值


<div STYLE="page-break-after: always;"></div>

11 串流相關(guān)接口

11.1.查詢串流任務(wù)

  • 用途
    查詢服務(wù)器上的串流任務(wù)。

  • 請求
    streamingMgr/?request=get_streaming&id=
    id 串流任務(wù)在服務(wù)器上的唯一編號,省略時(shí)會返回所有任務(wù)的列表。

  • 響應(yīng)
    {
    "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)行 其他表示異常

11.2.添加串流任務(wù)

  • 用途
    添加一個(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 串流輸出的直播流名稱

  • 響應(yīng)
    {
    "code":0
    }

11.3.啟動串流任務(wù)

  • 用途
    啟動一個(gè)串流任務(wù)。
    添加完串流任務(wù)后,可以調(diào)用該接口運(yùn)行任務(wù)。

  • 請求
    streamingMgr/?request=start_streaming&id=BAF9B8E5BA819259
    id 串流任務(wù)的唯一編號,可以通過查詢串流任務(wù)接口獲得。

  • 響應(yīng)
    {
    "code":0
    }

11.4.停止串流任務(wù)

  • 用途
    停止一個(gè)串流任務(wù)。

  • 請求
    streamingMgr/?request=stop_streaming&id=8A9B587159245ED5
    id 串流任務(wù)的唯一編號,可以通過查詢串流任務(wù)接口獲得。

  • 響應(yīng)
    {
    "code":0
    }

11.5.刪除串流任務(wù)

  • 用途
    刪除一個(gè)串流任務(wù)。

  • 請求
    streamingMgr/?request=remove_streaming&id=8A9B587159245ED5
    id 串流任務(wù)的唯一編號,可以通過查詢串流任務(wù)接口獲得。

  • 響應(yīng)
    {
    "code":0
    }

<div STYLE="page-break-after: always;"></div>

12 自動刪除相關(guān)接口

12.1.查詢自動刪除任務(wù)

  • 用途
    查詢服務(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ù)。

  • 響應(yīng)
    {
    "code":0,
    "data":{
        "count":1,
        "items":[
            {
                "application":"liveshow",
                "stream":"hks",
                "timeline":"3600"
            }
        ]
    }
    }

    application 應(yīng)用名
    stream 直播流名
    timeline 視頻保留的時(shí)間長度,單位秒,例如,3600表示保存1小時(shí)內(nèi)的節(jié)目

12.2.新建自動刪除任務(wù)

  • 用途
    新建一個(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ù)。

  • 響應(yīng)
{
    "code":0
}

12.3.刪除自動刪除任務(wù)

  • 用途
    刪除一個(gè)自動刪除任務(wù)。

  • 請求
    autodelMgr/?request=remove&application=liveshow&stream=live1
    application 應(yīng)用名,【必選】
    stream 直播流名,【必選】

  • 響應(yīng)
{
    "code":0
}

<div STYLE="page-break-after: always;"></div>

13 文件上傳及管理相關(guān)接口

這組接口實(shí)現(xiàn)視頻資源的上傳及管理,為視頻轉(zhuǎn)碼和發(fā)布提供支持。
上傳的服務(wù)器上的視頻文件,經(jīng)過轉(zhuǎn)碼發(fā)布后形成可以對外播出的在線視頻資源。
本小節(jié)描述文件上傳和管理的接口,轉(zhuǎn)碼接口在下一章節(jié)說明。

13.1.文件上傳接口

  • 用途
    通過HTTP POST協(xié)議上傳視頻文件。文件上傳接口是一個(gè)特殊的接口,接口位置與其他接口有差異。
    上傳協(xié)議采用HTTP POST協(xié)議,提交form的數(shù)據(jù)采用multipart/form-data編碼(enctype="multipart/form-data")。
    這里有詳細(xì)的規(guī)范(對于Web開發(fā),通常您無需閱讀這個(gè)文檔):
    rfc1867 http://www.ietf.org/rfc/rfc1867.txt
    對于采用Web頁面上傳的應(yīng)用,采用典型的form提交上傳文件即可,數(shù)據(jù)提交地址設(shè)為本接口地址。
  • 請求
    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意義跟其他接口一樣。

  • 響應(yīng)
    {
    "code":0
    }

13.2.查詢文件列表接口

  • 用途
    查詢服務(wù)器上的某個(gè)目錄下的視頻文件列表。
  • 請求
    fileMgr/?request=list_files&subpath=&page=1
    sub_path 文件存放的子目錄,對應(yīng)上傳文件時(shí)的sub_path參數(shù)。如果省略,則查詢用戶根目錄下的文件。
    page頁碼,該接口支持分頁查詢,分頁信息在返回?cái)?shù)據(jù)中。
  • 響應(yīng)
    {
    "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音頻采樣率

13.3.查詢文件目錄接口

  • 用途
    查詢服務(wù)器上的文件目錄。
  • 請求
    fileMgr/?request=list_dirs&subpath=
    sub_path 文件存放的子目錄,如果省略,則查詢用戶根目錄下的文件目錄。
  • 響應(yīng)
    {
    "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ù)

13.4.查詢文件信息接口

  • 用途
    查詢服務(wù)器上的某個(gè)視頻文件的信息。
  • 請求
    fileMgr/?request=get_file&filename=案例視頻8.mp4&charset=UTF-8
    filename 文件名,如果在子目錄中,應(yīng)當(dāng)包含完整的相對目錄,如 mypath/myfile.mp4,文件名采用UTF-8編碼
    charset 文件名在服務(wù)器上的實(shí)際字符集編碼,在查詢文件列表接口中有返回。
  • 響應(yīng)
    {
    "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ù)的文件信息的描述與查詢文件列表接口中對文件信息的描述相同。

13.5.刪除文件接口

  • 用途
    刪除服務(wù)器上的文件。
  • 請求
    fileMgr/?request=remove&filename=myvideo.mp4&charset=ASCII
    filename 文件名,如果在子目錄中,應(yīng)當(dāng)包含完整的相對目錄,如 mypath/myfile.mp4,文件名采用UTF-8編碼
    charset 文件名在服務(wù)器上的實(shí)際字符集編碼,在查詢文件列表接口中有返回。
  • 響應(yīng)
    {
    "code":0
    }

<div STYLE="page-break-after: always;"></div>

14 轉(zhuǎn)碼相關(guān)接口

14.1.轉(zhuǎn)碼接口

  • 用途
    對上傳到服務(wù)器上的視頻進(jìn)行轉(zhuǎn)碼,轉(zhuǎn)碼后可以面向互聯(lián)網(wǎng)或局域網(wǎng)發(fā)布播出。

  • 請求
    transcodeMgr/?request=transcode&application=vod&src=案例視頻8.mp4&src_id=video89&video_bitrate=800&audio_bitrate=60&width=0&height=0&deinterlace=OFF&encoding=UTF-8&audio_stream=&output_formats=hls;flv;mp4&publish=&title=

參數(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)題。

  • 響應(yīng)
    {
    "code":0
    }

14.2.轉(zhuǎn)碼進(jìn)度查詢接口

  • 用途
    查詢服務(wù)器上正在轉(zhuǎn)碼的轉(zhuǎn)碼任務(wù)的進(jìn)度,該接口返回所有正在轉(zhuǎn)碼任務(wù)的列表。
  • 請求
    transcodeMgr/?request=list_working
  • 響應(yīng)
    {
    "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)碼輸出畫幅高度

14.3.停止轉(zhuǎn)碼接口

  • 用途
    停止一個(gè)正在轉(zhuǎn)碼的任務(wù)。
  • 請求
    transcodeMgr/?request=stop_transcode&src_id=8ass3
    src_id 轉(zhuǎn)碼任務(wù)的資源編號,由轉(zhuǎn)碼接口傳入。

  • 響應(yīng)
    {
    "code":0
    }




<div STYLE="page-break-after: always;"></div>

15 用戶管理

管理系統(tǒng)中的管理員帳號。

15.1.添加管理員

  • 請求
    userAuth/?request=create_user&name=myname&pwd=123&auth_func=fileMgr,transcodeMgr&auth_app=vod
    name 登錄用戶名
    pwd 登錄用戶名
    auth_func 允許使用的功能,多個(gè)功能使用半角逗號隔開。功能定義見 15.3
    auth_app 允許使用的應(yīng)用,多個(gè)應(yīng)用使用半角逗號隔開。 應(yīng)用定義見 3.1 小節(jié)

備注: 如果傳入的name在系統(tǒng)中存在同名用戶,則會用新的信息替換原有信息,相當(dāng)于“修改”用戶。

  • 響應(yīng)
    {
    "code":0
    }

15.2.刪除管理員

暫不支持

15.3.列出系統(tǒ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>

16 外源錄制接口

本接口實(shí)現(xiàn)錄制rtmp協(xié)議的直播流。

16.1.添加錄制任務(wù)

  • 用途
    添加一個(gè)錄制任務(wù)。
  • 請求
    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 截圖地址

向AI問一下細(xì)節(jié)

免責(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)容。

AI