云服务器内容精选

  • 管理频道 频道新增完成后,您还可以根据实际需要进行如下操作。 启用频道 频道创建完成后,可单击操作列的“启动”,启用频道。 停用频道 单击操作列的“停止”,停用频道。 修改频道配置 单击操作列的“管理”,修改频道信息。频道信息修改完成后,需重启才能生效。如果频道已启用,修改后会自动重启,耗时约30s。 须知:重启操作会导致与头端编码器的连接中断,继而音视频流中断,如果确认执行重启操作,重启完成后,须手工重新推流。 删除频道 先停用,再单击操作列的“删除”,删除频道。
  • 注意事项 一个租户最多支持创建500个频道。如果有更多的频道需求,请提交工单扩容。 所有频道仅支持单码率入流,且必须经过转码后,才能提供多码率出流。 RTMP_PUSH类型的频道需要配置RTMP协议的推流 域名 。SRT_PUSH类型的频道需要配置SRT协议的推流域名。 所以同一个域名,不支持同时创建“SRT_PUSH”和“RTMP_PUSH”类型的频道。 “SRT_PUSH”类型的频道,为了保障可靠性,必须满足下述条件: “SRT_PUSH”类型的频道支持主备Region能力,编码器需要同时向主备URL推流。 如果编码器支持streamid,默认只返回主输入URL,示例如图1所示。 如果需要主备Region同时双推,请提交工单处理。 图1 频道详情 如果编码器不支持streamid,会同时返回主备输入URL,示例如图2所示。 图2 频道详情 编码器推流断链时,需具备主动重推能力。建议断链重推周期小于一个分片时长。 频道DRM加密使用FunctionGraph函数时,不会携带FunctionGraph版本信息,默认使用最新版本。 如果DRM故障,频道播放会返回404。 基于可靠性考虑,如果您针对HLS_PULL/SRT_PULL类型频道配置了备拉流地址,针对SRT_PUSH频道对备入流进行了推流的情况下,我们会同步在备Region进行转码并产生相应转码计费。
  • 功能特性 华为云媒体直播提供了创建媒体直播转码模板、创建频道等功能,广泛地用于直播业务的PGC平台等场景。具体如表1所示。 表1 功能特性 类别 特性名称 特性说明 直播控制台 总览 支持查看直播的今日下行流量、下行带宽峰值等数据。 支持变更直播的CDN计费模式。 域名管理 支持新增、删除、停用、启用媒体直播推流域名和播放域名。 频道管理 支持创建、启用、修改、停用、删除频道。 媒体处理 包含如下功能: 直播转码:支持创建、修改、删除媒体直播转码模板。 水印模板:支持创建、修改、删除图片水印模板。 水印规则:支持支持创建、修改、删除频道绑定的水印规则。 业务监控 查看播放域名的监控信息,包括下行带宽/流量、请求响应返回的所有状态码、下行并发数和入流质量监控。 云资源授权 如果频道需要开启DRM加密,且“对接模式”设置为“FunctionGraph代理访问”,需要提前开启FunctionGraph资源信任委托授权。授权成功后,媒体直播服务才能查询用户的函数、工作流、触发器,并调用函数。 工具库 包含如下功能: 回看/时移地址生成:支持获取频道回看和时移地址,回看频道历史播放内容。 SCTE广告信号查询:支持查询频道入流的SCTE35信号事件信息。
  • 注意事项 视频直播 服务可能会分配一个默认的推流域名给用户,如下所示: 国内推流域名格式:{projectid}.hwcloudlive.com 示例:0c283a271****************9459b6a.hwcloudlive.com 海外推流域名:{projectid}.ott.huawei 示例:0c283a271****************9459b6a.ott.huawei 上述推流域名为服务内部使用域名。如果用户被分配了上述域名,虽然可见,但不支持调用或使用。且对正常使用Live无影响,也不会引起额外的费用,可无需关注。
  • 入驻华为云 已 注册华为账号 并开通华为云,完成实名认证。 开通视频直播服务:单击进入视频直播控制台,根据开通引导完成服务开通。 具备用于媒体直播的域名,且域名已完成备案。PUSH类型的频道需要一个推流域名和一个播放域名,且两个域名不能相同。PULL类型的频道,不需要推流域名。 若您需要购买自有域名,您可以在华为云的域名注册中购买。您也可以在其它域名服务商处购买。 若您已有域名,但还未根据国家工信部规定完成备案,您可以在华为云的备案中心完成备案。 新增 IAM 用户首次使用媒体直播服务时,需要配置创建域名的权限。
  • 频道入流约束 表1 频道入流约束 限制项 说明 转码帧率 转码帧率不支持配置高于源流。 转码分辨率 转码分辨率不支持配置高于入流分辨率。 音视频编码器 视频支持H.264、H.265。 音频支持AAC、MP1、MP2和MP3。 注意:MP1、MP2和MP3仅支持TS入流,默认转码成AAC输出。 不支持字幕。 入流规范 入流规范,如下所示: 支持RTMP推流。 支持HTTP-FLV拉流,起播需携带sequence header。 支持HLS-PULL拉流,支持HLS V3、HTTP或HTTPS协议。 支持SRT-Listener推流,仅支持TS流,支持携带streamid或不携带streamid。 支持SRT-Caller拉流,仅支持TS流。 不支持输入加密流。 不支持纯音频入流,须至少一路视频;不支持纯视频输出,系统会自动补齐一路静音流。 主备输入流的编码器参数必须保持一致,否则主备输入流切换过程中,播放可能会中断。 入流码率≤50Mbps,帧率≤60fps,分辨率≤4K。 入流GOP时长 入流GOP时长的设置建议如下所示: 入流GOP时长推荐取值为1秒或其整数倍。 频道配置的切片时长必须≥GOP时长,推荐取值为GOP时长的整数倍。
  • 总览 开通Live服务后,登录视频直播控制台,进入“总览”页面。 可以看到Live操作指引流程、资源统计及数据趋势图、计费模式和文档的快速访问入口。 图1 总览页面 在该页面可以查看如下信息,也可以单击界面右上角的“使用指南”,查看操作文档。 操作指引 通过操作指引,可以快速访问Live域名管理页面,推流和播放操作文档。 资源统计 今日下行流量(KB):今日所有播放域名使用播放加速产生的下行流量总和。 今日下行带宽峰值(bps):今日所有播放域名使用播放加速产生的下行带宽峰值。 数据趋势:查询近期直播用量趋势。 下行流量:所有播放域名在查询时间段内,使用播放加速消耗的总下行流量。 下行带宽:所有播放域名在查询时间段内,使用播放加速消耗的总下行带宽。 上行带宽:所选播放域名在查询的时间段内,对应推流端产生的总上行带宽。 可将鼠标放置在图表上,查看具体数值,滚动鼠标滚轮可整体加长或缩短展示横轴的时间段。 计费模式:用户当前的CDN计费方式。可以单击“变更”,变更CDN计费方式。也可以单击购买套餐包,购买价格更优惠的套餐包使用。 客户等级为V0和V1的账户暂不支持变更计费方式,只能按流量计费。如需了解客户等级信息,详见客户等级体系。 文档快速访问入口:各类文档的快速访问入口。
  • 功能列表 您可以在视频直播控制台的左侧导航栏中选择对应功能,进行配置或使用。 表1 控制台功能介绍 分类 功能 功能介绍 域名管理 域名管理 支持如下功能: 添加媒体直播域名,并对域名进行CNAME解析。 管理域名,包括增删改等操作。 配置IPv6。 配置区域访问控制白名单。 支持HTTPS证书配置,保障您的媒体直播数据在传输过程中受到加密保护。 频道管理 创建频道 您可以在媒体直播开始前,创建频道。 媒资输入类型包括: FLV_PULL:无需执行推流操作,直接获取用户提供的音视频拉流URL,媒体直播服务从URL拉流至源站。拉流URL仅支持HTTP协议,暂不支持其他协议。 RTMP_PUSH:基于RTMP协议,通过华为CDN转推至源站。 HLS_PULL:无需执行推流操作,直接获取用户提供的音视频拉流URL,媒体直播服务从URL拉流至源站。 用户提供的音视频URL需注意: 拉流URL仅支持HTTP、HTTPS协议,暂不支持其他协议。 不支持加密流。 不支持纯音频。 不支持展示字幕。 默认不展示“HLS_PULL”,需提交工单申请使用。 SRT_PULL:无需执行推流操作,直接获取用户提供的音视频SRT拉流URL,媒体直播服务从URL拉流至源站。 SRT_PUSH:需要配置SRT协议的推流域名,并执行推流操作。 “SRT_PUSH”类型的频道,为了保障可靠性,必须满足下述条件: “SRT_PUSH”类型的频道支持主备Region能力,编码器需要同时向主备URL推流。 编码器推流断链时,需具备主动重推能力。建议断链重推周期小于一个分片时长。 媒体处理 媒体处理 包含如下功能: 直播转码:支持对媒体直播视频进行转码模板配置,将推送的媒体直播流转码成多种分辨率和码率规格的,以满足不同网络环境的用户观看需求。 水印模板:支持创建图片水印模板。 水印规则:媒体直播支持为频道绑定水印模板,实现对播放视频流的安全保护。如果频道有多个转码模板,支持针对不同模板,分别绑定水印模板。 业务监控 业务监控 查看播放域名的监控信息,包括下行带宽/流量、请求响应返回的所有状态码、下行并发数和入流质量监控。 云资源授权 云资源授权 如果频道需要开启DRM加密,且“对接模式”设置为“FunctionGraph代理访问”,需要提前开启FunctionGraph资源信任委托授权。授权成功后,媒体直播服务才能查询用户的函数、工作流、触发器,并调用函数。 工具库 工具库 包含如下功能: 回看/时移地址生成:支持用户获取频道回看和时移地址。 SCTE广告信号查询:支持查询频道入流的SCTE35信号事件。
  • 欠费说明 按需预付费资源包没有欠费的概念。套餐包的有效期为1年,套餐包到期后,若套餐包中仍有额度将一次性清零,产生的费用将从余额中扣除。 按需计费按照每个计费项对应的计费周期扣费。若余额不足,则上一个计费周期无法完成扣费,导致直播服务欠费。 请注意在保留期完成续费操作。如果直播服务欠费后进入保留期,会在续费后解冻,直播服务恢复正常使用。 如果客户账号欠费超过保留期,即使客户欠费前购买了直播套餐包,账号和资源也会被冻结,影响正常业务。在充值解冻后套餐包可继续使用。 如果客户账号欠费未超过保留期,直播域名不删除,只做状态冻结,客户充值后自动解冻域名状态。 如果客户账号欠费超过保留期,直播域名不删除,只做状态冻结。客户充值后还需提交工单给直播服务申请解冻,解冻后才能恢复已冻结的域名。
  • 响应参数 状态码:200 表16 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项 sources Array of SourceRsp objects 推流URL列表。创建频道时,只有入流协议为RTMP_PUSH时,会返回推流URL列表 表17 SourceRsp 参数 参数类型 描述 url String RTMP推流地址 bitrate Integer 码率。 单位:bps。取值范围:(0,104,857,600](100Mbps) width Integer 分辨率对应宽的值。取值范围:0 - 4096(4K) height Integer 分辨率对应高的值。取值范围:0 - 2160(4K) enable_snapshot Boolean 描述是否使用该流做截图 状态码:400 表18 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项
  • 请求示例 PUT https://{endpoint}/v1/{project_id}/ott/channels/input { "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test", "input" : { "input_protocol" : "RTMP_PUSH", "sources" : [ { "width" : 100, "bitrate_for3u8" : false, "enable_snapshot" : false, "bitrate" : 1024, "passphrase" : "", "url" : "rtmp://192.168.8.158/ott/adtestdrm?vhost=pull.testott.hls.com", "height" : 100 } ] } }
  • 响应示例 状态码:200 Demo Information { "result_code" : "LIVE.100000000", "result_msg" : "SUC CES S", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test" } 状态码:400 Error response { "result_code" : "LIVE.103011019", "result_msg" : "The resource to access is not exists", "domain" : "push.testott.hls.com", "app_name" : "test", "id" : "test-abc" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token,使用Token鉴权方式时为必填项。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必填,携带的鉴权信息。 X-Sdk-Date 否 String 请求的发生时间,使用AK/SK方式认证时为必填项。 X-Project-Id 否 String 使用AK/SK方式认证时为必填项,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 domain 是 String 频道推流域名 app_name 是 String 组名或应用名 id 是 String 频道ID。频道唯一标识,为必填项 input 否 InputStreamInfo object 频道出流信息 encoder_settings_expand 否 EncoderSettingsExpand object 输出编码扩展 表4 InputStreamInfo 参数 是否必选 参数类型 描述 input_protocol 是 String 频道入流协议 FLV_PULL RTMP_PUSH HLS_PULL SRT_PULL SRT_PUSH sources 否 Array of SourcesInfo objects 频道主源流信息。入流协议为RTMP_PUSH和SRT_PUSH时,非必填项。其他情况下,均为必填项。 secondary_sources 否 Array of SecondarySourcesInfo objects 备入流数组,非必填项。如果有备入流,则主备入流必须保证路数、codec和分辨率均一致。入流协议为RTMP_PUSH时,无需填写。 failover_conditions 否 FailoverConditions object 非必填,频道供应商提供的主备音视频流URL切换的配置。 max_bandwidth_limit 否 Integer 当入流协议为HLS_PULL时,需要配置的最大带宽。 用户提供的拉流URL中,针对不同码率的音视频,均会携带带宽参数“BANDW IDT H”。 如果这里配置最大带宽,媒体直播服务从URL拉流时,会选择小于最大带宽且码率最大的音视频流,推流到源站。 如果这里未配置最大带宽,媒体直播服务从URL拉流时,会默认选择“BANDWIDTH”最高的音视频流,推流到源站。 ip_port_mode 否 Boolean 当推流协议为SRT_PUSH时,如果配置了直推源站,编码器不支持输入streamid,需要打开设置为true ip_whitelist 否 String SRT_PUSH类型时,客户推流的IP白名单 scte35_source 否 String 广告的scte35信号源。 仅HLS_PULL类型的频道支持此配置,且目前仅支持SEGMENTS。 ad_triggers 否 Array of strings 广告触发器配置。 包含如下取值: Splice insert:拼接插入 Provider advertisement:提供商广告 Distributor advertisement:分销商广告 Provider placement opportunity:提供商置放机会 Distributor placement opportunity:分销商置放机会 audio_selectors 否 Array of InputAudioSelector objects 设置音频选择器,最多设置8个音频选择器 表5 SourcesInfo 参数 是否必选 参数类型 描述 url 否 String 频道源流URL,用于外部拉流 bitrate 否 Integer 码率。无需直播转码时,此参数为必填项 单位:bps。取值范围:(0,104,857,600](100Mbps) width 否 Integer 分辨率对应宽的值,非必填项 取值范围:0 - 4096(4K) height 否 Integer 分辨率对应高的值,非必填项 取值范围:0 - 2160(4K) enable_snapshot 否 Boolean 描述是否使用该流做截图 bitrate_for3u8 否 Boolean 是否使用bitrate来固定码率。默认值:false passphrase 否 String 协议为SRT_PUSH时的加密信息 backup_urls 否 Array of strings 备入流地址列表 stream_id 否 String 频道为SRT_PULL类型时,拉流地址的Stream ID。 latency 否 Integer 频道为SRT_PULL类型时的拉流时延。 pbkeylen 否 Integer srt加密算法 16 = AES-128 24 = AES-192 32 = AES-256 表6 SecondarySourcesInfo 参数 是否必选 参数类型 描述 url 否 String 频道源流URL,用于外部拉流 bitrate 否 Integer 码率。无需直播转码时,此参数为必填项 单位:bps。取值范围:(0,104,857,600](100Mbps) width 否 Integer 分辨率对应宽的值,非必填项 取值范围:0 - 4096(4K) height 否 Integer 分辨率对应高的值,非必填项 取值范围:0 - 2160(4K) bitrate_for3u8 否 Boolean 是否使用bitrate来固定码率。默认值:false passphrase 否 String 协议为SRT_PUSH时的加密信息 backup_urls 否 Array of strings 备入流地址列表 stream_id 否 String 频道为SRT_PULL类型时,拉流地址的Stream ID。 latency 否 Integer 频道为SRT_PULL类型时的拉流时延。 pbkeylen 否 Integer srt加密算法 16 = AES-128 24 = AES-192 32 = AES-256 表7 FailoverConditions 参数 是否必选 参数类型 描述 input_loss_threshold_msec 否 Integer 入流停止的时长阈值。到达此阈值后,自动触发主备切换。 单位:毫秒,取值范围:0 - 3600000。 非必填,默认填2000ms。 input_preference 否 String 以主入流URL为第一优先级(PRIMARY)或主备URL平等切换(EQUAL)。 如果是平等切换时,使用的是备URL,不会自动切换至主URL。 非必填,默认值为EQUAL。 表8 InputAudioSelector 参数 是否必选 参数类型 描述 name 是 String 音频选择器的名称。仅支持大小写字母、数字、中划线和下划线。 同一个频道中每个选择器的名称需要唯一。 selector_settings 否 AudioSelectorSettings object 设置音频选择器 表9 AudioSelectorSettings 参数 是否必选 参数类型 描述 audio_language_selection 否 AudioSelectorLangSelection object 设置语言选择器 audio_pid_selection 否 AudioSelectorPidSelection object 设置PID选择器 audio_hls_selection 否 AudioSelectorHlsSelection object 设置Hls选择器 表10 AudioSelectorLangSelection 参数 是否必选 参数类型 描述 language_code 是 String 语言简称,输入2或3个小写字母的语言代码。 language_selection_policy 否 String 语言输出策略。 取值如下: LOOSE:宽松匹配,示例“eng”会优先匹配源流中语言为English的音轨,如果匹配不到,则选择PID最小的音轨。 STRICT:严格匹配,示例“eng”会严格匹配源流中语言为English的音轨,如果匹配不到,媒体直播服务会自动补齐一个静音分片,当终端使用此音频选择器播放视频时,会静音播放。 表11 AudioSelectorPidSelection 参数 是否必选 参数类型 描述 pid 是 Integer 设置PID的值 表12 AudioSelectorHlsSelection 参数 是否必选 参数类型 描述 name 是 String hls音频选择器名 group_id 是 String hls音频选择器gid 表13 EncoderSettingsExpand 参数 是否必选 参数类型 描述 audio_descriptions 否 Array of audio_descriptions objects 音频输出配置的描述信息 video_descriptions 否 VideoDescriptions object 表14 audio_descriptions 参数 是否必选 参数类型 描述 name 是 String 音频输出配置的名称。仅支持大小写字母,数字,中划线(-),下划线(_)。 同一个频道不同的音频输出配置名称,不允许重复。 audio_selector_name 是 String 音频选择器名称 language_code_control 否 String 语言代码控制。这里的设置不会修改音频实际的语言,只会修改音频对外展示的语言。 包含如下选项: FOLLOW_INPUT:如果所选音频选择器对应的输出音频有语言,则与其保持一致,否则会以这里配置的语言代码和流名称进行兜底。推荐当前选项,为默认值。 USE_CONFIGURED:用户根据实际情况自定义输出音频的语言和流名称。 language_code 否 String 语言代码,输入2或3个小写字母。 stream_name 否 String 流名称 表15 VideoDescriptions 参数 是否必选 参数类型 描述 gop_duration_seconds 否 Integer 自定义gop时长,单位秒,有效取值[0,10]. 默认值0,表示跟随源流,不支持7和9,值无效时按默认值处理
  • 响应示例 状态码:201 Demo Information { "result_code" : "LIVE.100000000", "result_msg" : "SUCCESS", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test", "sources" : [ { "url" : "rtmp://push.testott.hls.com/ott/test_1024?request_source=ott&channel_id=test", "bitrate" : 1024, "width" : 100, "height" : 100 } ] } 状态码:400 Error response { "result_code" : "LIVE.100011001", "result_msg" : "output url pull.testott.hls.com/ott/test/index.m3u8 is exist", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test" }
  • 请求示例 POST https://{endpoint}/v1/{project_id}/ott/channels { "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test", "name" : "testname", "input" : { "input_protocol" : "FLV_PULL", "sources" : [ { "url" : "http://192.168.0.1/ott/test.flv?vhost=pull.testott.hls.com", "bitrate" : 1024, "width" : 100, "height" : 100 } ], "failover_conditions" : { "input_loss_threshold_msec" : 100, "input_preference" : "EQUAL" } }, "record_settings" : { "rollingbuffer_duration" : 86400 }, "endpoints" : [ { "hls_package" : [ { "url" : "pull.testott.hls.com/ott/test/index.m3u8", "stream_selection" : [ { "key" : "sss", "max_bandwidth" : 100, "min_bandwidth" : 100 } ], "hls_version" : "1", "segment_duration_seconds" : 4, "playlist_window_seconds" : 3600 } ], "dash_package" : [ { "url" : "pull.testott.hls.com/ott/test/index.mpd", "stream_selection" : [ { "key" : "bitrate=900000-1800000", "max_bandwidth" : 1800000, "min_bandwidth" : 900000 } ], "segment_duration_seconds" : 4, "playlist_window_seconds" : 3600 } ], "mss_package" : [ { "url" : "pull.testott.hls.com/ott/channel/manifest", "stream_selection" : [ { "key" : "bitrate=900000-1800000", "max_bandwidth" : 1800000, "min_bandwidth" : 900000 } ], "segment_duration_seconds" : 4, "playlist_window_seconds" : 3600 } ] } ], "state" : "OFF" }