EasyDSS流媒体服务器使用文档

概述

EasyDSS商用流媒体服务器是EasyDarwin流媒体团队开发的一款支持视频点播、转码、RTMP推流直播、RTMP/HLS直播分发、服务端录像、录像检索、时移回放的商用流媒体服务器解决方案,采用业界优秀的流媒体框架模式设计,服务运行轻量、高效、稳定、可靠、易维护,支持RTMP直播、RTMP推送、HTTP点播、HLS直播,并支持关键帧缓冲,画面秒开等多种特性,能够接入WEB、Android、iOS、微信等全平台客户端,是移动互联网时代贴近企业点播/直播需求的一款接地气的流媒体服务器,配套OBS、EasyRTMP等直播推流工具以及EasyPlayer等网络播放器,可以形成一套完整的视频直播、录播解决方案,满足用户在各种行业场景的流媒体业务需求。

配置与部署

注:无论是Windows还是Linux运行EasyDSS流媒体服务器,都不支持中文路径,请大家使用全英文路径;

基础配置

根目录下放置了简化配置文件 easydss.conf

{
"RTMP_PORT": 10085, //RTMP 推送端口
"HTTP_PORT": 10088, //HTTP 对外端口
"HTTP_ROOT_PATH": "www", //WEB ROOT 目录
"HLS_PATH": "www/hls", //直播文件目录
"RECORD_PATH": "www/hls" //录播文件目录
}

高级功能配置

conf/template.conf 为 EasyDSS 流媒体服务器高级功能配置文件

1、rtmp功能配置

rtmp {
server {
listen $RTMP_PORT; #rtmp 监听端口,默认10085
#application可以自定义多个,例如:zklt
application live { #rtmp 直播应用
live on;
}
application hls { #hls 直播应用
live on; #live 表示只分发 rtmp
hls on; #hls 同步输出 rtmp 和 hls 直播
hls_record on; #不配置或者配置 off 表示不录像,on 表示服务器端同步录像
hls_path $HLS_PATH; #hls 直播切片目录
hls_fragment 4s; #ts 切片时长
}
}
}

2、rtmp拉流配置

rtmp {
server {
listen 10085; #rtmp 监听端口,默认 10085
#自动拉流配置
application pulltest {
live on;
#rtmp 地址为拉流地址,name 指定 rtmp 的 name
pull rtmp://ip:port/app/stream1 name=stream1;
pull rtmp://ip:port/app/stream2 name=stream2;
pull rtmp://ip:port/app/stream3 name=stream3;
}
}
}

例如配置为

pull rtmp://www.easydass.com:10085/live/livetest name=livetest

则本地EasyDSS的转发地址为

rtmp://ip:port/pulltest/livetest

3、rtmp推流配置

EasyDSS提供rtmp推流转推功能

rtmp {
server {
listen 10085; #rtmp监听端口,默认10085
#自动推流配置
application pushtest {
live on;
#rtmp地址为推流地址,name指定rtmp的name
#当EasyDSS接收app为pushtest,name为stream1的rtmp流时
#可以同步转发到指定的rtmp推流地址
push rtmp://ip:port/app/stream1 name=stream1;
#当EasyDSS接收app为pushtest的推流时
#可以同步转发到指定的rtmp推流地址
#rtmp流的name将自动添加到转发地址进行转发
#如:接收推流为/pushtest/stream
#则会转发到rtmp://ip:port/app/stream
push rtmp://ip:port/app;
}
}
}

4、防盗链功能配置

http {
...
server {
listen $HTTP_PORT;
location / {
root $HTTP_ROOT_PATH;
#Anti-stealing-link
valid_referers none blocked localhost 127.0.0.1 ~\.baidu\. ~\.google\. addyourdomain;
if ($invalid_referer) {
return 403;
}
}
...

addyourdomain 此处替换成您自己的域名如:

www.easydarwin.org

多个用空格分开,如:

www.easydarwin.org *.easydarwin.com

通过以上配置,当在其他网站下试图打开您域名下的视频时, 将会得到 access denied 信息表示防盗链配置成功.

部署说明

Windows

Linux

部署测试

启动服务后,在浏览器中打开测试页面,http://ip:10088

首页

点击播放

播放页面

业务调用方案

点播调用

直播调用

服务接口

服务对外提供 HTTP RESTful 接口, 方便业务系统集成调用.

获取直播列表

GET /api/v1/getlivesessions

返回结果示例:

{
"EasyDarwin" : {
"Body" : {
"SessionCount" : "1",
"Sessions" : {
"Sessions" : [
{
"Application" : "live",
"Bitrate" : "0",
"Id" : "stream_803425",
"NumOutputs" : "0",
"Time" : "0h 0m 2s",
"Url" : "rtmp://www.easydss.com/live/stream_803425"
}
]
}
},
"Header" : {
"Copyright" : "EasyDarwin",
"Version" : "EasyDarwin_C_v1.0"
}
}
}
字段 说明
Application 直播类型,分为 live 和 hls
Bitrate 码率
Id 设备 ID
NumOutputs 在线人数
Time 直播时长
Url 直播地址

视频回看接口

请求回看设备列表

GET /api/v1/query_record_devices

返回结果示例:

{
"msg": "success",
"code": 0,
"data": {
"devices": [
"stream_1000",
"stream_1001"
]
}
}
字段 说明
devices 设备 ID 数组
按月检索录像接口

GET /api/v1/query_record_monthly?id=xxx&period=yyyyMM

参数 类型 说明
id string 指明设备id
period string 格式yyyyMM, 指明查询哪个月的录像记录

返回结果示例:

{
"data": {
"flags" : "00001100..."
},
"code": 0,
"msg": "成功"
}
字段 类型 说明
flags string 固定长度31,每一位只能是”1”或”0”, 分别表示当日有没有录像
按日检索录像接口

GET /api/v1/query_record_daily?id=xxx&period=yyyyMMdd

参数 类型 说明
id string 指明设备id
period string 格式yyyyMMdd, 指明查询哪一天的录像记录

返回结果示例:

{
"data": {
list : [{
"start_time" : "20170731000000",
"duration" : 90.00,
"hls" : "/xxx/20170731000000/xxx_record.m3u8",
"snap" : "/xxx/20170731000000/xxx_snap.png"
},{
"start_time" : "20170731010020",
"duration" : 89.00,
"hls" : "/xxx/20170731010020/xxx_record.m3u8",
"snap" : "/xxx/20170731010020/xxx_snap.png"
}]
},
"code": 0,
"msg": "成功"
}
字段 类型 说明
start_time string 录像开始时间, 格式: yyyyMMddHHmmss
duration integer 录像历时,单位:秒
hls string 录像文件地址
snap string 录像快照地址
下载录像视频

GET /api/v1/download_video?id=xxx&time=yyyyMMddHHmmss

参数 类型 说明
id string 指明设备id
time string 格式yyyyMMddHHmmss, 所要下载录像视频的起始录制时间

获取基础配置信息

GET /api/v1/getbaseconfig

返回结果示例:

{
"EasyDarwin" : {
"Body" : {
"HTTPWanPort" : 10088,
"RTMPWanPort" : 10085,
"ServerWanIP" : "127.0.0.1"
},
"Header" : {
"Copyright" : "EasyDarwin",
"Version" : "EasyDarwin_C_v1.0"
}
}
}
字段 说明
HTTPWanPort HTTP 端口
RTMPWanPort RTMP端口
ServerWanIP 服务器IP

获取服务运行信息

GET /api/v1/getserverinfo

返回结果示例:

{
"EasyDarwin" : {
"Body" : {
"Hardware" : "x86",
"InterfaceVersion" : "v1",
"RunningTime" : "0 Days 5 Hours 15 Mins 35 Secs",
"Server" : "EasyDSS v1.0",
"Validity" : "Validity Time Left: 51 day(s)"
},
"Header" : {
"Copyright" : "EasyDarwin",
"Version" : "EasyDarwin_C_v1.0"
}
}
}
字段 说明
Hardware 硬件信息
InterfaceVersion 接口版本
RunningTime 运行时间
Server 软件信息
Validity 授权信息

获取更多信息

咨询电话:13718530929

邮件:support@easydarwin.org

WEB:www.EasyDSS.com

Copyright © www.EasyDSS.com 2012-2017

EasyDarwin