中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

NTV Media Server G3 API All in One

發布時間:2020-06-29 08:12:50 來源:網絡 閱讀:877 作者:sendoffice 欄目:開發技術

NTV Media Server G3 API Specification

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


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

1.概述

1.1.用途及閱讀方法

遠程管理API提供一組接口,其他系統(如企業的業務管理系統、媒資管理系統、用戶管理系統、OA系統等)可以通過調用接口來查詢流媒體服務器的數據和更改流媒體服務器的配置,實現與流媒體服務器的集成。
閱讀本接口規范時,請首先認真閱讀《概述》章節(即本章節),然后在閱讀《登錄認證》章節,這兩個章節是必須閱讀的部分。其他章節根據需要選擇閱讀,例如要做轉碼集成,閱讀《文件管理》和《轉碼》章節即可。

1.2.適用版本

本文檔定義的接口規范,對版本號大于等于3.6.500的流媒體服務器系統有效。
較低版本服務器,繼續使用對應版本的接口規范。

1.3.通信協議

本規范中,流媒體服務器是通信的服務器端(簡稱“服務器”),調用接口的其他系統是通信客戶端(簡稱“客戶端”)。客戶端和服務器通過HTTP協議通信,客戶端使用HTTP Get向服務器發送請求,服務器返回json格式的業務數據或操作結果給客戶端。

1.4.接口請求

接口的請求地址是個URL地址,每個接口URL地址都包括分組位置和請求參數,例如:
http://ip/mserver/interface/appMgr/?request=get&token=123456
其中:
http://ip/mserver/interface/appMgr/ 是接口請求的URL位置,“ip”在實際請求中要替換成服務器的ip地址或域名。
http://ip/mserver/interface/ 代表流媒體服務器接口服務在Web上的部署的位置,要保持不變。
appMgr是接口的分組位置,流媒體服務器接口包括了多個分組位置,具體參見接口定義部分。
符號?后面是參數列表,以name=value的形式體現。
其中:
request參數是在所有接口中都要有的,該參數表明了請求業務的類型。
token參數提供一個安全認證符號給服務器,服務器用token來驗證客戶端的合法性,除了登錄驗證接口之外,其他接口都需要token參數。
有關URL地址的編碼規范,請參考HTTP 1.1規范。

1.5.接口響應

服務器在收到接口請求后,首先判斷token的正確性,如果token錯誤,則返回認證錯誤的消息給客戶端。如果token正確,服務器返回json格式的文本內容給客戶端。返回給客戶端的json文本描述了服務器對請求的處理結果和響應數據。

1.6.接口安全

客戶端必須首先通過身份認證才能繼續調用接口,在一個“挑戰—>應答”模式的身份認證過程中完成身份認證,認證通過后,服務器為客戶端分配一個臨時令×××token,在后續的請求中,token作為一項必選參數提供,服務器通過token識別用戶身份和驗證請求的合法性。
在沒有接口調用時,token的有效期為30分鐘,之后客戶端再調用接口時必須重新進行身份認證,獲取新的token
為了確保一定的安全性,客戶端應妥善保存token值。

1.7.URL編碼

當URL請求參數值中包含URL地址保留字符時,應對參數值進行URL編碼。
具體參見“RFC2396: Uniform Resource Identifiers (URI): Generic Syntax”。
當請求參數包含中文字符時,應對中文字符采用UTF-8編碼。

1.8.描述約定

本文檔在描述接口的URL地址時,如果沒有特殊說明,會省略掉URL前面的相同部分,從接口的分組位置開始描述。例如,http://ip/mserver/interface/appMgr/?request=get 簡化為 appMgr/?request=get。
在描述參數時,省略token參數的描述,在示例中也會省略。在實際調用中必須把token參數加上。
在對參數進行描述時,用【必選】表示該參數必須提供,用【可選】表示該參數可以省略,用【URL編碼】表示該參數需要進行URL編碼,【保留】表示該參數可以接受但尚未被使用。

1.9.返回消息結構

返回的json消息數據結構具有嚴格的一致性,客戶端可以采用一致的接收和解析方式處理返回消息。
簡單消息
簡單的返回消息包含對請求的處理結果,結構如下:

{
    "code":0,
    "err_desc":""
}

其中:
code 為 0 表示處理成功,其它值表示處理失敗。
err_desc是對錯誤的描述,在code為0時err_desc會被省略。
特殊情況,在用戶認證的login1和login2接口中,err_desc具有特殊用途用法,具體參見接口描述。除這兩個接口之外,err_desc都表示錯誤描述。

帶業務數據的消息
有的返回消息除了包含處理結果信息,還包含業務數據記錄集,結構如下:

 {
        "code":0,
        "data":{
            "count":1,
            "items":[{
            "server":"g3",
            "host":"127.0.0.1",
            "protocol":"rtmp",
            "app":"liveshow",
            "stream":"jgdy"
            }]
        }            
    }

其中:
data 業務數據的根節點:
count 業務數據的條數,可能的值為0 ~ n
items 業務數據,是一個數組,數據條數由count屬性定義。當count為0時,items屬性可能為null或者不存在。
本文檔后續章節中,在描述items元素的屬性時,會省略一些屬性的描述,即實際調用接口返回的屬性在本文檔中可能會沒有描述,這種情況下請直接忽略被忽略描述的屬性值。本文檔中描述的屬性是實際返回內容的一個子集,沒有描述到的內容對集成本系統沒有影響。

帶分頁數據的消息
如果返回數據較多,服務器會對返回的數據進行分頁,客戶端可以按照頁碼請求指定范圍的數據。帶分頁信息的返回數據結構如下:

    {
    "code":0,
    "data":{
        "page":1,
        "page_size":"20",
        "pages":"1",
        "total":"2",
        "count":2,
        "items":[...]
                }
}

分頁數據信息在data元素下,意義如下:
page 當前頁碼
page_size 每頁數據記錄條數
pages 總共的頁數
total 總數據條數
count 當前返回頁的數據條數
如果返回的數據帶有分頁信息,則可以在調用接口時使用page參數來請求指定頁碼的數據。

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.登錄認證

客戶端調用流媒體服務器接口,首先要做的是身份認證,認證通過后才可以調用流媒體服務器的接口。
服務器和客戶端通過“挑戰->應答”方式(challenge-response)進行身份認證交互,在這個過程中,客戶端需要調用兩次接口向服務器證明身份。認證過程中不需要傳遞密碼,密碼用于簽名驗證。
身份認證的過如下:
1客戶端使用“用戶名”作為參數調用“login1”接口,向服務器發出身份認證請求
1.1)服務器確認用戶是否是有效的用戶:
1.2)若不是,則不做進一步處理,返回錯誤信息
1.3)若是,服務器產生一個“隨機數(挑戰字符串)”發送給客戶端
2客戶端使用“用戶密碼”和“隨機數(挑戰字符串)”作為輸入,按約定的算法生成一個hash值,用該hash值作為 調用“login2”接口的參數,請求login2接口。
2.1)服務器用收到的hash值與自己的計算結果比較,若二者相同,則通過認證;否則,認證失敗
2.2)若認證通過,服務器返回“token”給客戶端,否者返回錯誤信息。

2.1.login1接口

  • 用途
    客戶端向服務器申請進行身份認證,服務器返回“挑戰字符串”給客戶端。
  • 請求
    userAuth/?request=login1&username=admin
    username 登錄服務器的用戶名。
  • 響應
    {
    "code":0,
    "err_desc":"auha3gik9m48l1mh"
    }

    code 等于0,表示用戶有效,此時 err_desc 的內容是返回的挑戰字符串(challenge_code)。
    code 不等于0,其他值表示錯誤,此時 err_desc 的內容是錯誤描述。
    返回的挑戰字符(challenge_code)串用于下一步認證。

2.2.login2接口

  • 用途
    對login1接口返回“挑戰字符串”進行hash運算,將運算結果提交給服務器,進行身份合法性認證。
  • 請求
    userAuth/?request=login2&username=admin&hash=8c96202be3da1b23a96c4c838eb34d93
    username 登錄服務器的用戶名。
    hash是使用用戶密碼和挑戰字符串作為輸入計算出的md5摘要值(hash),算法如下:
    hash=md5(md5(password)+challenge_code)
    算法描述:首先計算出密碼的hash值,然后在生成的密碼hash值尾部拼接上挑戰字符串形成新的字符串,最后計算這個新字符串的hash值。
    hash算法采用md5算法,生成的摘要采用16進制編碼,編碼生成的字符采用小寫字母。
    例如,字符串111111的hash值是 96e79218965eb72c92a549dd5a330112
  • 響應
    {
    "code":0,
    "err_desc":"g2ow17rfyf4nxbkg"
    }

    code 0 表示登錄成功,此時 err_desc 的內容是token值,用于后續接口的通信認證。
    code >0 其他值表示錯誤,此時 err_desc 的內容是錯誤描述。

2.3.logout接口

  • 用途
    退出登錄,服務器銷毀用戶登錄信息,作廢“token”。
    建議客戶端在退出系統時總是調用該接口。
  • 請求
    userAuth/?request=logout&token=vvkphp5ca79c538n
  • 響應
    {
    "code":0,
    }

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

3.application管理接口

3.1.查詢應用接口

  • 用途
    查詢服務器上的應用(application)。

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

  • 響應
    {
    "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"}
                        ]}
    }

    返回一個或多個應用的信息。
    app_name 應用名
    allow_live 是否允許直播業務,on表示允許,off或省略不允許
    allow_publish 是否允許推送直播流到該應用,on表示允許,off或省略不允許
    allow_play 是否允許播出視頻,on表示允許,off或省略不允許

3.2.查詢DVR配置接口

  • 用途
    查詢應用的DVR配置參數。
    流媒體服務器的DVR功能可以將直播流在服務器上進行錄制保存,DVR配置參數定義了保存的行為。
    系統有全局DVR配置參數,默認情況下會對每個應用生效。
    如果一個應用(application)沒有DVR配置參數,則會使用全局配置參數。
    如果對一個應用配置了部分DVR參數,沒有配置的參數依然會使用全局配置參數。
  • 請求
    appMgr/?request=get_dvr_paras&application=
    application 應用名,如果沒有指定應用名,則會查詢全局配置參數。
  • 響應
{
    "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"
            }
        ]
    }
}

返回應用的配置參數,items數組包含一個元素。
配置參數:
is_dvr on 表示DVR開啟,off表示關閉。
media_root 歸檔數據保存的根路徑
formats 歸檔的格式,多種格式用半角分號分開。flv 保存flv格式;hls保存hls切片格式;mp4保存mp4格式。
tv_streams 按照電視流格式歸檔的流名稱,多個名稱用半角分號分開。
application 應用名,"Default" 表示使用的是全局配置。

3.3.開啟DVR功能

  • 用途
    開啟DVR功能。
    系統暫不支持針對某個應用開啟和關閉DVR功能,也不支持針對某個應用配置其他DVR參數。DVR的開啟、關閉和修改配置參數會對所有應用生效。
  • 請求
    appMgr/?request=open_dvr
  • 響應
    {
    "code":0
    }

3.4.關閉DVR功能

  • 用途
    關閉DVR功能。
  • 請求
    appMgr/?request=close_dvr
  • 響應
    {
    "code":0
    }

3.5.設置DVR保存格式

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

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

4.直播流相關接口

4.1.查詢活動的視頻流

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

  • 請求
    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數組可能包含0或多個元素。
    server 服務器類型,默認是g3
    host 服務器IP地址或域名
    protocol 直播協議,rtmp或rtsp
    app 應用名
    stream 流名稱
    starttime 開始直播的時間,是一個unix時間戳

4.2.關閉并禁用直播流

  • 用途
    關閉一個直播流,并將該直播流設為禁用狀態。
    調用該接口后,直播流會被立即關閉,直播客戶端和播放客戶端的連接都會中斷。關閉后的直播流會被禁止再次推流,除非調用后續接口解除禁用。
  • 請求
    closedStream/?request=close&application=live&stream=live2
    application 應用名
    stream 直播流名稱

  • 響應
    {
    "code":0
    }

4.3.解除禁用的直播流

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

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

  • 響應
    {
    "code":0
    }

4.4.查詢被禁用的直播流

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

  • 響應

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

items元素下包含被禁用的直播流列表。
application 應用名
stream 直播流名稱
time 禁用時間,unix時間戳

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

  • 用途
    關閉一個直播流,但是不禁用,推流客戶端可以再次推流進來。
    調用該接口后,直播流會被立即關閉,直播客戶端和播放客戶端的連接都會中斷。
  • 請求
    streamMgr/?request=close_active_stream&application=live&stream=live2
    application 應用名
    stream 直播流名稱

響應

{
    "code":0
}

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

5.點播流相關接口

5.1.查詢點播流

  • 用途
    查詢某個應用下的點播視頻流。
    如果查詢的是點播應用(如"vod"),返回的是該點播應用下的點播流列表。
    如果查詢的是直播應用(如“liveshow”),則會返回的是有錄制數據的歷史直播流的列表,列表中的時長、修改時間、生成時間屬性都是針對該流最后一個錄制版本的描述。可以通過下一個接口查詢某個直播流下的詳細錄制數據。

  • 請求
    streamMgr/?request=get_streams&application=vod&pageno=1&page_size=20
    application 應用名
    pageno 頁碼
    page_size 分頁大小,【保留】,該參數暫不支持傳入,分頁大小由服務器根據數據量自動分頁。
    在視頻流較多的情況下,可以通過傳入頁碼參數請求某一范圍內的數據。返回的數據中含有詳細的分頁信息,可以通過請求第一頁獲取數據總量和分頁的詳情。
    本文檔的后續章節將不再對分頁屬性做解釋。

  • 響應
    {
    "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"
            } ]
    }
    }

    返回應用下的點播流。
    data元素下包含數據量和分頁信息:
    page 當前頁碼
    pages 總頁數
    page_size 分頁大小
    total 總數據條數
    count 當前分頁中的數據條數
    items元素下包含0或多條點播數據流,每條記錄的屬性如下:
    application 應用名
    stream 流名稱
    type 點播流類型,movie表示是視頻點播流,live表示是直播流(由直播流形成的歸檔數據)。
    modifytime 最后修改的時間戳
    "starttime 開始生成的時間戳,對于movie類型的流,表示轉碼生成的時間,對于live類型的流表示錄制的時間。
    duration 視頻流的播出時長,單位 秒
    formats 視頻流的格式,一個視頻流可以有多種格式,多種格式之間使用逗號分開,可以是flv、hls、mp4格式中的一種或多種。

5.2.查詢直播流錄制數據

  • 用途
    查詢某個直播流的錄制數據,錄制數據也是一種點播流,是錄制直播流形成的點播數據。
    一個直播流每次啟停都會生一份錄制數據,多次啟停后會在一個直播流下生成多份錄制數據。直播流的錄制數據使用版本號區分,版本號從0開始,每生成一個新文件版本號會增1。
  • 請求
    streamMgr/?request=get_stream_files&application=liveshow&stream=jgdy&pageno=1&page_size=20
    application 應用名
    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"
            }
        ]
    }
    }

    返回某個直播流的錄制數據。
    items元素下包含0或多條錄制數據,每條數據的屬性如下:
    version 版本號
    size 錄制數據大小,單位 字節
    duration 視頻流的播出時長,單位 秒
    modifytime 最后修改的時間戳,可以理解成錄制結束的時間戳
    "starttime 開始錄制的時間戳。
    formats 視頻流的格式,一個視頻流可以有多種格式,多種格式之間使用逗號分開,可以是flv、hls、mp4格式中的一種或多種。

5.3.刪除視頻流

  • 用途
    刪除一個視頻流。
    如果請求刪除的是一個視頻點播流名稱(如"vod"應用下的某個流),會把這個點播流下的視頻數據刪除掉。
    如果請求的是一個直播流名稱,則會把這個直播流下的所有版本的錄制數據刪除。要刪除直播流的某個版本的錄制數據,使用下一個接口(刪除錄制數據)。

  • 請求
    streamMgr/?request=remove_stream&application=vod&stream=fk7cpizvhwshjnyu
    application 應用名
    stream 流名稱

  • 響應
    {
    "code":0
    }

5.4.刪除錄制數據

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

  • 響應
    {
    "code":0
    }

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

6.查看在線用戶

6.1.查詢在線用戶

  • 用途
    查詢當前時間在線的用戶數量,返回每個視頻流觀看用戶的總數。
    請求
    statMgr/?request=connection_count

  • 響應
    {
    "code":0,
    "data":{
        "count":1,
        "items":[
            {
                "application":"live",
                "stream":"live2",
                "ver":"",
                "count":1
            }
        ]
    }
    }

    返回當前時間視頻流的收看用戶數。
    application 應用名
    stream 流名稱
    ver 版本號,如果是收看的直播回看數據,會返回版本號
    count 用戶數量

6.2.查詢在線用戶明細

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

  • 響應
    {
    "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"
            }
        ]
    }
    }

    返回在線用戶的明細數據。items元素下會包含0或多條記錄。
    cip 客戶端ip
    sip 服務器ip
    uid 用戶唯一識別id,可以有應用系統帶入
    sid 每次訪問的唯一識別id
    ver 訪問的哪個版本,對于視頻點播流沒有意義,對于回看流表示錄制版本號
    reg_time 開始收看的時間,unix時間戳
    start 從視頻的第幾秒開始收看,-1表示從視頻開頭處收看。單位 秒
    offset 觀看到了第幾秒,該參數在用戶收看hls和flv格式視頻時有效。-1表示不支持或無法獲取該參數。


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

7 按需錄制直播流

7.1.定義按需錄制的應用

  • 用途
    將某個應用設置為按需錄制應用。
    應用被設置為按需錄制后,該應用下的直播流默認情況下不會被錄制,只有在收到開始錄制和停止錄制的指令后才會針對某個直播流開始錄制和停止錄制。
    如果系統的全局配置參數中設置了不錄制視頻,直播流不會被錄制。具體參見“application相關接口”章節中的DVR相關接口。
    按需錄制的接口,對于live應用“live-”開頭的應用無效。對于帶有NR符號的應用和直播流也無效。

  • 請求
    demandDvr/?request=add_app&application=show
    application 應用名

  • 響應
    {
    "code":0
    }

7.2.撤銷按需錄制的應用

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

  • 請求
    demandDvr/?request=del_app&application=show
    application 應用名

  • 響應
{
    "code":0
}

7.3.查詢按需錄制的應用

  • 用途
    查詢所有被設置為按需錄制的應用。

  • 請求
    demandDvr/?request=list_app

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

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

7.4.開始錄制

  • 用途
    對按需錄制應用下的直播流,發送開始錄制指令。服務器收到指令后會開始錄制該直播流。
    如果該直播流當前時間正在直播,服務器收到指令后會立即開始錄制,直到收到停止錄制指令后才會停止錄制。
    如果該直播流當前時間沒有正在直播,服務器收到該指令后會保持錄制狀態,一旦該直播流開始直播就會開始錄制。

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

7.5.停止錄制

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

7.6.查看正在錄制的流

  • 用途
    對按需錄制應用下的直播流,發送停止錄制指令。服務器收到指令后會停止錄制該直播流。
  • 請求
    demandDvr/?request=list&application=show
    application 應用名,如果省略,表示查詢所有應用下正在錄制的流。

  • 響應
        {
                "code":0,
                "data":{
                        "count":2,
                        "items":{
                                "show5-112233":{
                                        "application":"show5",
                                        "stream":"112233",
                                },
                                "liveshow-live1":{
                                        "application":"liveshow",
                                        "stream":"live1",
                                }
                        }
                }
        }

items包含多個正在錄制流的列表。
application 應用
stream


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

8 播出認證相關接口

8.1.開啟播出認證

  • 用途
    針對某個應用,開啟播出認證。
    開啟播出認證后,所有播放該應用下的視頻流的請求都需要做合法性認證,只有認證通過的請求才會允許播放。
    認證的方法包括token認證、referer認證和第三方認證。
    token認證,就是為每個播出流配置一個認證碼(token),播放終端只有獲得該認證碼,并將該認證碼作為播出請求的參數提交,才能夠正常播放視頻。
    referer認證,就是要求播放終端必須從某個域名下的網站發起播放請求,也就是只有將播出視頻嵌入到某個指定域名下的網站才允許播放。
    第三方認證,就是將認證請求轉交給第三方系統的服務接口去認證,認證通過后才允許播放。開啟第三方認證后,所有本地認證策略會被忽略。

  • 請求
    authMgr/?request=open_play_auth&application=liveshow
    application 應用名

  • 響應
    {
    "code":0
    }

8.2.關閉播出認證

  • 用途
    針對某個應用,關閉播出認證。關閉后播放該應用下的視頻流不需要做認證。
  • 請求
    authMgr/?request=close_play_auth&application=liveshow
    application 應用名

  • 響應
    {
    "code":0
    }

8.3.開啟和關閉播出token認證

  • 用途
    針對某個應用,開啟和關閉播出token認證方式。
    設置該參數是為了迎合僅使用referer認證情況。
  • 請求
    authMgr/?request=open_play_token&application=liveshow&open=1
    application 應用名
    open 是否開啟認證,open=1表示開啟認證,open=0表示關閉認證

  • 響應
    {
    "code":0
    }

8.4.查詢播出token

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

  • 響應
    {
    "code":0,
    "data":{
        "count":1,
        "items":[
            {
                "application":"liveshow",
                "stream":"live1",
                "token":"8501E93883FC4D14",
                "use_once":0
            }
        ]
    }
    }

    items元素包含當前應用下的token定義。
    application 應用名
    stream 流名稱
    token token值

8.5.添加播出token

  • 用途
    為視頻流添加播出認證token。
    每個token設置到一個視頻流上,播放客戶端訪問該視頻流需要給出正確的token值。
  • 請求
    authMgr/?request=add_play_token&application=liveshow&stream=live1&token_val=8501E93883FC4D14
    application 應用名
    stream 流名稱
    token_val 添加的token值(注意這里使用token_val參數名,避免與接口認證的token參數沖突)

  • 響應
    {
    "code":0
    }

8.6.刪除播出token

  • 用途
    刪除某個視頻流的token。

  • 請求
    authMgr/?request=delete_play_token&application=liveshow&stream=live1
    application 應用名
    stream 流名稱

  • 響應
    {
    "code":0
    }

8.7.設置播出認證的referer值

  • 用途
    為某個應用設置播出認證referer值。

  • 請求
    authMgr/?request=set_referer&application=liveshow&url=play.ruiboyun.net;cloud.ruiboyun.net
    application 應用名
    url 允許訪問的域名列表,多個域名之間使用半角分號隔開。如果要撤銷referer認證,將url設為空即可。

  • 響應
    {
    "code":0
    }

8.8.設置第三方播出認證地址

  • 用途
    將某個應用下的播出認證地址設置為一個第三方認證地址。
    設置第三方認證地址后,所有本地認證策略失效。
    如果要取消第三方認證,將url參數設置為空即可。

  • 請求
    authMgr/?request=set_play_auth_url&application=liveshow&url=http://i.ruiboyun.net/interface
    application 應用名
    url 第三方認證接口的url地址,本參數需要進行【URL編碼】。

  • 響應
    {
    "code":0
    }

8.9.查詢播出和推流認證配置

  • 用途
    查詢服務器上播出和推流認證的配置情況。本接口會返回所有應用的認證配置信息,包括推流認證和播放認證的配置信息。
  • 請求
    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應用下會返回多條記錄,每條記錄定義個應用的認證配置。
application 應用名
is_play_auth 是否開啟播放認證,0關閉,1開啟
is_pub_auth 是否開啟推流認證,0關閉,1開啟
pub_auth_url 推流第三方認證地址,null,"local","",或省略,都表示不使用第三方認證
play_auth_url 播出第三方認證地址,null,"local","",或省略,都表示不使用第三方認證
referfer 允許播出的域名列表,多個域名之間使用半角分號隔開,該項僅對播出認證有效
is_play_token_auth 是否開啟播出的token認證,0關閉,1開啟,使用該選項是為了配合只使用referer認證的情況,該項僅對播出認證有效


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

9 推流認證相關接口

9.1.開啟推流認證

  • 用途
    針對某個應用,開啟推流認證。
    開啟推流認證后,所有向該應用下的推送直播流的請求都需要做合法性認證,只有認證通過的請求才會允許推送。
    認證的方法包括token認證和第三方認證。
    token認證,就是為每個直播流配置一個認證碼(token),推流終端只有獲得該認證碼,并將該認證碼作為推流請求的參數提交,才能夠正常推送直播流。
    第三方認證,就是將認證請求轉交給第三方系統的服務接口去認證,認證通過后才允許推送直播流。開啟第三方認證后,所有本地認證策略會被忽略。

  • 請求
    authMgr/?request=open_pub_auth&application=liveshow
    application 應用名

  • 響應
    {
    "code":0
    }

9.2.關閉推流認證

  • 用途
    針對某個應用,關閉推流認證。關閉后向該應用推送視頻流不需要做認證。
  • 請求
    authMgr/?request=close_pub_auth&application=liveshow
    application 應用名

  • 響應
    {
    "code":0
    }

9.3.查詢推流token

  • 用途
    查詢某個應用下推流認證token的列表。

  • 請求
    authMgr/?request=list_pub_token&application=liveshow
    application 應用名

  • 響應
    {
    "code":0,
    "data":{
        "count":1,
        "items":[
            {
                "application":"liveshow",
                "stream":"live1",
                "token":"9501E93993FC4D14",
                "use_once":0
            }
        ]
    }
    }

    items元素包含當前應用下的token定義。
    application 應用名
    stream 流名稱
    token token值

9.4.添加推流token

  • 用途
    為視頻流添加推流認證token。
  • 請求
    authMgr/?request=add_pub_token&application=liveshow&stream=live1&token_val=9501E93993FC4D14
    application 應用名
    stream 流名稱
    token_val 添加的token值(注意這里使用token_val參數名,避免與接口認證的token參數沖突)

  • 響應
    {
    "code":0
    }

9.5.刪除推流token

  • 用途
    刪除某個視頻流的推流認證token。

  • 請求
    authMgr/?request=delete_pub_token&application=liveshow&stream=live1
    application 應用名
    stream 流名稱

  • 響應
    {
    "code":0
    }

9.6.設置第三方推流認證地址

  • 用途
    將某個應用下的推流認證地址設置為一個第三方認證地址。
    設置第三方認證地址后,所有本地認證策略失效。
    如果要取消第三方認證,將url參數設置為空即可。

  • 請求
    authMgr/?request=set_pub_auth_url&application=liveshow&url=http://i.ruiboyun.net/interface
    application 應用名
    url 第三方認證接口的url地址,本參數需要進行【URL編碼】。

  • 響應
    {
    "code":0
    }

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

10 并發限制相關接口

10.1.查詢并發限制配置

  • 用途
    查詢某個應用的播出并發限制值。
    如果一個應用設置了并發限制值,當訪問該應用下視頻流的并發數超過該值時,終端的播出請求會被禁止。
    這個限制值是該應用下所有視頻流的播出并發數總和限制值。

  • 請求
    limitMgr/?request=get&application=liveshow
    application 應用名,可以省略,省略時會返回所有應用的配置信息。

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

    application 應用名
    limit 限制值

10.2.設置并發限制值

  • 用途
    設置某個應用的播出并發限制值。
    如果要取消限制,將limit參數設為0。

  • 請求
    limitMgr/?request=set&application=liveshow&limit=100
    application 應用名
    limit 限制值,該值有一個允許范圍,具體與服務器的發布版本有關

  • 響應
    {
    "code":0
    }

    application 應用名
    limit 限制值


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

11 串流相關接口

11.1.查詢串流任務

  • 用途
    查詢服務器上的串流任務。

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

  • 響應
    {
    "code":0,
    "data":{
        "count":2,
        "items":[
                    {
                "name":"監控視頻",
                "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個或多個串流任務。
    name 串流的名稱,在添加任務時輸入
    id 串流的唯一編號,在添加任務時系統自動分配,后續管理串流任務需要該id
    protocol 輸入協議
    source_url 視頻源地址
    video_only 輸入源是否只有視頻,on表示只有視頻
    audio_only 輸入源是否只有音頻,on表示只有音頻
    use_transcode 是否啟動視頻轉碼,on表示啟動,off或者省略表示沒有轉碼
    width 轉碼的輸出視頻畫面寬度,0表示保持輸入源畫幅大小
    height 轉碼的輸出視頻畫面高度,0表示保持輸入源畫幅大小
    bitrate 視頻轉碼的比特率,單位 kbps
    use_audio_transcode 是否啟動音頻轉碼,on表示啟動,off或者省略表示沒有轉碼
    bitrate_audio 音頻轉碼比特率 單位 kbps
    to_host 串流的目標服務器,省略或localhost都表示要串流到本服務器。如果要串流的其他服務器,該值為“other”,并使用參數to_server指示要串流的目標服務器IP或域名。
    to_server要串流其他服務器的IP或域名。
    application 串流的目標應用名
    stream 串流的目標直播流名稱
    status 串流任務狀態 0沒有運行 1正在運行 其他表示異常

11.2.添加串流任務

  • 用途
    添加一個串流任務。
    添加串流任務時,要調用接口的客戶端提供一個唯一的任務id,該id可由字母和數字組成,用于在調用后續接口時識別該任務。
    如果提供的id和已經存在任務的id相同,則服務器會將該請求當作修改串流任務處理。

  • 請求
    streamingMgr/?request=add_streaming&name=監控視頻&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
    參數:
    id 任務唯一編號,應由字母或數字組成,長度建議在6個字符以上,要避免重復
    protocol 串流輸入源的協議,支持rtsp、rtmp、udp、http、mms等協議
    source_url 串流輸入的源地址,該參數需要進行【url編碼】
    video_only 是否只有視頻,on 表示只有視頻,在只有視頻時,所有音頻相關參數會被忽略
    use_transcode 是否進行視頻轉碼,on表示進行轉碼,off或者省略表示不轉碼。如果不進行視頻轉碼,所有視頻轉碼參數會被忽略
    width 視頻轉碼輸出的畫面寬度,單位像素
    height 視頻轉碼輸出的畫面高度,單位像素
    bitrate 視頻轉碼輸出的比特率,單位kpbs
    use_audio_transcode 是否進行音頻轉碼,on表示進行轉碼,off或者省略表示不轉碼。如果不進行音頻轉碼,所有音頻轉碼參數會被忽略。
    bitrate_audio 音頻轉碼比特率,單位kbps
    to_host 串流的目標服務器,省略或localhost都表示要串流到本服務器。
    如果要串流的其他服務器,該值為“other”,并使用參數to_server指示要串流的目標服務器IP或域名。
    to_server要串流其他服務器的IP或域名,要是本參數生效,必須將to_host值設為other
    application 串流輸出的應用名,定義向服務器的哪個應用輸出直播流
    stream 串流輸出的直播流名稱

  • 響應
    {
    "code":0
    }

11.3.啟動串流任務

  • 用途
    啟動一個串流任務。
    添加完串流任務后,可以調用該接口運行任務。

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

  • 響應
    {
    "code":0
    }

11.4.停止串流任務

  • 用途
    停止一個串流任務。

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

  • 響應
    {
    "code":0
    }

11.5.刪除串流任務

  • 用途
    刪除一個串流任務。

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

  • 響應
    {
    "code":0
    }

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

12 自動刪除相關接口

12.1.查詢自動刪除任務

  • 用途
    查詢服務器上的自動刪除任務。
    自動刪除任務是一種運行在服務器上的服務,按照定義的規則自動刪除過期的視頻內容。例如,對于監控和視頻直播類業務,可以定義一個任務,定期刪除某個直播流30天前的錄制內容。

  • 請求
    autodelMgr/?request=get&application=&stream=
    application 應用名,可以省略,省略時表示查詢所有應用下的自動刪除任務。
    stream 直播流名,可以省略,省略時表示查詢某個應用下的所有自動刪除任務。

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

    application 應用名
    stream 直播流名
    timeline 視頻保留的時間長度,單位秒,例如,3600表示保存1小時內的節目

12.2.新建自動刪除任務

  • 用途
    新建一個自動刪除任務。

  • 請求
    autodelMgr/?request=set&application=liveshow&stream=live1&timeline=86400
    application 應用名,【必選】
    stream 直播流名,【必選】
    timeline 視頻保留的時間長度,單位秒,【必選】,例如,86400表示保存1天內的節目
    如果應用名和直播流名和已有任務的都一樣,則會覆蓋已有的任務。

  • 響應
{
    "code":0
}

12.3.刪除自動刪除任務

  • 用途
    刪除一個自動刪除任務。

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

  • 響應
{
    "code":0
}

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

13 文件上傳及管理相關接口

這組接口實現視頻資源的上傳及管理,為視頻轉碼和發布提供支持。
上傳的服務器上的視頻文件,經過轉碼發布后形成可以對外播出的在線視頻資源。
本小節描述文件上傳和管理的接口,轉碼接口在下一章節說明。

13.1.文件上傳接口

  • 用途
    通過HTTP POST協議上傳視頻文件。文件上傳接口是一個特殊的接口,接口位置與其他接口有差異。
    上傳協議采用HTTP POST協議,提交form的數據采用multipart/form-data編碼(enctype="multipart/form-data")。
    這里有詳細的規范(對于Web開發,通常您無需閱讀這個文檔):
    rfc1867 http://www.ietf.org/rfc/rfc1867.txt
    對于采用Web頁面上傳的應用,采用典型的form提交上傳文件即可,數據提交地址設為本接口地址。
  • 請求
    http://host/upload?app=g3_video&sub_path=&file_name=&token=abcd&field_name=field_abcd
    其中:
    http://host/upload 是上傳位置,保持不變。host替換成實際的流媒體服務器IP地址或域名。
    參數:
    app=g3_video,表示上傳的是視頻文件,要保持不變。
    sub_path表示上傳到哪個子目錄下,如果省略表示上傳到用戶根目錄下。
    file_name上傳文件要在服務器上保存的文件名,如果跟上傳文件名一樣,則省略。該參數提供了一個上傳文件在服務器上重新命名的機會。中文件名要采用UTF-8編碼。
    token意義跟其他接口一樣。

  • 響應
    {
    "code":0
    }

13.2.查詢文件列表接口

  • 用途
    查詢服務器上的某個目錄下的視頻文件列表。
  • 請求
    fileMgr/?request=list_files&subpath=&page=1
    sub_path 文件存放的子目錄,對應上傳文件時的sub_path參數。如果省略,則查詢用戶根目錄下的文件。
    page頁碼,該接口支持分頁查詢,分頁信息在返回數據中。
  • 響應
    {
    "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
                            }
                          ]
                }]
        }
    }

    返回數據包含分頁信息,在文件量較大時要按頁查詢。
    items元素包含0或多個文件信息。streams元素是該文件包含的音視頻流信息,一個多媒體文件會包含1到多個音視頻流
    filename 文件名,返回的文件名總是采用UTF-8編碼
    charset 文件名在服務器上的字符集編碼,省略表示是UTF-8編碼。如果為非UTF-8編碼,在后續的接口中請將該屬性帶入
    mtime 文件最后的修改時間
    size 文件大小,單位字節
    duration 文件播出時長,單位秒
    bitrate 綜合碼率,單位bps
    stream_number 文件包含的音視頻流總數
    streams元素
    streams包含0或多個音視頻流,屬性:
    index 流的索引編號,在轉碼接口中,在多語言音頻流的情況下,可以通過傳入音頻流索引號選擇指定的音頻流。
    type 視頻或音頻,對應 video 或 audio
    codec 流編碼格式,例如視頻h364編碼,音頻aac編碼等
    bitrate 流的比特率,單位bps
    pix_fmt 視頻幀格式
    frame_rate 幀率
    pic_width 視頻畫幅寬度
    pic_height 視頻畫幅高度
    lan 音頻語言信息,語言編碼縮寫
    channels 音頻聲道數
    sample_rate音頻采樣率

13.3.查詢文件目錄接口

  • 用途
    查詢服務器上的文件目錄。
  • 請求
    fileMgr/?request=list_dirs&subpath=
    sub_path 文件存放的子目錄,如果省略,則查詢用戶根目錄下的文件目錄。
  • 響應
    {
    "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或多個目錄信息。
    filename 目錄名
    mtime 最后修改時間
    auto_transcode 是否針對該目錄設置了自動轉碼任務,1表示有自動轉碼任務

13.4.查詢文件信息接口

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

    返回一個文件的信息,包含多媒體信息。
    返回數據的文件信息的描述與查詢文件列表接口中對文件信息的描述相同。

13.5.刪除文件接口

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

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

14 轉碼相關接口

14.1.轉碼接口

  • 用途
    對上傳到服務器上的視頻進行轉碼,轉碼后可以面向互聯網或局域網發布播出。

  • 請求
    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=

參數說明:
src 輸入文件名,如果文件在轉碼目錄的下級子目錄內,則需要包含該子目錄,如: subdir/myvideo.mp4。中文文件名參數使用UTF-8字符集編碼。
encoding 輸入文件名在服務器上的實際字符集編碼。如果是UTF-8可以省略。
src_id 轉碼后輸出資源的資源編號,由轉碼方提供(可以和集成的業務系統關聯對應),只能包含英文字符和數字,要確保其唯一性。這個編號就是資源在流媒體服務器上的播出流名稱,可以使用該編號獲取播出視頻流。
application 應用名,定義轉碼結束后資源發布到流媒體服務器上的哪個應用下。該應用名和流名稱(對應src_id)可以確定一個資源的播出地址。
video_bitrate 視頻轉碼的比特率,單位Kbps,如果省略表示不對視頻進行轉碼。只有視頻格式是H264,并且碼率大小適合播出(如在2Mbps以下),才可以省略該參數。
audio_bitrate 音頻轉碼的比特率,單位Kbps,如果省略表示不對音頻進行轉碼。只有音頻格式是AAC,并且碼率大小適合播出(如在100Kbps以下),才可以省略該參數。
width 視頻轉碼輸出的畫面寬度,省略或者設為0表示不改變畫幅,使用原始視頻的畫幅大小。
height 視頻轉碼輸出的畫面高度,省略或者設為0表示不改變畫幅,使用原始視頻的畫幅大小。
deinterlace 對于隔行掃描的視頻畫面,該參數定義是否進行畫面的反交錯處理,ON表示要進行反交錯,OFF或者省略表示不進行反交錯處理。
audio_stream 音頻流索引號,對于多語言的多媒體提文件,會包含多個語言的音頻流,使用該參數可以選擇一種語言輸出。不清楚怎么使用時,請省略該參數,大部分情況下不需要提供。
output_formats 轉碼輸出格式,可以是flv,hls,mp4格式的一種或幾種,多種格式使用分號隔開。省略該參數時將會使用系統配置的歸檔格式參數。
callback 可選參數。轉碼結果回調接口位置,該參數是一個HTTP地址,轉碼結束后系統使用HTTP Get向該地址匯報轉碼結果。調用回調接口時,系統會在回調接口URL上附加上資源編號參數src_id和轉碼結果參數result,result=ok表示轉碼成功,result=error表示轉碼失敗。
publish 可選參數。如果需要將轉碼輸出的視頻信息發布到第三方系統,可以提供發布地址,轉碼結束后會將視頻信息提交給該地址。如果沒有該需求,請省略該參數和title參數。
title 如果要進行轉碼信息發布,可以提供一個發布的標題。

  • 響應
    {
    "code":0
    }

14.2.轉碼進度查詢接口

  • 用途
    查詢服務器上正在轉碼的轉碼任務的進度,該接口返回所有正在轉碼任務的列表。
  • 請求
    transcodeMgr/?request=list_working
  • 響應
    {
    "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或多個轉碼任務的進度信息。
    src_file 轉碼文件名
    application 輸出應用名
    src_id 資源編號
    start_time 開始轉碼時間,Unix時間戳
    encode_progress 轉碼進度,百分比格式
    work_duration 轉碼持續時間,單位秒
    bitrate 視頻轉碼碼率,Kbps
    bitrate_audio 音頻轉碼碼率,Kpbs
    width 轉碼輸出畫幅寬度
    height 轉碼輸出畫幅高度

14.3.停止轉碼接口

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

  • 響應
    {
    "code":0
    }




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

15 用戶管理

管理系統中的管理員帳號。

15.1.添加管理員

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

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

  • 響應
    {
    "code":0
    }

15.2.刪除管理員

暫不支持

15.3.列出系統可用功能

  • 請求
    userAuth/?request=functions

  • 響應

        {
            "code": 0,
            "data": {
                "count": 17,
                "items": [
                    {
                        "controller": "loginWeb",
                        "name": "登錄管理平臺"
                    },
                    {
                        "controller": "appMgr",
                        "name": "管理應用"
                    },
                    {
                        "controller": "streamMgr",
                        "name": "管理播出流"
                    },
                    {
                        "controller": "authMgr",
                        "name": "管理播出/推流認證"
                    },
                    {
                        "controller": "streamingMgr",
                        "name": "管理串流"
                    },
                    {
                        "controller": "streamingMgr2",
                        "name": "管理監控接入"
                    },
                    {
                        "controller": "closedStream",
                        "name": "關閉/開啟直播流"
                    },
                    {
                        "controller": "demandDvr",
                        "name": "執行按需錄制"
                    },
                    {
                        "controller": "limitMgr",
                        "name": "設置并發限制"
                    },
                    {
                        "controller": "autodelMgr",
                        "name": "設置自動刪除"
                    },
                    {
                        "controller": "set_domain",
                        "name": "設置本機域名"
                    },
                    {
                        "controller": "cdnMgr",
                        "name": "配置CDN"
                    },
                    {
                        "controller": "statMgr",
                        "name": "播出統計和明細"
                    },
                    {
                        "controller": "transcodeMgr",
                        "name": "管理轉碼"
                    },
                    {
                        "controller": "fileMgr",
                        "name": "管理轉碼文件(上傳和管理資源文件)"
                    },
                    {
                        "controller": "systemMgr",
                        "name": "重啟服務"
                    },
                    {
                        "controller": "cms_module",
                        "name": "使用內容管理模塊(如果安裝)"
                    }
                ]
            }
        }




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

16 外源錄制接口

本接口實現錄制rtmp協議的直播流。

16.1.添加錄制任務

  • 用途
    添加一個錄制任務。
  • 請求
    recorderMgr/?request=add&id=8ass3&duration=120&input=rtmp://ip/app/stream
    id 任務的唯一編號,由調用接口方傳入,用于識別一個任務。
    input 要錄制的直播地址
    duration 錄制時長,秒
    img_int 截圖間隔,秒
    callback 回調地址,如果有回調地址,錄制結束后將回調該URL地址。

  • 響應

    {
    "code":0
    }
  • 回調說明
    如果提供了callback參數,錄制結束后將會請求該地址。
    系統將使用POST協議向該地址發送任務執行的情況。POST數據是一個json串,json結構如下:

        {
                "id":"abcd",
                "result":"OK",
                "start":"1516947498",
                "review_url":0,
                "images":[
                    {
                      "offset":0,
                        "url":"imageurl"
                    },
                ]
        }

    id 任務編號,有添加任務時傳入
    result 錄制結果,OK 或 ERROR
    start 開始錄制時間,UNIX時間戳
    review_url 回看地址
    images 截圖數組
    offset 截圖時間,相對于開始錄制時間的秒數。
    url 截圖地址

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东光县| 革吉县| 威远县| 区。| 惠安县| 绥芬河市| 洮南市| 尉氏县| 石景山区| 白朗县| 井冈山市| 博客| 桂平市| 体育| 宁德市| 云南省| 池州市| 施秉县| 辽中县| 诸城市| 日土县| 织金县| 沙河市| 托克托县| 当涂县| 天长市| 菏泽市| 茶陵县| 博罗县| 怀集县| 蓬溪县| 讷河市| 沿河| 衡水市| 黄平县| 永寿县| 乐安县| 汽车| 红原县| 双鸭山市| 文安县|