云服务器内容精选

  • 注意事项 录制规则配置支持 域名 级、应用级和流级,优先生效细粒度配置(即流级别最优先),同级配置不支持多种录制类型。 直播服务不支持清理录制内容,仅记录直播录制事件,且直播录制事件的数据只保留30天。您可根据业务的实际需求,在OBS中手动清理录制文件或通过OBS生命周期管理功能实现录制文件的存留期限和策略。 直播录制过程中,若直播推流因网络抖动等问题中断,则直播服务将中止录制。当推流重新启动时,直播服务将重新开启新的录制任务。 配置录制后,启动推流即开始录制,结束推流才可停止录制,暂无法按需停启;若在推流过程中删除录制规则,录制仍然会继续,直到推流结束 。 OBS服务会因欠费停服,从而导致直播录制失败,建议您购买OBS存储包。 仅支持对接收到的源直播流进行录制,暂不支持录制直播转码流。
  • 总览 登录 视频直播 控制台,进入“总览”页面。 图1 总览页面 在该页面可查看如下信息,也可以单击右上角的“使用指南”,查看操作文档。 今日数据 下行流量:今日所有播放域名使用播放加速产生的下行流量总和。 下行带宽峰值:今日所有播放域名使用播放加速产生的下行带宽峰值。 使用趋势:查询近期的直播用量趋势。 下行流量:所有播放域名在查询时间段内,使用播放加速消耗的总下行流量。 下行带宽:所有播放域名在查询时间段内,使用播放加速消耗的总下行带宽。 上行带宽:所选播放域名在查询的时间段内,对应推流端产生的总上行带宽。 可将鼠标放置在图表上,查看具体数值,滚动鼠标滚轮可整体加长或缩短展示横轴的时间段。 计费模式:用户当前的CDN计费方式。可以单击“变更”,变更CDN计费方式。也可以单击“购买套餐包”,购买价格更优惠的套餐包使用。 客户等级为V0和V1的账户暂不支持变更计费方式,只能按流量计费。
  • 功能列表 您可以在视频直播控制台的左侧导航栏中,选择相应的功能使用。 表1 控制台功能介绍 分类 功能 功能介绍 直播管理 直播管理 支持用户对直播在线流、历史流及录制文件的管理,也可以对直播流进行禁止和恢复推流等操作。 录制文件管理 支持用户获取录制文件基本信息。 域名管理 域名配置 支持用户添加并管理自有的加速域名,并对域名进行CNAME配置,Key防盗链、Referer防盗链、IP黑白名单配置,支持对直播视频进行录制、截图、转码模板配置。 推流配置 转码模板配置 支持将推送的直播流转码成多种分辨率和码率规格的,以满足不同网络环境的用户观看需求。 录制配置 支持为直播配置录制规则,直播流将按照录制规则进行录制,并存储到OBS桶中。 截图模板配置 支持按配置截图模板在推流过程中截取直播画面,并存储在OBS桶中。 直播推断流通知配置 支持为推流域名配置回调地址,用于接收直播推流和断流通知,从而实时获取直播状态。 推流鉴权配置 提供了Key防盗链和IP黑白名单鉴权机制,对访问者的身份进行识别和过滤,符合规则的才可进行直播推流。 播流配置 修改直播延时 支持RTMP、HTTP-FLV协议播放的延时配置。 直播拉流回源 支持用户将自建源站中的直播内容拉取到 华为云直播 源站进行加速分发。 安全加速 支持对播放域名开启HTTPS安全加速,保障您的直播数据在传输过程中受到加密保护。 鉴权机制配置 提供了Referer防盗链、Key防盗链和IP黑白名单鉴权机制,对访问者的身份进行识别和过滤,符合规则的才可使用直播服务。 用量统计 用量统计 支持查看所有播放域名的下行带宽/流量使用统计信息,还支持查看所有推流域名的转码时长、录制最大并发数和截图数量统计信息。 说明:暂不支持“华北-北京一”区域。 业务监控 业务监控 支持查看播放域名的下行带宽/流量使用量、播放画像信息、请求响应返回的所有状态码及对应直播流的在线观看人数等数据,还支持查看对应推流域名的上行带宽/流量使用量、总推流路数、历史推流详情及推流帧率/码率等监控信息。 说明:暂不支持“华北-北京一”区域。 LLL统计分析 LLL统计分析 查看播放域名对应低时延直播业务的统计数据,包括:下行带宽/流量使用量、观众数、全局播放统计和单路播放统计。 日志管理 离线日志下载 支持查看播放域名被网络用户访问的详细日志,可查询下载最近90天的日志文件。 说明:暂不支持“华北-北京一”区域。 实时日志配置 支持实时查看播放域名被网络用户访问的详细日志记录。 说明:暂只支持“华北-北京四”区域。 工具库 防盗地址生成 支持使用该工具快速生成推流域名和播放域名的鉴权URL。 说明:暂不支持“华北-北京一”区域。
  • 回调示例 录制文件生成事件回调示例如下。回调消息体字段如表2所示。 { "project_id": "70b76xxxxxx34253880af501cdxxxxxx", "job_id": "dc0a1773-0cef-xxxx-xxxx-9a38fdb095d2", "task_id": "51126d0ebe94b1da00d2e21a10xxxxxx", "event_type": "RECORD_FILE_COMPLETE", "publish_domain": "push.example.com", "app": "live", "stream": "mystream", "record_format": "HLS", "download_url": "https://obs.cn-north-4.myhuaweicloud.com/live/record-xxxx-mystream-1589967495/record-push.example.com-live-mystream-1589967495.m3u8", "asset_id": "1a0d8e9bfaexxxxxxbe5021e62aa1e96", "file_size": 3957964, "record_duration": 120, "start_time": "2020-03-08T14:10:25Z", "end_time": "2020-03-08T14:12:25Z", "width": 1280, "height": 720, "obs_location": "https://obs.cn-north-4.myhuaweicloud.com", "obs_bucket": "mybucket", "obs_object": "live/record-xxxx-mystream-1589967495/record-hwpublish.myun.tv-live-mystream-1589967495.m3u8", "auth_sign": "4f97f46759axxxxxx7ad21e9935dc175", "auth_timestamp": 1583676745 }
  • 注意事项 一个域名可以配置多个转码模板,当收到转码流请求时,与请求地址中的AppName一致的转码模板生效,开始进行转码,若不需要转码,请在直播推流前删除转码模板。 直播流的转码规则生效配置为直播流启动时的配置内容,若修改了转码配置,则正在直播的在线直播流不会生效,仅对修改配置后新推送的直播流生效。 转码模板中的高清低码默认是关闭的,若您开启,直播转码将按高清低码标准计费,价格详情请参见产品价格详情。 暂不支持上采样转码,若转码模板中设置的分辨率高于推流分辨率,对应分辨率的播放地址可以成功播放,但播放视频的分辨率为原始分辨率。
  • 管理转码 转码模板配置完成后,您还可以根据实际需要进行如下操作。 修改转码模板 转码模板创建完成后,若您需要修改部分参数,可以通过单击操作列的“修改”,修改转码模板中的相关参数。其中,AppName不支持修改。 直播流的转码规则生效配置为直播流启动时的配置内容,若修改了转码配置,则正在直播的在线直播流不会生效,仅对修改配置后新推送的直播流生效。 删除转码模板 转码模板创建完成后,若您需要删除转码模板,可以通过单击操作列的“删除”,删除该转码模板。
  • 为什么调用API时提示“APIG.0301”? 调用API时提示“APIG.0301”,可能有以下两个原因: 提示"error_msg":"Incorrect IAM authentication information: decrypt token fail","error_code":"APIG.0301",是因为token解密失败,请检查token是否完整、是否过期、获取token与调用服务的区域是否跨区、账号是否因欠费等原因导致权限被限制。具体请参见Token认证鉴权。 提示"error_msg":"Incorrect IAM authentication information: verify aksk signature fail","error_code":"APIG.0301",是因为AK/SK认证失败,请检查AK/SK是否正确、账号是否因欠费等原因导致权限被限制。具体请参见AK/SK认证鉴权。 父主题: API使用
  • 录制回调 直播录制至OBS提供了录制回调功能,用于推送录制状态信息,包括录制开始、开始创建新的录制文件、录制文件生成完成、录制结束和录制失败。回调消息字段如表2所示。 表2 消息体字段说明 字段 描述 project_id 项目ID。 job_id 用于标识同一个文件。当“event_type”为“RECORD_NEW_FILE_START”或“RECORD_FILE_COMPLETE”时,携带该字段。 task_id 录制任务ID,用于唯一标识一个录制任务。 event_type 消息类型。 取值如下: RECORD_START:表示录制开始。若配置了录制模板和录制回调,则直播推流开始时,开始录制,触发该事件。 RECORD_NEW_FILE_START:表示开始创建新的录制文件。以下情况会触发该事件: 直播推流开始,开始创建第一个录制文件。 直播断流恢复后,若“最大断流合并时长”配置为“断流后生成新文件”,则开始创建新的录制文件。 当前录制时长超过了配置的录制周期,则开始新的录制文件生成。 RECORD_FILE_COMPLETE:表示录制文件生成完成。以下情况会触发该事件: 录制时长达到配置的录制周期,则当前录制文件生成完成,并开始新的录制生成。 直播断流后,若“最大断流合并时长”配置为“断流后生成新文件”,则当前录制文件生成完成,若断流恢复,将开始新的录制文件生成。 RECORD_OVER:表示录制结束,直播断流时长超过了最大断流合并时长,当前录制任务结束,触发该事件。 RECORD_FAILED:表示录制失败,当拉流失败、录制文件上传OBS失败等因素导致录制失败时,触发该事件。 publish_domain 直播推流域名。 app 应用名。 stream 录制的流名。 record_format 录制格式,支持HLS、FLV和MP4格式。 download_url 录制文件的下载地址。当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 说明: 使用该下载地址用于视频播放无法保证播放效果。 asset_id 用于标识一个录制文件。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 file_size 文件大小。 单位:Byte。 record_duration 录制文件的时长。 单位:秒。 start_time 录制文件的开始时间,即接收到第一帧数据的时间,格式为yyyy-mm-ddThh:mm:ssZ。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 end_time 录制文件的结束时间,格式为yyyy-mm-ddThh:mm:ssZ。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 width 录制文件分辨率的宽。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 height 录制文件分辨率的高。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 obs_location 存储录制文件的OBS桶所在区域。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 obs_bucket 存储录制文件的OBS桶。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 obs_object OBS桶存储录制文件的路径。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 auth_sign 事件通知签名。当配置了“鉴权密钥”时,携带该字段。 MD5方式:auth_sign=MD5(key + auth_timestamp) HMA CS HA256方式:HMACSHA256(auth_timestamp + event_type + publish_domain + app + stream + download_url + play_url,key) 其中,key为鉴权密钥值。 auth_timestamp 事件通知签名过期UNIX时间戳。当配置了“鉴权密钥”时,携带该字段。 格式为十进制的UNIX时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。 若 消息通知 中的auth_timestamp值所指定的时间已经过期,则此消息通知无效,进而防止网络重放攻击。 error_message 录制失败的描述信息。 当“event_type”为“RECORD_FAILED”时,携带该字段。 消息示例如下所示: 录制开始事件,即“event_type”=“RECORD_START”,若配置了录制模板和录制回调,则直播推流开始时,开始录制,产生该事件回调。 { "project_id" : "70b76xxxxxx34253880af501cdxxxxxx", "publish_domain" : "push.example.com", "event_type" : "RECORD_START", "app" : "live", "stream" : "mystream", "record_format" : "HLS", "file_size" : 3957964, "record_duration" : 120 }
  • 截图回调 直播截图回调用于推送截图状态信息,当截图文件生成时触发该回调事件。回调消息字段如表3所示。 表3 消息体字段说明 字段 描述 domain 推流域名。 app 应用名称。 stream_name 流名称。 snapshot_url 截图下载链接。 width 图片宽度。 单位:像素。 height 图片高度。 单位:像素。 obs_addr 截图所在的OBS桶地址,具体结构体说明如下所示: bucket:OBS的桶名称。 location:OBS桶所在数据中心。 object:OBS对象路径。 auth_timestamp 事件通知签名过期UNIX时间戳。当配置了“鉴权密钥”时,携带该字段。 格式为十进制的UNIX时间戳,即从1970年1月1日(UTC/GMT的午夜)以来的当前时间秒数。 示例:1592639100(即2020-06-20 15:45) auth_sign 事件通知签名。当配置了“鉴权密钥”时,携带该字段。 auth_sign = HmacSHA256(domain + app + stream_name + snapshot_url + width + height + obs_addr.bucket + obs_addr.location + obs_addr.object + auth_timestamp,key) 其中,key为鉴权密钥值。 消息示例如下所示: { "domain": "play.example.com", "app": "live", "stream_name": "test001", "snapshot_url": "https://xxx.obs.cn-north-4.myhuaweicloud.com:443...", "width":"720", "height":"1280", "obs_addr": { "bucket": "xxx", "location": "cn-north-4", "object": "xxx.jpg" }, "auth_timestamp":1587954140, "auth_sign":"4918b1axxxxxxb583cffa119d72513bbc35a989f8569fxxxxxx057646154a04a" }
  • 推流回调 推流回调用于推送推流状态信息,包括推流成功和推流中断,回调消息字段如表1所示。 表1 消息体字段说明 字段 描述 domain 推流域名。 app 应用名称。 stream 流名称。 user_args 推流参数。 client_ip 推流客户端IP。 node_ip 接受流的节点IP。 publish_timestamp 推流Unix时间戳,一次推流活动会产生相同时间戳的推流和断流消息。 event 直播推流和断流标识。 取值为: PUBLISH:开播。 PUBLISH_DONE:停播。 auth_timestamp 事件通知签名过期UNIX时间戳。当配置了“鉴权密钥”时,携带该字段。 格式为十进制的UNIX时间戳,即从1970年1月1日(UTC/GMT的午夜)以来的当前时间秒数。 示例:1592639100(即2020-06-20 15:45) auth_sign 事件通知签名。当配置了“鉴权密钥”时,携带该字段。 auth_sign = HmacSHA256(event + domain + app + stream + auth_timestamp, key) 其中,key为鉴权密钥值。 消息示例,如下所示: { "domain":"push.example.com", "app":"live", "stream":"example_stream", "user_args":"auth_info=yz1TG0PVN/5isfyrGrRj10gKPCWqSS2X02t6QsRrocH+mEq0gQ0g8k6KhalS84sQ+kDprFyqI0yajbYiFmUO8e45B7ryaS+MpJBlYkhwnuFLnRiKK/IXG7.33436b625354564f6e4d4d434f55&cdn=hw", "client_ip":"100.111.*.*", "node_ip":"112.11.*.*", "publish_timestamp":"1587954134,", "event":"PUBLISH" "auth_timestamp":1587954140, "auth_sign":"ff3b2bxxx5cfd56e76d72bed4c4aa2dxxxca8c2e46467d205a6417d4fc" }
  • 中级CA机构颁发的证书 中级机构颁发的证书文件包含多份证书,配置HTTPS时,需要将所有证书拼接在一起组成一份完整的证书后再上传。拼接后的证书类似图2。 通过记事本打开所有*.PEM格式的证书文件,将服务器证书放在首位,再放置中间证书。一般情况下,机构在颁发证书的时候会有对应说明,请注意查阅相关规则。通用的规则如下: 证书之间没有空行。 证书链的格式如下: -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
  • RSA私钥格式要求 PEM格式的文件可以存放证书或私钥,如果*.PEM只包含私钥,一般用*.KEY代替。 通过记事本打开*.PEM或*.KEY的私钥文件,可以查看到类似图3所示的全部私钥信息。 RSA格式私钥: 以证书链“-----BEGIN RSA PRIVATE KEY-----”开头,以证书链“-----END RSA PRIVATE KEY-----”结尾。 证书链之间的内容,要求每行64个字符,最后一行允许不足64个字符。 证书内容不包含空格。
  • Root CA机构颁发的证书 Root CA机构颁发的证书是一份完整的证书,配置HTTPS时,仅上传该证书即可。 通过记事本打开*.PEM格式的证书文件,可以查看到类似图1所示的全部证书信息。 PEM格式证书: 以证书链“-----BEGIN CERTIFICATE-----”开头,以证书链“-----END CERTIFICATE-----”结尾。 证书链之间的内容,要求每行64个字符,最后一行允许不足64个字符。 证书内容不包含空格。
  • 格式转换 配置HTTPS仅支持PEM格式的证书/私钥,其他格式均不支持。其他格式的证书/私钥需要转换成PEM格式,建议通过OpenSSL工具进行转换。下面是几种比较流行的证书格式转换为PEM格式的方法。 以下示例均假设转换前证书名为old_certificate,私钥名为old_key,转换后证书名为new_certificate,私钥文件名为new_key。 DER转换为PEM openssl x509 -inform der -in old_certificate.cer -out new_certificate.pem openssl rsa -inform DER -outform pem -in old_key.der -out new_key.pem P7B转换为PEM openssl pkcs7 -print_certs -in old_certificate.p7b -out new_certificate.cer PFX转换为PEM openssl pkcs12 -in old_certificat.pfx -nokeys -out new_certificate.pem openssl pkcs12 -in old_certificat.pfx -nocerts -out new_key.pem 若需要将PKCS8格式私钥转换为PKCS1格式,则参考如下方法: openssl rsa -in old_certificat.pem -out pkcs1.pem
  • 直播视频录制 标准直播和低时延直播都支持视频录制功能,操作流程相同,如下所示。 直播录制是指在直播推流时将直播内容进行录制并将录制的视频存储到OBS( 对象存储服务 Object Storage Service)中,然后在OBS中对录制的直播视频进行下载、分享等处理。 因直播录制文件最终存储在OBS中,所以您需要在OBS中创建存储桶,操作请参见创建桶。其中,OBS服务计费情况,请参见OBS产品价格详情。 您需要授权直播服务使用OBS桶存储录制文件,操作请参见云资源授权。 您可以设置直播录制格式、周期等,操作请参见配置录制模板。 如您想实时了解直播录制状态,可在直播录制前配置录制回调,操作请参见配置录制回调。 开始直播推流。 直播录制完成后,您可以在直播、OBS服务中管理录制文件,如预览、下载、分享等,操作请参见管理录制文件。 父主题: 快速入门