视频直播常见问题与解决办法汇总【系列三—直播推流】

摘要: 直播推流初始化设置 要进行直播推流,您必须开启直播加速 > 配置直播域名 > 直播推流,详情参考 快速开始。 如何获取推流地址 直播加速配置成功后,您可以通过以下方式获取对应的推流地址。 登录 视频直播控制台。

直播推流初始化设置

要进行直播推流,您必须开启直播加速 > 配置直播域名 > 直播推流,详情参考 快速开始。

如何获取推流地址

直播加速配置成功后,您可以通过以下方式获取对应的推流地址。
1.登录 视频直播控制台。
2.单击 域名管理。
3.选择所需地域。
4.选择所需的域名。
5.选择所需域名,并单击右侧的 管理。
6.在 基本信息 中,获取对应的推流地址:rtmp://video-center.alivecdn.com/AppName/StreamName?vhost=videolive.aliyuntest.club 。
图片描述
注意:

直播配置成功后,对应的推流地址获取是不需要调用 API 或者 SDK 生成或者初始化的,使用推流工具推流的时候,填入需要的 AppName 或者 StreamName 进行推流即可。如指定推流地址:rtmp://video-center.alivecdn.com/1/2?vhost=live.aliyun.com。
推流地址中 APPName 是应用名称,支持自定义,可以更改。
推流地址中 StreamName 是流名称,支持自定义,可以更改。
推流的 APPName 或 StreamName 不建议设置为中文字符。

为何OBS推流不成功

OBS 推流不成功,对应 视频直播控制台 > 流管理,正在推流信息中不能看到对应流.OBS如何进行推流,详情参考 OBS 操作指南。

排查

排查对应域名是否进行直播配置:视频直播控制台 > 域名管理 中能否看到对应的域名。直播加速配置参考 直播加速配置。
排查OBS推流配置填写的是否准确,详情参考 OBS 推流。
OBS推流配置如下:
FMS URL / URL: rtmp://video-center.alivecdn.com/AppName
播放路径/串码流(如果存在)/ 流秘钥: StreamName?vhost=live.aliyun.com

排查直播域名是否开启了A鉴权。
1.登录 视频直播控制台。
2.单击 域名管理。
3.选择所需的地域。
4.选择所需的域名。
5.单击所选域名右侧 管理。
6.单击 鉴权配置。

如果开启,计得算推流地址(rtmp://video-center.alivecdn.com/AppName/StreamName?vhost=videolive.aliyuntest.club)的鉴权地址进行推流,鉴权地址计算参考 快速开始 第4点鉴权配置。
图片描述
图片描述

直播推流支持哪些协议

视频直播只支持rtmp协议推流

直播推流如何进行鉴权推流

直播鉴权开启及鉴权地址计算参考 快速开始 第4点鉴权配置。

鉴权地址计算完成后,使用对应的鉴权地址进行推流:

OBS推流配置类似如下:
FMS URL / URL: rtmp://video-center.alivecdn.com/AppName
播放路径/串码流(如果存在)/ 流秘钥: StreamName?vhost=live8.aliyuntest.club&auth_key=1487766738-0-0-a96e76d2ebf9bbd855b0d4a9168ee600;

如何确认推流成功
1.登录 视频直播控制台。
2.单击 流管理。
3.选择所需的地域。
4.选择所需的域名。
5.流状态选择 正在推流。

如果可以查看到存在对应流,则推流成功。
图片描述

禁止推流的情况该如何实现?

用户存在业务场景需求某路流临时禁止推流。例如,对应的鉴权推流地址暴露,客户恶意推流该地址、业务需求禁止该推流URL进行推流等,就可以使用直播的禁止推流功能满足该需求。推流及鉴权推流地址概念参考 直播推流地址相关问题。

直播控制台禁止推流

1.获取正在推流地址并加入黑名单

直播推流成功后,您可以在 视频直播控制台 > 流管理 > 选择所需的地域和域名 > 选择正在推流,查看到正在推流的地址,单击 加入黑名单 即可。

图片描述

2.获取历史推流地址并加入黑名单

直播推流成功后,您可以在 视频直播控制台 > 流管理 > 选择所需的地域和域名 > 选择历史推流,查看到历史推流地址,单击 加入黑名单 即可。

图片描述

SDK实现禁止推流

视频直播的API是基于阿里云的OpenAPI实现的。因此,SDK的调用也是对OpenAPI封装后调用。以Java SDK为例,Java SDK建议使用maven管理项目依赖,在pom.xml中添加如下的依赖项:

<dependencies><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-cdn</artifactid><version>2.3.1</version></dependency><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-core</artifactid><optional>true</optional><version>2.3.8</version></dependency></dependencies>

其中,aliyun-java-sdk-core是对阿里云OpenAPI封装的核心模块,在使用OpenAPI的产品调用Java SDK均需要添加该依赖项,而aliyun-java-sdk-cdn包括了视频直播接口的Request和Response类;其中禁止推流的Request和Response类为ForbidLiveStreamRequest及ForbidLiveStreamResponse,Java代码示例如下:

public static void main(String[] args) throws Exception  {IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessId, accessKey);DefaultAcsClient client = new DefaultAcsClient(profile);ForbidLiveStreamResponse res=ForbidLiveStreamR(client);System.out.println(res.getRequestId());}
static ForbidLiveStreamResponse ForbidLiveStreamR(DefaultAcsClient client){ForbidLiveStreamRequest request =new ForbidLiveStreamRequest();request.setDomainName("<domainname>");request.setAppName("<appname>");request.setStreamName("<streamname>");request.setLiveStreamType("publisher");ForbidLiveStreamResponse response=null;try {response = client.getAcsResponse(request);}catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();} return response;}

Demo代码主要流程如下:

初始化Client对象。SDK需要通过IAcsClient对象完成对OpenAPI的调用,而初始化IAcsClient对象时根据IClientProfile对象配置region、AccessKeyId和AccessKeySecret参数。其中,region请一直写cn-hangzhou,因为这里指的是OpenAPI的服务器所在区域。AccessKeyId和AccessKeySecret参数即是账号权限验证,如果是主账号的AccessKeyId和AccessKeySecret,则可以正常使用。如果是子账号的AccessKeyId和AccessKeySecret参数,则需要保证该子账号有视频直播的权限。
初始化请求Request类。SDK对每个接口实现了对应的Request类和Response类,对应的禁止推流Request类需要传入哪些参数,看API接口定义 禁止推流API。
发起请求获取结果。使用Client对象的getAcsResponse方法发起Request对象请求,并根据该方法反馈的反序列化的结果实例化为对应接口的Response类。并且在执行该方法时可以catch ServerException和ClientException异常类,当http status>=300且<500 SDK抛ClientException,表示客户端错误。当http status>=500 SDK抛ServerException,表示服务器端错误。如果没有抛出异常则表示接口调用成功。

如何查看推流黑名单

1.直播控制台查看推流黑名单

直播推流成功后,您可以在 视频直播控制台 > 流管理 > 选择所需的地域和域名 > 选择黑名单,查看到黑名单中的推流地址。

图片描述

2.SDK获取黑名单地址视频直播的API是基于阿里云的OpenAPI实现的,因此SDK的调用也是对OpenAPI封装后调用。以Java SDK为例:Java SDK建议使用maven管理项目依赖,在pom.xml中添加如下的依赖项:

<dependencies><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-cdn</artifactid><version>2.3.1</version></dependency><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-core</artifactid><optional>true</optional><version>2.3.8</version></dependency></dependencies>

其中,aliyun-java-sdk-core是对阿里云OpenAPI封装的核心模块,在使用OpenAPI的产品调用Java SDK均需要添加该依赖项,而aliyun-java-sdk-cdn包括了视频直播接口的Request和Response类。其中,查询推流黑名单列表的Request和Response类为DescribeLiveStreamsBlockListRequest及DescribeLiveStreamsBlockListResponse,Java代码示例如下:

public static void main(String[] args) throws Exception  {IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessId, accessKey);DefaultAcsClient client = new DefaultAcsClient(profile);DescribeLiveStreamsBlockListResponse res=DescribeLiveStreamsBlockListR(client);System.out.println(res.getStreamUrls());}
static DescribeLiveStreamsBlockListResponse DescribeLiveStreamsBlockListR(DefaultAcsClient client){DescribeLiveStreamsBlockListRequest request =new DescribeLiveStreamsBlockListRequest();request.setDomainName("<domainname>");DescribeLiveStreamsBlockListResponse response=null;try {response = client.getAcsResponse(request);}catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();} return response;}

Demo代码主要流程如下:

初始化Client对象。SDK需要通过IAcsClient对象完成对OpenAPI的调用,而初始化IAcsClient对象时根据IClientProfile对象配置region、AccessKeyId和AccessKeySecret参数。其中,region请一直写cn-hangzhou,因为这里指的是OpenAPI的服务器所在区域。AccessKeyId和AccessKeySecret参数即是账号权限验证,如果是主账号的AccessKeyId和AccessKeySecret则可以正常使用,如果是子账号的AccessKeyId和AccessKeySecret参数则需要保证该子账号有视频直播的权限。
初始化请求Request类。SDK对每个接口实现了对应的Request类和Response类,对应的禁止推流Request类需要传入哪些参数,看API接口定义 查询推流黑名单列表API。
发起请求获取结果。使用Client对象的getAcsResponse方法发起Request对象请求,并根据该方法反馈的反序列化的结果实例化为对应接口的Response类。并且在执行该方法时可以catch ServerException和ClientException异常类,当http status>=300且<500 SDK抛ClientException,表示客户端错误。当http status>=500 SDK抛ServerException,表示服务器端错误。如果没有抛出异常则表示接口调用成功。

如何恢复黑名单直播流推送地址

1.直播控制台恢复

直播推流成功后,您可以在 视频直播控制台 > 流管理 > 选择所需的地域和域名 > 选择正在推流 > 选择黑名单,查看到黑名单中的推流地址,进行恢复。

图片描述

2.SDK恢复黑名单直播流推送地址

视频直播的API是基于阿里云的OpenAPI实现的,因此SDK的调用也是对OpenAPI封装后调用。以Java SDK为例。Java SDK建议使用maven管理项目依赖,在pom.xml中添加如下的依赖项:

<dependencies><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-cdn</artifactid><version>2.3.1</version></dependency><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-core</artifactid><optional>true</optional><version>2.3.8</version></dependency></dependencies>

其中,aliyun-java-sdk-core是对阿里云OpenAPI封装的核心模块,在使用OpenAPI的产品调用Java SDK均需要添加该依赖项,而aliyun-java-sdk-cdn包括了视频直播接口的Request和Response类。其中,恢复直播流推送的Request和Response类为ResumeLiveStreamRequest及ResumeLiveStreamResponse,Java代码示例如下:

public static void main(String[] args) throws Exception  {IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessId, accessKey);DefaultAcsClient client = new DefaultAcsClient(profile);ResumeLiveStreamResponse res=ResumeLiveStreamR(client);System.out.println(res.getRequestId());}
static HttpResponse ForbidLiveStream(DefaultAcsClient client){ForbidLiveStreamRequest request =new ForbidLiveStreamRequest();request.setDomainName("<domainname>");request.setAppName("<appname>");request.setStreamName("<streamname>");request.setLiveStreamType("publisher");HttpResponse response=null;try {response = client.doAction(request);}catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();} return response;}

Demo代码主要流程如下:

初始化Client对象。SDK需要通过IAcsClient对象完成对OpenAPI的调用,而初始化IAcsClient对象时根据IClientProfile对象配置region、AccessKeyId和AccessKeySecret参数。其中region请一直写cn-hangzhou,因为这里指的是OpenAPI的服务器所在区域。AccessKeyId和AccessKeySecret参数即是账号权限验证。如果是主账号的AccessKeyId和AccessKeySecret,则可以正常使用。如果是子账号的AccessKeyId和AccessKeySecret参数,则需要保证该子账号有视频直播的权限。

初始化请求Request类。SDK对每个接口实现了对应的Request类和Response类,对应的禁止推流Request类需要传入哪些参数,看API接口定义 恢复直播流推送API。
发起请求获取结果。使用Client对象的getAcsResponse方法发起Request对象请求,并根据该方法反馈的反序列化的结果实例化为对应接口的Response类。并且在执行该方法时可以catch ServerException和ClientException异常类,当http status>=300且<500 SDK抛ClientException,表示客户端错误。当http status>=500 SDK抛ServerException,表示服务器端错误。如果没有抛出异常则表示接口调用成功。

0.1元开启直播之旅

图片描述

开年采购季,为了让更多用户能够体验和享受到视频直播云服务的便利,视频产品推出了0.1元体验包,配置清单如下:
图片描述

原文链接

干货好文,请关注扫描以下二维码:
图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作流实战_10_flowable 流程实例的删除

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://space.bilibili.com/485524575/channel/detail?cid94579 用户名密码0000001test0000002test0000003test0000004test文章目录1. 演示2. 代码2.1. 删除实例命令2.2. 执行删除动作1. 演示 …

深入了解机器学习

摘要&#xff1a; 了解机器学习发展史、机器学习是什么&#xff1f;机器学习有什么&#xff1f;看看本文就够了。如今机器学习已经成为了这个时代的热门话题。机器学习已经存在了几十年&#xff0c;但直到最近我们才得以利用这项技术。接下来&#xff0c;让我们一起回顾一下机器…

python程序设计的基本步骤_Python程序设计课程教与学(54、72、80学时教学大纲)...

原标题&#xff1a;Python程序设计课程教与学&#xff08;54、72、80学时教学大纲&#xff09;《算法与程序设计》课程教学大纲 Programming and Algorithm Fundamentals (Python-based) 一&#xff0e;基本信息 课程学分&#xff1a;4 &#xff1b; 面向专业&#xff1a;计算机…

百分点10周年乔迁新址 数据智能服务更上一层楼

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘丹2019年8月&#xff0c;是百分点值得纪念和庆祝的日子&#xff0c;随着百分点团队的迅速扩大与蓬勃发展&#xff0c;全国各地业务开展的有声有色&#xff0c;业绩快速增长&#xff0c;在企业成立十周年之际&#xff0c;更…

用Python及深度学习实现iPhone X的FaceID功能

摘要&#xff1a; 本文主要是展示FaceID解锁机器的基本工作机制&#xff0c;采用的方法是基于人脸映射和孪生卷积神经网络&#xff0c;Github上附详细代码。对于果粉们来说&#xff0c;对新出的iPhone X讨论最多的是其解锁方式&#xff0c;TouchID的继承者——FaceID。对于新一…

工作流实战_11_flowable 流程实例 跟踪流程

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://space.bilibili.com/485524575/channel/detail?cid94579 用户名密码0000001test0000002test0000003test0000004test文章目录1. 演示2. 代码分享1. 演示 2. 代码分享 public byte[] cre…

企业如何采用机器学习

摘要&#xff1a; 向机器学习专家学习如何理解机器学习开发生命周期&#xff0c;以及如何建立一个团队通过机器学习来解决他们的业务问题。毫无疑问&#xff0c;任何企业都可以利用机器学习的优势将机器学习应用到他们的业务过程中。而机器学习的意义将取决于它是如何被应用的&…

Spark精华问答 | spark的组件构成有哪些?

戳蓝字“CSDN云计算”关注我们哦&#xff01;Spark是一个针对超大数据集合的低延迟的集群分布式计算系统&#xff0c;比MapReducer快40倍左右&#xff0c;是hadoop的升级版本&#xff0c;Hadoop作为第一代产品使用HDFS&#xff0c;第二代加入了Cache来保存中间计算结果&#xf…

binlog日志_mysql 重要日志文件总结

日志是所有应用的重要数据&#xff0c;MySQL 也有错误日志、查询日志、慢查询日志、事务日志等。本文简单总结下各种日志&#xff0c;以备查阅。二进制日志 binlog二进制日志 binlog 用于记录数据库执行的写入性操作(不包括查询)信息&#xff0c;以二进制的形式保存在磁盘中。使…

Python数据预处理:使用Dask和Numba并行化加速

摘要&#xff1a; 本文是针对Python设计一种并行处理数据的解决方案——使用Dask和Numba并行化加速运算速度。案例对比分析了几种不同方法的运算速度&#xff0c;非常直观&#xff0c;可供参考。如果你善于使用Pandas变换数据、创建特征以及清洗数据等&#xff0c;那么你就能够…

工作流实战_12_flowable 流程实例 终止流程

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://space.bilibili.com/485524575/channel/detail?cid94579 用户名密码0000001test0000002test0000003test0000004test文章目录1. 演示2. 代码分享1. 演示 2. 代码分享 public ReturnVo&l…

让运维更高效:关于ECS系统事件

摘要&#xff1a; 阿里云会针对ECS实例发布系统事件&#xff0c;当您收到阿里云计划维护的通知时&#xff0c;可以利用ECS系统计划事件了解与实例相关的计划维护操作&#xff0c;并根据您的业务特性选择合适的时间安排运维操作进行故障转移&#xff0c;减少对系统可靠性和业务连…

工作流实战_13_flowable 待办任务列表查询

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://space.bilibili.com/485524575/channel/detail?cid94579 用户名密码0000001test0000002test0000003test0000004test文章目录1. 演示2. 代码分享1. 演示 2. 代码分享 这里我使用的sql查…

openlayer xyz加载_webGIS实践:3_1_openlayer展绘点线面注记

上一篇已经讲了&#xff0c;怎么加载瓦片地图。这篇就看看怎么简单的渲染矢量点线面数据。最简单的&#xff0c;绘制点线面注记。效果长这样&#xff1a;新建一个文件FeatureOL.HTML。代码如下&#xff1a;<!DOCTYPE html> <html lang"en"> <head>…

反转了!“只问了1个框架,就给了35K的Python岗”

Python还有“敌人”吗&#xff1f;最近网络上一则帖子吸引了笔者&#xff0c;大意内容为&#xff1a;据说A是有2年多经验的Python工程师&#xff0c;面一个公司相关的岗位&#xff0c;由于人手紧缺&#xff0c;所以只问了一个框架&#xff0c;就按笔者提的35K办理了入职。&…

用深度学习解决Bongard问题

摘要&#xff1a; 本文介绍了深度学习和Bongard问题&#xff0c;以及如何用深度学习更好的解决Bongard问题。Bongard问题是苏联计算机科学家Mikhail Bongard提出的。从20世纪60年代&#xff0c;他致力于研究模式识别&#xff0c;并且设计了100个这样的谜题&#xff0c;使之成为…

使用Jenkins+Sonarqueb进行自动化测试和代码质量检测

摘要&#xff1a; Jenkins Jenkins是一款开源的持续集成工具&#xff0c;它的特点&#xff1a;易于安装、易于配置、可扩展&#xff08;自己开发插件&#xff09;&#xff0c;并且它拥有数以百计的成熟插件&#xff0c;这种插件式的特点提供可做任何事情的可能。 简介 Jenkins …

工作流实战_15_flowable 我发起的流程实例查询

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://space.bilibili.com/485524575/channel/detail?cid94579 用户名密码0000001test0000002test0000003test0000004test文章目录1. 演示![在这里插入图片描述](https://img-blog.csdnimg.cn…

Istio 庖丁解牛六:多集群网格应用场景

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 钟华来源 | ServiceMesher随着容器技术的流行&#xff0c;大量互联网公司和传统 IT 企业都在尝试应用容器化和服务上云。容器化是一个持续的过程&#xff0c;伴随着多地域部署、安全等级隔离、多云和混合云等复杂的场景需求。…

NAT网关之SNAT进阶使用(一)SNAT POOL

摘要&#xff1a; NAT网关是云上VPC ECS访问Internet的出入口。SNAT可实现指定的VPC ECS使用指定的公网IP访问互联网。阿里云NAT网关控制台创建SNAT条目时&#xff0c;默认是为指定的交换机配置1个公网IP地址。 &#xff08;一&#xff09;前言 为什么使用SNAT POOL NAT网关是云…