云服务器内容精选
-
检查播放端 在第三方播放器中输入播放地址进行播放,检查播放器是否存在问题,建议可以使用VLC播放器检测。 检查播放设备是否存在问题,建议可以换一个手机和PC进行检测。 检查播放器是否支持对应的格式。 以下为华为云 视频直播 播放器对直播流格式的支持情况: Web端播放器:支持的格式有M3U8和FLV。 移动端播放器:支持的格式有RTMP、FLV和M3U8。 若检查是播放器不支持导致,建议切换播放器播放。
-
检查播放地址是否正确 您需要根据是否配置了Key防盗链的情况来拼接对应的原始播放地址和鉴权播放地址。若开启了Key防盗链加密鉴权,则需要使用鉴权后的播放地址,否则,请使用原始播放地址进行播放。 请您对照播放地址拼接规则,确认当前的播放地址是否正确,若不正确,请使用正确的地址进行播放。 原始播放地址支持FLV、M3U8、RTMP三种格式,对应的拼接规则如下所示: RTMP格式:rtmp://播放 域名 /AppName/StreamNameFLV格式:http://播放域名/AppName/StreamName.flvM3U8格式:http://播放域名/AppName/StreamName.m3u8 请您按照实际使用的AppName和StreamName拼接播放地址。 鉴权播放地址请参见播放Key防盗链拼接对应的播放地址。 播放地址中的AppName和StreamName必须与推流地址中的一致。
-
检查CNAME是否生效 由于视频直播服务默认开启直播下行加速服务,即播放加速,若您未配置CNAME解析,将由于无法解析播放域名,导致播放失败。请您参照如下方法,验证播放CNAME是否配置成功。 登录视频直播控制台。 在左侧导航树中,选择“域名管理”。 在域名列表中,获取播放域名的CNAME。 图2 域名管理 打开Windows操作系统中的cmd程序,通过nslookup加速域名的方式进行查询。 若回显的是系统分配的CNAME域名,则表示已配置CNAME。否则,您需要参考CNAME配置完成配置。
-
检查推流端 视频播放时出现卡顿,有一部分原因是由于直播推流时出现了卡顿影响了片源质量。其中,设备的配置、视频采集参数的设置、网络环境等因素都可能导致推流端出现卡顿。当推流端出现卡顿时,您可以参照如下几方面逐一排查问题。 设备配置 推流过程中会占用一定比例的CPU,硬件配置较差的低端设备,在推流过程中若整体CPU使用率超过80%以上,画面会出现不同程度的卡顿,花屏等现象,会影响到视频的采集,导致片源质量下降影响用户端的观看。您可以通过更换设备配置、系统版本等较高的设备,以保障推流端设备的稳定性尽量避免可能导致卡顿的因素产生。 推流开发工具配置 由于编码端设置的码率、帧率以及编码档位过高,且受硬件条件限制,会导致编码速度变慢,无法达到流畅播放的帧率要求。因此对于推流设备的使用,iOS版的移动端建议您使用硬编码,因为iOS系统和硬件设备统一性高,而且省电。而Android版的移动端因为机型复杂,CPU类型众多,支持程度不一,推荐4.3及以上版本使用硬编码。 视频采集参数配置 一般情况下,为保障视频的流畅度帧率会设置在每秒15帧以上,如果帧率低于每秒10帧,画面就会出现较明显的卡顿,如无特殊情况,尽量将视频帧率设置在每秒15-30帧之间。帧率超过每秒30帧后,人眼就无法识别出画面的效果,且帧率增加后视频传输的带宽成本也会上升,建议您合理设置视频的采集参数。 网络带宽大小 使用在线带宽测试检查推流端的上行网络带宽情况 ,一般建议上行带宽最好稳定在10M以上。 系统资源占用 检查后台是否运行了大量的程序,建议删除和停止正在运行的程序,空出资源。
-
检查CNAME是否生效 视频直播服务默认开启直播上行加速服务,即推流加速。若您的推流域名未配置CNAME解析,则会由于无法解析推流域名,从而导致推流失败。请您参照如下步骤,验证推流域名的CNAME是否配置成功。 登录视频直播控制台。 在左侧导航树中,选择“域名管理”。 在域名列表中,获取推流域名的CNAME。 图2 域名管理 打开Windows操作系统中的cmd程序,通过nslookup加速域名的方式进行查询。 若回显的是系统分配的CNAME域名,则表示已配置CNAME。否则您需要参考CNAME配置完成配置。
-
检查直播源站或直播CDN 若推流端和播放端的排查结果均正常,请检查源站和加速区域的设置是否正确,详情请参考如何选择直播源站和加速区域?。 若检查结果均正常,请提交工单联系技术客服排查直播源站或直播CDN是否存在问题。 提交工单时,需附上如下信息: 问题发生时间。 故障现象,并提供访问异常或慢的URL地址、直播推流或拉流地址。 故障节点信息,并提供Ping域名的返回结果图。 用户出口IP和出口DNS,示例如:http://dns-detect-portal.n.cdnhwc5.cn/?domain=xx.xx.xx。并提供相应的访问截图。
-
检查推流地址是否正确 您需要根据是否配置了Key防盗链的情况来拼接对应的原始推流地址或鉴权推流地址。若开启了Key防盗链加密鉴权,则需要使用鉴权后的推流地址,否则,请使用原始推流地址进行推流。 请您对照推流地址拼接规则,确认当前的推流地址是否正确,若不正确,请使用正确的地址进行推流。 原始推流地址拼接规则如下: rtmp://推流域名/AppName/StreamName 请您按照实际使用的“AppName”和“StreamName”拼接推流地址。 华为云视频直播服务的推流协议暂只支持RTMP,推流地址必须以rtmp开头。 鉴权推流地址请参见推流鉴权进行拼接。
-
原因3解决方法 播放域名和推流域名必须在同一Region的直播源站才能关联。如果不在相同Region,关联时会报错“配置参数region校验失败”。 登录视频直播控制台。 在左侧导航树中,选择“域名管理”,如图3所示。 在域名列表中,检查播放域名和推流域名的直播源站是否在同一Region,需同为“华北-北京四”或同为“亚太-新加坡”。 若是,则直播域名关联失败,非本原因导致。 若不是,需重新创建推流域名,且推流域名选择的“直播源站”所在Region必须与播放域名保持一致。 图3 域名管理
-
原因2解决方法 若推流域名不是“云直播”类型,则关联推流域名时会失败,界面报错“不支持媒体直播域名”。 登录视频直播控制台。 在左侧导航树中,选择“域名管理”,如图2所示。 在域名列表中,检查推流域名的“子服务类型”是否为“云直播”。 若是,则直播域名关联失败,非本原因导致。 若不是,则推流域名的“子服务类型”是“媒体直播”。需重新创建域名,且推流域名的“子服务类型”必须选择“云直播”。 图2 域名管理
-
SDK概述 华为云提供了直播服务端SDK,您可以直接集成服务端SDK来调用直播的相关API,从而实现对直播服务的快速操作。目前视频直播提供了Java、Python、Go和PHP四种语言SDK供开发者使用,如表1所示。 SDK已知安全漏洞及修复版本、规避方案,请单击表1中的SDK对应语言的Github地址进行查看。 表1 服务端SDK 语言 Github地址 参考文档 JAVA huaweicloud-sdk-java-v3 Java SDK使用指导 Python huaweicloud-sdk-python-v3 Python SDK使用指导 Go huaweicloud-sdk-go-v3 Go SDK使用指导 PHP huaweicloud-sdk-php-v3 PHP SDK使用指导 支持的直播API如表2所示,后续SDK将会持续升级,支持所有直播API。 表2 SDK与API对应关系 Java SDK Python SDK Go SDK API参考 createDomain create_domain CreateDomain 创建直播域名 deleteDomain delete_domain DeleteDomain 删除直播域名 updateDomain update_domain UpdateDomain 修改直播域名 showDomain show_domain ShowDomain 查询直播域名 createDomainMapping create_domain_mapping CreateDomainMapping 域名映射 deleteDomainMapping delete_domain_mapping DeleteDomainMapping 删除直播域名映射关系 createTranscodingsTemplate create_transcodings_template CreateTranscodingsTemplate 创建直播转码模板 updateTranscodingsTemplate update_transcodings_template UpdateTranscodingsTemplate 修改直播转码模板 deleteTranscodingsTemplate delete_transcodings_template DeleteTranscodingsTemplate 删除直播转码模板 showTranscodingsTemplate show_transcodings_template ShowTranscodingsTemplate 查询直播转码模板 createStreamForbidden create_stream_forbidden CreateStreamForbidden 禁止直播推流 updateStreamForbidden update_stream_forbidden UpdateStreamForbidden 修改禁推属性 deleteStreamForbidden delete_stream_forbidden DeleteStreamForbidden 禁推恢复 listStreamForbidden list_stream_forbidden ListStreamForbidden 查询禁止直播推流列表 showBandwidth show_bandwidth ShowBandwidth 查询直播加速的带宽数据 listLiveSampleLogs list_live_sample_logs ListLiveSampleLogs 获取直播播放日志 createRecordRule create_record_rule CreateRecordRule 创建录制规则 listRecordRules list_record_rules ListRecordRules 查询录制规则列表 updateRecordRule update_record_rule UpdateRecordRule 修改录制规则 deleteRecordRule delete_record_rule DeleteRecordRule 删除录制规则 showRecordRule show_record_rule ShowRecordRule 查询录制规则配置 runRecord run_record RunRecord 提交录制控制命令 createRecordCallbackConfig create_record_callback_config CreateRecordCallbackConfig 创建录制回调配置 listRecordCallbackConfigs list_record_callback_configs ListRecordCallbackConfigs 查询录制回调配置列表 updateRecordCallbackConfig update_record_callback_config UpdateRecordCallbackConfig 修改录制回调配置 showRecordCallbackConfig show_record_callback_config ShowRecordCallbackConfig 查询录制回调配置 deleteRecordCallbackConfig delete_record_callback_config DeleteRecordCallbackConfig 删除录制回调配置 showTraffic show_traffic ShowTraffic 查询直播加速的流量数据 showOnlineUsers show_online_users ShowOnlineUsers 查询直播播放在线人数 listBandwidthDetail list_bandwidth_detail ListBandwidthDetail 查询播放带宽趋势接口 listDomainTrafficDetail list_domain_traffic_detail ListDomainTrafficDetail 查询播放流量趋势接口 listDomainBandwidthPeak list_domain_bandwidth_peak ListDomainBandwidthPeak 查询播放带宽峰值接口 listDomainTrafficSummary list_domain_traffic_summary ListDomainTrafficSummary 查询播放流量汇总接口 listUsersOfStream list_users_of_stream ListUsersOfStream 查询观众趋势接口 listQueryHttpCode list_query_http_code ListQueryHttpCode 查询直播拉流HTTP状态码接口 listTranscodeData list_transcode_data ListTranscodeData 查询转码用量接口 listRecordData list_record_data ListRecordData 查询录制用量接口 listSnapshotData list_snapshot_data ListSnapshotData 查询截图用量接口 showUpBandwidth show_up_bandwidth ShowUpBandwidth 查询上行带宽数据接口 showStreamCount show_stream_count ShowStreamCount 查询域名维度推流路数接口 listHistoryStreams list_history_streams ListHistoryStreams 查询历史推流列表接口 showStreamPortrait show_stream_portrait ShowStreamPortrait 查询播放画像信息接口 listSingleStreamFramerate list_single_stream_framerate ListSingleStreamFramerate 查询推流帧率数据接口 listSingleStreamBitrate list_single_stream_bitrate ListSingleStreamBitrate 查询推流码率数据接口 listLiveStreamsOnline list_live_streams_online ListLiveStreamsOnline 查询直播中的流信息
-
安装SDK 视频直播服务端SDK支持PHP 5.6及以上版本。执行“ php --version”,检查当前PHP的版本信息。 推荐使用Composer安装SDK。 Composer是PHP的依赖管理工具,允许您在项目中声明依赖关系并安装这些依赖。 1234 # 安装 Composercurl -sS https://getcomposer.org/installer | php # 安装 PHP SDKcomposer require huaweicloud/huaweicloud-sdk-php 安装完毕后,您需要引入Composer的自动加载文件。 1 require 'path/to/vendor/autoload.php';
-
安装SDK 视频直播服务端SDK支持python3及以上版本。执行“ python --version” 检查当前python的版本信息。 使用服务端SDK前,您需要安装“huaweicloudsdkcore ”和 “huaweicloudsdklive”,具体的SDK版本号请参见SDK开发中心。 使用pip安装 执行如下命令安装华为云Python SDK核心库以及相关服务库: 1234 # 安装核心库pip install huaweicloudsdkcore# 安装Live服务库pip install huaweicloudsdklive 使用源码安装 执行如下命令安装华为云Python SDK核心库以及相关服务库: 1234567 # 安装核心库cd huaweicloudsdkcore-${version}python setup.py install# 安装Live服务库cd huaweicloudsdklive-${version}python setup.py install
-
代码示例 调用前请根据实际情况替换如下变量:{your endpoint string} 以及 {your project id}。 认证用的AK、SK直接写入代码,会有很大安全风险,建议密文形式存放在配置文件或者环境变量中,待使用时再解密,以确保安全。 本示例以AK、SK保存在环境变量中为例。运行本示例前,请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435 # coding: utf-8from huaweicloudsdkcore.auth.credentials import BasicCredentialsfrom huaweicloudsdkcore.exceptions import exceptionsfrom huaweicloudsdkcore.http.http_config import HttpConfigfrom huaweicloudsdklive.v1 import *def show_transcodings_template(client): try: request = huaweicloudsdklive.ShowTranscodingsTemplateRequest("play.example.huaweicloud.com") response = client.show_transcodings_template(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)if __name__ == "__main__": ak = os.environ["HUAWEICLOUD_SDK_AK"] sk = os.environ["HUAWEICLOUD_SDK_SK"] endpoint = "{your endpoint}" project_id = "{your project id}" config = HttpConfig.get_default_config() config.ignore_ssl_verification = True credentials = BasicCredentials(ak, sk, project_id) live_client = LiveAPIClient.new_builder(LiveAPIClient) \ .with_http_config(config) \ .with_credentials(credentials) \ .with_endpoint(endpoint) \ .build() show_transcodings_template(live_client)
-
代码示例 调用前请根据实际情况替换如下变量:{your endpoint string} 和 {your project id}。 认证用的AK、SK直接写入代码,会有很大安全风险,建议密文形式存放在配置文件或者环境变量中,待使用时再解密,以确保安全。 本示例以AK、SK保存在环境变量中为例。运行本示例前,请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 package com.huaweicloud.sdk.test;// 用户身份认证import com.huaweicloud.sdk.core.auth.BasicCredentials;// 请求异常类import com.huaweicloud.sdk.core.exception.ClientRequestException;import com.huaweicloud.sdk.core.exception.ServerResponseException;// HTTP配置import com.huaweicloud.sdk.core.http.HttpConfig;// 导入直播服务的客户端import com.huaweicloud.sdk.live.v1.LiveClient;// 导入待请求接口的request和response类import com.huaweicloud.sdk.live.v1.model.ShowTranscodingsTemplateRequest;import com.huaweicloud.sdk.live.v1.model.ShowTranscodingsTemplateResponse;// 日志打印import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class Application { private static final Logger logger = LoggerFactory.getLogger(Application.class); public static void showTranscodingsTemplate(LiveClient client) { try { // 初始化请求,以调用查询转码模板接口为例 ShowTranscodingsTemplateResponse showTranscodingsTemplateResponse = client.showTranscodingsTemplate( new ShowTranscodingsTemplateRequest().withDomain("play.example.huaweicloud.com") ); // 输出json格式的字符串响应 logger.info(showTranscodingsTemplateResponse.toString()); } catch (ClientRequestException e) { logger.error("HttpStatusCode: " + e.getHttpStatusCode()); logger.error("RequestId: " + e.getRequestId()); logger.error("ErrorCode: " + e.getErrorCode()); logger.error("ErrorMsg: " + e.getErrorMsg()); } } public static void main(String[] args) { String ak = System.getenv("HUAWEICLOUD_SDK_AK"); String sk = System.getenv("HUAWEICLOUD_SDK_SK"); String endpoint = "{your endpoint string}"; String projectId = "{your project id}"; // 配置客户端属性 HttpConfig config = HttpConfig.getDefaultHttpConfig(); config.withIgnoreSSLVerification(true); // 创建认证 BasicCredentials auth = new BasicCredentials() .withAk(ak) .withSk(sk) .withProjectId(projectId); // 创建liveClient实例并初始化 LiveClient liveClient = LiveClient.newBuilder() .withHttpConfig(config) .withCredential(auth) .withRegion(region) .build(); showTranscodingsTemplate(liveClient); }}
-
代码示例 调用前请根据实际情况替换如下变量:{your endpoint} 以及 {your project id}。 认证用的AK、SK直接写入代码,会有很大安全风险,建议密文形式存放在配置文件或者环境变量中,待使用时再解密,以确保安全。 本示例以AK、SK保存在环境变量中为例。运行本示例前,请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849 package mainimport ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/config" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/httphandler" live "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/live/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/live/v1/model" "net/http" "os")func RequestHandler(request http.Request) { fmt.Println(request)}func ResponseHandler(response http.Response) { fmt.Println(response)}func main() { client := live.NewLiveAPIClient( live.LiveAPIClientBuilder(). WithEndpoints([]string{"{your endpoint}"}). WithCredential( basic.NewCredentialsBuilder(). WithAk(os.Getenv("HUAWEICLOUD_SDK_AK")). WithSk(os.Getenv("HUAWEICLOUD_SDK_SK")). WithProjectId("{your project id}"). Build()). WithHttpConfig(config.DefaultHttpConfig(). WithIgnoreSSLVerification(true). WithHttpHandler(httphandler. NewHttpHandler(). AddRequestHandler(RequestHandler). AddResponseHandler(ResponseHandler))). Build()) request := &model.ShowTranscodingsTemplateRequest{ Domain: "play.example.huaweicloud.com", } response, err := client.ShowTranscodingsTemplate(request) if err == nil { fmt.Println("%+v\n",response) } else { fmt.Println(err) }}
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格