NTV Media Server G3 API All in One

发布时间:2020-06-29 08:12:50 作者:sendoffice
来源:网络 阅读:864

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接口

2.2.login2接口

2.3.logout接口


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

3.application管理接口

3.1.查询应用接口

3.2.查询DVR配置接口

{
    "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功能

3.4.关闭DVR功能

3.5.设置DVR保存格式


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

4.直播流相关接口

4.1.查询活动的视频流

4.2.关闭并禁用直播流

4.3.解除禁用的直播流

4.4.查询被禁用的直播流


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

items元素下包含被禁用的直播流列表。
application 应用名
stream 直播流名称
time 禁用时间,unix时间戳

4.5.关闭直播流(不禁用)

响应

{
    "code":0
}

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

5.点播流相关接口

5.1.查询点播流

5.2.查询直播流录制数据

5.3.删除视频流

5.4.删除录制数据


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

6.查看在线用户

6.1.查询在线用户

6.2.查询在线用户明细


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

7 按需录制直播流

7.1.定义按需录制的应用

7.2.撤销按需录制的应用

{
    "code":0
}

7.3.查询按需录制的应用

7.4.开始录制

7.5.停止录制

7.6.查看正在录制的流

        {
                "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.开启播出认证

8.2.关闭播出认证

8.3.开启和关闭播出token认证

8.4.查询播出token

8.5.添加播出token

8.6.删除播出token

8.7.设置播出认证的referer值

8.8.设置第三方播出认证地址

8.9.查询播出和推流认证配置

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.开启推流认证

9.2.关闭推流认证

9.3.查询推流token

9.4.添加推流token

9.5.删除推流token

9.6.设置第三方推流认证地址


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

10 并发限制相关接口

10.1.查询并发限制配置

10.2.设置并发限制值


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

11 串流相关接口

11.1.查询串流任务

11.2.添加串流任务

11.3.启动串流任务

11.4.停止串流任务

11.5.删除串流任务


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

12 自动删除相关接口

12.1.查询自动删除任务

12.2.新建自动删除任务

{
    "code":0
}

12.3.删除自动删除任务

{
    "code":0
}

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

13 文件上传及管理相关接口

这组接口实现视频资源的上传及管理,为视频转码和发布提供支持。
上传的服务器上的视频文件,经过转码发布后形成可以对外播出的在线视频资源。
本小节描述文件上传和管理的接口,转码接口在下一章节说明。

13.1.文件上传接口

13.2.查询文件列表接口

13.3.查询文件目录接口

13.4.查询文件信息接口

13.5.删除文件接口


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

14 转码相关接口

14.1.转码接口

参数说明:
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 如果要进行转码信息发布,可以提供一个发布的标题。

14.2.转码进度查询接口

14.3.停止转码接口




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

15 用户管理

管理系统中的管理员帐号。

15.1.添加管理员

备注: 如果传入的name在系统中存在同名用户,则会用新的信息替换原有信息,相当于“修改”用户。

15.2.删除管理员

暂不支持

15.3.列出系统可用功能




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

16 外源录制接口

本接口实现录制rtmp协议的直播流。

16.1.添加录制任务

推荐阅读:
  1. python获取系统时间的方法
  2. Python学习参加培训怎么样?靠谱吗?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ntv media server api 接口

上一篇:ListView中显示圆形图像

下一篇:Nginx+keepalived(部分配置)

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》