阿里云播放器直接在线点播视频以及直播技术,此处记录直播实现过程

更多精彩

  • 更多技术博客,请移步 IT人才终生实训与职业进阶平台

官网

阿里云直播-快速入门

准备步骤

  1. 创建 阿里云账号
  2. 根据 流程 完成实名认证,以确保可以使用阿里云相应服务
  3. 在密钥管理页面获取阿里云访问密钥,AccessKeyId 和 AccessKeySecret
  4. 开通阿里云直播服务

关键点

  1. 阿里云直播服务端提供了 一系列 API ,但如果只是单纯的直播[推流和拉流] ,实际不需要使用这些 API

推流准备

  1. 推流即直播人员进行视频播放的操作,这需要使用推流客户端 第三方推流工具 OBS
  2. 在推流工具中需要指定推流地址、流名称、鉴权密钥
  3. 如果上述信息阿里云验证合法,既可以开始直播,在阿里云后端可以看到正在直播的流信息

拉流准备

  1. 拉流即直播观众通过视频播放器在线获取直播信息,播放器使用 阿里云播放器 即可,该播放器目前只是阿里云的点播和直播服务
  2. 获取拉流地址后传入播放器,即可开始观看直播

Java 开发注意点

  1. 在阿里云直播的文档中有提供 Java SDK

    • 目前 SDK 中推荐引入的版本号是 2.3.0 ,但其实所有 API 参照的都是最新版 SDK ,最新的版本号可在 阿里云SDK频道 找到
  2. 但如果只是单纯的直播[推流和拉流] ,则不需要进行以上操作
  3. 推流的关键点在于 直播鉴权
    • 此处介绍的直播鉴权只是说的 auth_key 的拼接和验证规则
    • 完整的推流和拉流地址并不知这些,需要依旧案例参考

获取推流地址

  1. 此处获取的只是推流地址的房间号及其他请求参数
  2. 完整的推流地址需要加上阿里云直播中心地址用户的产品名称
    • 直播中心地址 http://video-center.alivecdn.com
    • 产品名称[支持自定义] /appName/
  3. vhost 用于接收拉流地址,即申请阿里云直播时准备的直播域名
  4. 此处使用 Java MD5加密 实现字串加密,加密后长度需要是 32 位
  5. 加密串中的 Constants.ALI_LIVE_PRIVATE_KEY 可在阿里云后端的直播鉴权处获取
// 获取推流地址
public String getPushUri(String roomName, Long endTime) {return getRoomName(roomName) + "vhost=" + Constants.ALI_LIVE_PULL_URL + "&" + generateAuthKey(roomName, endTime);
}// 房间号
private String getRoomName(String roomName) {return roomName + "?";
}// 完整验签串
private String generateAuthKey(String roomName, Long endTime) {return "auth_key=" + endTime + generateUuid() + generateEncryptStr(roomName, endTime);
}// 唯一标识
private String generateUuid() {String uuid = "0";String uid = "0";return "-" + uuid + "-" + uid + "-";
}// 验签密钥
private String generateEncryptStr(String roomName, Long endTime) {String uri = Constants.ALI_LIVE_APP_NAME + roomName;return md5(uri + "-" + endTime + generateUuid() + Constants.ALI_LIVE_PRIVATE_KEY);
}

获取拉流地址

  1. 此处获取的拉流地址是完整的,因为拉流地址是直接获取后传入前端的阿里云播放器中
  2. 注意房间名后面加的后缀 .m3u8 用于表示接受的直播视频类型,阿里云官方还提供其他几种类型,可在文档中查看
  3. 拉流地址和推流地址最大的区别在于请求地址的不同,拉流是请求自己提供给阿里云的直播域名,而拉流是请求阿里云的直播中心
  4. 而且推流时需要指定 vhost 告知阿里云直播域名,但拉流时不需要
  5. 获取到拉流地址后可直接参照 Java + jQuery 实现阿里云播放器接口 实现播放器的对接
    • 在播放器的的配置中指明 isLive: true 表名是直播操作
    • 上述笔记中实现的是点播接口,利用的通过 vid 获取 playAuth 的方式,这不适用于直播
    • 直播需要直接指定 source: url 即可
public String getPullUrl(String roomName, Long endTime) {roomName += ".m3u8";return "http://" + Constants.ALI_LIVE_PULL_URL + generateUri(roomName) + generateAuthKey(roomName, endTime);
}// 获取请求参数
private String generateUri(String roomName) {return Constants.ALI_LIVE_APP_NAME + getRoomName(roomName);
}// 房间号
private String getRoomName(String roomName) {return roomName + "?";
}// 完整验签串
private String generateAuthKey(String roomName, Long endTime) {return "auth_key=" + endTime + generateUuid() + generateEncryptStr(roomName, endTime);
}// 唯一标识
private String generateUuid() {String uuid = "0";String uid = "0";return "-" + uuid + "-" + uid + "-";
}// 验签密钥
private String generateEncryptStr(String roomName, Long endTime) {String uri = Constants.ALI_LIVE_APP_NAME + roomName;return md5(uri + "-" + endTime + generateUuid() + Constants.ALI_LIVE_PRIVATE_KEY);
}

Java 实现阿里云直播相关推荐

  1. JAVA生成阿里云直播推流和拉流

    import cn.hutool.crypto.digest.DigestUtil; import org.apache.commons.lang.StringUtils;import java.ut ...

  2. java阿里云直播推流拉流工具类

    package com.core.common.utils;import com.alibaba.fastjson.JSONObject;import java.util.HashMap; impor ...

  3. 超级详细!java实现阿里云视频直播功能

    java实现阿里云视频直播 准备工作 [官方地址](https://help.aliyun.com/document_detail/198676.html?spm=a2c4g.446769.0.0.1 ...

  4. java 阿里云直播配置及推拉流地址获取

    一.开通阿里云直播 首先进入阿里云直播产品主页:https://www.aliyun.com/product/live . 点击下方的"立即开通". 如果是还未注册的用户请按照页面 ...

  5. 阿里云直播、直播录制和点播

    近来公司有个直播类的项目,让我调研下阿里云直播,花了3.4天调研结束后,做下笔记,一方面自己日后便于查看,另一方面与大家做个交流,有说的不正确的.欢迎指正. 需求说明:本项目有三个媒体端,分别是app ...

  6. 猫晚流量再创记录,阿里云直播方案护航优酷2500万用户体验

    对"剁手党而言,天猫双11早已经超越了简单的"买买买",更是一场边看边玩的狂欢盛宴.今年的天猫双11狂欢夜晚会(简称"猫晚")在上海举办,这台兼具年轻 ...

  7. 阿里云直播PHP SDK如何使用

    前一篇聊了聊关于阿里云直播,如何进行进行调试,ok,那这篇我们就聊一聊关于阿里云直播的SDK(当然是关于PHP的),基于下面的原因: 1.直播云没有单独的SDK,直播部分的SDK是直接封装在CDN的相 ...

  8. 首帧秒开+智能鉴黄+直播答题,阿里云直播系统背后技术大起底

    摘要: 想要快速实现直播能力,并对原有业务不产生任何影响,依托如阿里云一样的直播平台,来搭建移动直播系统,将技术难题交给阿里云,把更多的精力放在核心业务的本身,是最为稳妥和高效的选择.本文介绍阿里云直 ...

  9. iOS直播集成和问题总结(阿里云直播)

    https://www.jianshu.com/p/714ce954e628 最近接手公司的直播项目,对以前遗留的问题做处理和优化, 于是顺便看了下阿里云直播的文档,在下面写下对直播的理解和遇到的问题 ...

最新文章

  1. 2.2元组介绍+字符串操作
  2. proteus仿真micropython_[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
  3. 如何在 SAP Hybris WCMS cockpit 里创建新的 website
  4. jsp调用controller方法_RPC调用_服务注册与发现
  5. Linux网络编程--聊天室客户端程序
  6. 一加7发布之后 雷军微博沦陷:米粉直呼心累
  7. php跳转post,php如何使用post跳转页面
  8. C语言实现高尔顿钉板实验(模拟正态分布)
  9. OSPF的Router-LSA和Network-LSA
  10. 深度学习平台配置 Pytorch+RTX3090+Pycharm
  11. Untiy InputSystem(一) 新旧API对比
  12. 惠普linux系统改装win7,惠普EliteDesk800 G3台式机预装win10改win7教程
  13. 如何根据快递单号物流信息自动识别快递状态
  14. Android 电池管理
  15. 要习惯同时兼顾几个学习项目
  16. C语言逻辑左移指令shl怎么用,汇编语言SHL(左移)指令:将操作数逻辑左移一位...
  17. 中公教育培训python
  18. 《大数据技术从零开始》自学知识库(2022年整理)
  19. LeetCode | Path Sum II
  20. 【考研数学】八.曲面积分

热门文章

  1. [serviceMesh]陌陌实践
  2. 鸿蒙内核为linux,现在linux改叫内核(非OS),安卓/iOS/鸿蒙才能被称为“操作系统 - 水木快照 JinghuaSoft...
  3. Java学习笔记———选择结构
  4. Android Q 分区储存: 最佳实践和几项更新
  5. iframe中的onload事件深藏功与名
  6. 简单的爬虫入门--爬取百度股票信息--来自mooc嵩老师视频
  7. 开机读不了bios,提示为 press del to enter setup, esc to enter boot menu?
  8. Rust 中级教程 第5课——trait(3)
  9. seat TCC 实战(图解_秒懂_史上最全)
  10. 【三维人脸识别】matlab读取.wrl三维图像文件