EasyDSS流媒体服务器软件,提供一站式的转码、点播、直播、时移回放服务,极大地简化了开发和集成的工作。

其中,点播功能主要包含:上传、转码、分发。直播功能主要包含:直播、录像, 直播支持RTMP输入,RTMP/HLS/HTTP-FLV的分发输出;录像支持自定义保存时长、检索及下载。提供丰富的二次开发接口,基于JSON的封装及HTTP调用。提供播放鉴权、推流鉴权等安全保证。提供用户及相关权限管理配置。

相关资源路径:
【官方网站】
【点播版本在线演示】
【直播版本在线演示】
【旗舰版本在线演示】
【在线接口】

这篇博文主要介绍如何利用软件提供的接口快速接入开发。

一、快速安装

  1. 下载地址
  2. 下载对应环境的安装包
  3. 解压安装包
  4. Windows下双击EasyDSS.exe直接启动
  5. Linux下解压目录执行./start.sh

注:路径中不能包含中文

二、二次开发

二次开发中,方式是在自己业务系统后端登录接口中,调用流媒体的登录接口,获取所需的sid或是token

1.封闭内网使用

在业务使用,如果只是使用EasyDSS提供视频分发能力,且不会对外公开接口端口10080(默认端口),可以直接将接口鉴权关闭,具体服务器登录 http://localhost:10080 默认用户名/密码 admin/admin, 在 基础配置 页面,【接口鉴权】开关。

接口鉴权开关

2.业务系统对接(两种方式)

2.1 cookie方式

注: HttpOnly = true 客户端API(例如JavaScript)无法访问仅限http的cookie。 此限制通过跨站点脚本(XSS)消除了cookie被盗的威胁。

  1. 在后端业务代码中对接,如Java/PHP/Node.js 等
  2. 调用EasyDSS登录接口,接口调用成功后会在请求Headers的cookie中写入sid
  3. 取出cookie里的sid
  4. 其它接口调用时在请求头cookies中传递sid
  5. Content-Type:application/x-www-form-urlencoded
  6. 接口请求路径示例:http://localhost:10080/login

代码示例:Java

2.1.1 获取sid

import java.io.DataOutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;public class GetLoginSid {public static void main(String[] args) throws Exception {URL url = new URL("http://demo.easydss.com:10080/login");//发起POST请求,并传递username,password参数(需要md5加密)HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);conn.setDoInput(true);conn.setRequestMethod("POST");     conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");DataOutputStream out = new DataOutputStream(conn.getOutputStream()); String content = "username=admin&password=21232f297a57a5a743894a0e4a801fc3";out.writeBytes(content);out.flush(); out.close();Map<String, List<String>> headerFields = conn.getHeaderFields();Set<String> headerFieldsSet = headerFields.keySet();Iterator<String> hearerFieldsIter = headerFieldsSet.iterator();while (hearerFieldsIter.hasNext()) {String headerFieldKey = hearerFieldsIter.next();if ("Set-Cookie".equalsIgnoreCase(headerFieldKey)) {List<String> headerFieldValue = headerFields.get(headerFieldKey);for (String headerValue : headerFieldValue) {String[] fields = headerValue.split(";\\s*");for (int j = 0; j < fields.length; j++) {if (fields[j].indexOf('=') > 0) {String[] f = fields[j].split("=");if ("Expires".equalsIgnoreCase(f[0])) {                       System.out.println("Expires:" + f[1]);}else if ("Max-Age".equalsIgnoreCase(f[0])) {                 System.out.println("Max-Age:" + f[1]);}else if ("sid".equalsIgnoreCase(f[0])) {  //获取sid   System.out.println("sid:" + f[1]);}}}}}}}}

运行如下

获取sid运行结果

2.1.2 携带sid调用其它接口

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;public class RequestOtherAPI {public static void main(String[] args) throws Exception {URL url = new URL("http://demo.easydss.com:10080/live/list");HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);conn.setDoInput(true);conn.setRequestMethod("POST");     conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");//这里传递上一步获得sidconn.setRequestProperty("Cookie","sid=s%3Ark-TEuVtm.WnWoXuDY%2FldJuEc64I6TXjd0Fq1eqByEd4ng1UwNb2I;");DataOutputStream out = new DataOutputStream(conn.getOutputStream()); String content = "start=0&limit=10";out.writeBytes(content);out.flush(); out.close();conn.connect();StringBuffer sbf = new StringBuffer();InputStream is = conn.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));String strRead = null;while ((strRead = reader.readLine()) != null) {sbf.append(strRead);sbf.append("\r\n");}reader.close();System.out.println(sbf.toString());}}

运行如下

调用其他接口示例

2.2 token方式

  1. 调用登录接口获取token,调用时传递 onlytoken=true
    如: http://demo.easydss.com:10080/login?username=admin&password=21232f29757a5a&onlytoken=true
  2. Content-Type:application/x-www-form-urlencoded
  3. 其它接口调用时传递附加token入参

代码示例:Java

2.2.1 获取token

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;public class GetLoginToken {public static void main(String[] args) throws Exception {URL url = new URL("http://localhost:10080/login");HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);conn.setDoInput(true);conn.setRequestMethod("POST");     conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");DataOutputStream out = new DataOutputStream(conn.getOutputStream()); String content = "username=admin&password=21232f297a57a5a743894a0e4a801fc3";out.writeBytes(content);out.flush(); out.close();conn.connect();StringBuffer sbf = new StringBuffer();InputStream is = conn.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));String strRead = null;while ((strRead = reader.readLine()) != null) {sbf.append(strRead);sbf.append("\r\n");}reader.close();System.out.println(sbf.toString());}}

运行如下

获取token运行结果

2.2.2 携带token调用其它接口

其他接口调用时,附加token入参

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;public class RequestOtherAPIByToken {public static void main(String[] args) throws Exception {URL url = new URL("http://localhost:10080/live/list");HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);conn.setDoInput(true);conn.setRequestMethod("POST");     conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");DataOutputStream out = new DataOutputStream(conn.getOutputStream()); String content = "start=0&limit=10&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1Mzc3NzExNTAsInB3IjoiMjEyMzJmMjk3YTU3YTVhNzQzODk0YTBlNGE4MDFmYzMiLCJ0bSI6MTUzNzY4NDc1MCwidW4iOiJhZG1pbiJ9.b1U-R-_HVKV9reWRD50327B1ztUqs3gowUGi_lDzlmU";out.writeBytes(content);out.flush(); out.close();conn.connect();StringBuffer sbf = new StringBuffer();InputStream is = conn.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));String strRead = null;while ((strRead = reader.readLine()) != null) {sbf.append(strRead);sbf.append("\r\n");}reader.close();System.out.println(sbf.toString());}
}

运行如下

携带token调用其他接口结果

联系我们

【产品咨询】:18855116161/18855116363
【商务咨询】:18855116565/18855116262
【邮    件】:support@easydss.com

EasyDSS流媒体服务器软件-搭建及二次开发接口对接说明示列相关推荐

  1. java做flv直播服务器,EasyDSS流媒体服务器软件(支持RTMP/HLS/HTTP-FLV/视频点播/视频直播)-正式环境安装部署攻略...

    EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作. 其中,点播功能主要包含:上传.转码.分发.直播功能,主要包含:直播.录像, 直播支持RTMP ...

  2. EasyDSS流媒体服务器软件-实现的多码率视频点播功能说明

    EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作. 其中,点播功能主要包含:上传.转码.分发.直播功能主要包含:直播.录像, 直播支持RTMP输 ...

  3. EasyDSS流媒体服务器软件(支持RTMP/HLS/HTTP-FLV/视频点播/视频直播)-正式环境安装部署攻略

    EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作. 其中,点播功能主要包含:上传.转码.分发.直播功能,主要包含:直播.录像, 直播支持RTMP ...

  4. EasyDSS流媒体服务器软件-正式环境安装部署攻略

    EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作. 其中,点播功能主要包含:上传.转码.分发.直播功能主要包含:直播.录像, 直播支持RTMP输 ...

  5. EasyDSS流媒体服务器软件支持HTTPS-启用https服务申请免费证书

    EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作. 其中,点播功能主要包含:上传.转码.分发.直播功能,主要包含:直播.录像, 直播支持RTMP ...

  6. EasyDSS视频点播服务器软件实现的多码率视频转码点播功能原理的说明

    说起视频点播,仿佛是一个很古老的概念,从2G时代好像就有视频网站(优酷.土豆.酷6那时候),不过随着移动互联网.前端技术.微信公众号.微博.H5.小程序的发展,传统的那些视频点播技术是肯定不符合当前全 ...

  7. 网页视频直播、微信视频直播技术解决方案:EasyNVR与EasyDSS流媒体服务器组合之区分不同场景下的直播接入需求...

    背景分析 熟悉EasyNVR产品的朋友们都知道,EasyNVR不仅可以独成体系,而且还可以跟其他系列产品相配合,形成各种不同类型的解决方案,满足各种不同应用场景的实际需求.针对很多设备现场没有固定公网 ...

  8. 网页视频直播、微信视频直播技术解决方案:EasyNVR与EasyDSS流媒体服务器组合之区分不同场景下的直播接入需求

    背景分析 熟悉EasyNVR产品的朋友们都知道,EasyNVR不仅可以独成体系,而且还可以跟其他系列产品相配合,形成各种不同类型的解决方案,满足各种不同应用场景的实际需求.针对很多设备现场没有固定公网 ...

  9. 在阿里云ECS上安装流媒体服务器软件Ti Top Streamer

    一.产品概述 Ti Top Streamer是一个流媒体服务器软件,支持多种视频流传输协议.支持多协议分发和转推,拥有漂亮而优雅的管理界面,支持中英双语切换,具备丰富的Http Rest API. T ...

最新文章

  1. AWS — AWS 上的 5G 网络切片
  2. Spring Boot 2.6.1 发布:为 Spring Cloud 2021铺路!
  3. DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
  4. VS2019编译32位程序运行于XP系统
  5. Java 静态变量和静态方法
  6. 高级PHP应用程序漏洞审核技术
  7. npm run dev报错_React + TypeScript 从零开发Popup组件并发布到 npm
  8. 鸿蒙系统和中标麒麟系统关系,操作系统有哪些 先有鸿蒙后有麒麟V10 为5G时代量身定做...
  9. 清除stoped impdp/expdp job的方法
  10. 17秋 SDN课程 第一次作业
  11. idea project settings在哪_IntelliJ IDEA如何对project的目录进行筛选显示?
  12. 问道手游服务器维护,问道手游2021年5月20日维护公告_问道手游2021年5月20日更新了什么_玩游戏网...
  13. 16比9尺寸是多少厘米_16比9尺寸的长宽是多少像素
  14. matlab无法打开wps的xls文件,WPS无法打开XLS文件怎么办 XLS文件出现异常无法打开怎么处理...
  15. 解放生产力 - Xcode 与 Simulator 技巧整理(持续更新中)
  16. 快速批量移除B站粉丝,解放双手!
  17. 10.13NOIP模拟赛
  18. Jenkins 设置镜像_在k8s上安装Jenkins及常见问题
  19. Matlab map工具箱的使用
  20. unicode 生僻字_生僻字打不出来怎么办小编教你解决办法

热门文章

  1. 善用 SPINWAIT 处理 线程空转 以利提升效能
  2. Android获取应用APP
  3. Unity MRTK使用详解(Htc vive+LeapMotion)
  4. django问题详解
  5. Matlab下模糊推理进行辅助驾驶GUI设计
  6. vue上传图片及其注意事项
  7. python自动化脚本查找百度
  8. CS品牌SD NAND在车联网行业中的应用案例
  9. linux用date获取时间戳格式说明
  10. ctf-ichunqiu-misc