云服务器内容精选

  • 请求示例 获取实况地址请求: POST /v2/123456789*****/devices/channels/media/live-connections { "expire_time":30, "use_times":0, "channels": [ { "channel_id": "0", "device_id": "219123456CYP***", "live_protocol":"HOLO", "stream_type": "SECONDARY_STREAM_1" }, { "channel_id": "1", "device_id": "219123456CYP***", "live_protocol":"HOLO", "stream_type": "PRIMARY_STREAM" } ] }
  • 响应示例 状态码: 200 OK { "fail_num": 1, "live_connections": [ { "device_id": "219123456CYP***", "channel_id": "0", "cloud_trans_connections": {}, "p2p_connections": {}, "result": { "code": "IVM.10026004", "msg": "The param stream_type is not support." } }, { "device_id": "210123456SMY***", "channel_id": "0", "cloud_trans_connections": { "live_url": "jvmp://123.123.123.123:7070/live/210123456SMY***?token=content***" }, "p2p_connections": { "token": "content***", "device_state": "ONLINE", "p2p_nodes": [ { "node_type": "COMMON", "address_type": "IPV4", "address": [ "123.123.123.123" ], "tcp_port": 0, "udp_port": 7050 } ] }, "result": { "code": "IVM.0", "msg": "Success" } } ] }
  • 响应参数 状态码: 200 表5 响应Body参数:播放P2P实况需要将响应Body参数中的所有内容输入到播放地址栏 参数 参数类型 描述 fail_num Integer 获取设备url失败的数量 live_connections Array of LiveConnectionResp objects 实况响应信息 表6 LiveConnectionResp 参数 参数类型 描述 device_id String 设备ID:设备唯一标识,长度范围[1,32] channel_id String 通道ID:长度范围[1,20] cloud_trans_connections CloudTransChannelsResp object 转发实况连接结构体 p2p_connections P2PChannelsResp object P2P实况连接结构体:仅支持HOLO媒体播放协议且请求设备为好望设备 result Result object 错误信息 表7 CloudTransChannelsResp 参数 参数类型 描述 live_url String 转发实况播放地址:将此url输入播放地址栏开始播放 表8 P2PChannelsResp 参数 参数类型 描述 token String P2P请求Token device_state String 在线状态:枚举类型 枚举值: OFFLINE 离线 ONLINE 在线 p2p_nodes Array of P2PMTSListResp objects P2P连接可用节点 表9 P2PMTSListResp 参数 参数类型 描述 node_type String 节点类型:枚举类型 枚举值: COMMON 普通:普通的三线(移动,联通,电线)服务器,与地域有关,服务器由运营商托管,网络通信质量低 BETTER 优质:全网通服务器(华为云服务器等),网络通信质量高 address_type String 地址类型:枚举类型 DOMAIN 域地址 IPV4 IPv4地址 IPV6 IPv6地址 address Array of strings 媒体转发服务地址: 协议头在SDK封装 ,根据address_type决定地址类型 DOMAIN: www.huawei.com IPV4: 123.123.123.123 IPV6: fe80::f816:3eff:feed:5821 tcp_port Integer TCP端口:默认值为 0 备注:未使用0端口,tcp_port只作为兼容字段保留 udp_port Integer UDP端口:默认值为 7050 表10 Result 参数 参数类型 描述 code String 错误编码:请参见错误码 msg String 错误信息
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Access-Token 是 String 用户认证AccessToken:从获取用户北向接口认证AccessToken中获取 表3 请求Body参数 参数 是否必选 参数类型 描述 channels 是 Array of ChannelsLiveParamV2 objects 请求信息V2 expire_time 否 Integer 自定义Url过期时间:时间范围[30, 86400],不传默认为 30(单位/秒) 备注:仅对CloudTransChannelsResp中的live_url有效;HTTP_HLS和HTTPS_HLS每次使用会刷新过期时间,每次刷新60秒 use_times 否 Integer 自定义Url使用次数:枚举类型,不填写时默认值为 0,RTSP协议固定为 0 备注:仅对CloudTransChannelsResp中的live_url有效 枚举值: 0 使用一次 1 有效时间内任意使用,此参数对RTSP协议无效 表4 ChannelsLiveParamV2 参数 是否必选 参数类型 描述 device_id 是 String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 国标设备:由数字组成,长度固定为20个字符长度,由客户自行设置,其中第11-13位,必须是以下之一132(IPC)、111(DVR)、118(NVR),用来区分设备类型 channel_id 是 String 通道ID: 好望设备:取值范围[0,999] 国标设备:由数字组成,长度为20个字符,由客户自行在设备侧设置,可以在web界面获取 live_protocol 是 String 媒体播放协议:枚举类型,选择获取地址的媒体播放协议类型 枚举值: HOLO 好望协议 HTTP_HLS 基于HTTP的HLS流媒体传输协议(该协议存在安全风险,建议优先使用其他协议) HTTPS_HLS 基于HTTPS的HLS流媒体传输协议 HTTP_FLV 基于HTTP的FLV媒体协议(该协议存在安全风险,建议优先使用其他协议) HTTPS_FLV 基于HTTPS的FLV媒体协议 RTSP RTSP流媒体传输协议(该协议存在安全风险,建议优先使用其他协议) stream_type 是 String 码流类型:枚举类型 枚举值: PRIMARY_STREAM 主码流 SECONDARY_STREAM_1 子码流1 SECONDARY_STREAM_2 子码流2
  • 名词解释 对象存储服务 OBS:是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。 函数工作流 FunctionGraph:是一项基于事件驱动的函数托管计算服务。使用FunctionGraph函数,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。 自然语言处理 NLP:自然语言处理提供分词、命名实体识别、关键词提取、文本相似度等自然语言相关的API,可用于智能问答、 对话机器人 、内容推荐、电商评价分析。 机器翻译 NLPMT:机器翻译(Machine Translation)致力于为企业和个人提供不同语种间快速翻译能力,通过API调用即可实现源语言文本到目标语言文本的自动翻译。 事件网格 EG:事件网格(EventGrid,简称EG)是华为云提供的一款Serverless事件总线服务,支持华为云服务、自定义应用、SaaS应用以标准化、中心化的方式接入,通过标准化的CloudEvents协议在这些应用之间以灵活方式路由事件,帮助您轻松构建松耦合、分布式的事件驱动架构。
  • 快速部署 本章节主要帮助用户快速部署该解决方案 表1 参数说明 参数名称 类型 是否可选 参数解释 默认值 source_language string 必填 需要翻译的字幕文件源语言,支持阿拉伯语言(ar)、德语(de)、俄语(ru)、法语(fr)、韩语(ko)、葡萄牙语(pt)、日语(ja)、泰语(th)、土耳其语(tr)、西班牙语(es)、英语(en)、越南语(vi)、中文(简体)(zh)、中文(繁体)(zh-tw),自动检测输入语种(auto)并翻译成目标语种,您需要指定目标语种。 zh target_language string 必填 需要翻译的字幕文件目标语言,支持阿拉伯语言(ar)、德语(de)、俄语(ru)、法语(fr)、韩语(ko)、葡萄牙语(pt)、日语(ja)、泰语(th)、土耳其语(tr)、西班牙语(es)、英语(en)、越南语(vi)、中文(简体)(zh)、中文(繁体)(zh-tw)。 en obs_bucket_name string 必填 对象存储服务 OBS桶名称,全局唯一。该解决方案会创建两个OBS桶,命名方式为{obs_bucket_name}-source(用于上传需要翻译的字幕文件)、{obs_bucket_name}-result(用于存放翻译后的字幕文件)。取值范围:1-56个字符,以字母或数字开头,仅支持小写字母、数字、中划线(-)、英文句号(.)。 空 functiongraph_name string 必填 函数工作流 Functiongraph函数名称,不支持重名。取值范围:长度为2-57个字符,支持字母、数字、_(下划线)和-(中划线),以字母开头,以字母或数字结尾。 subtitle-translation-demo 登录华为云解决方案实践,选择“字幕翻译”,单击“一键部署”,跳转至解决方案创建资源栈界面。 图1 解决方案实践 在选择模板界面中,单击“下一步”。 图2 选择模板 在配置参数界面中,参考表3-1 参数填写说明完成自定义参数填写,单击“下一步”。 图3 配置参数 (可选,如果使用华为主账号或admin用户组下的 IAM 子账户可不选委托)在资源设置界面中,在权限委托下拉框中选择“rf_admin_trust”委托,单击“下一步”。 图4 资源栈设置 在配置确认界面中,单击“创建执行计划”。 图5 配置确认 在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。 图6 创建执行计划 单击“部署”,并且在弹出的执行计划确认框中单击“执行”。 图7 执行计划 图8 执行计划确认 待“事件”中出现“Apply required resource success”,表示该解决方案已经部署完成。 图9 部署完成 父主题: 实施步骤
  • 给rf_admin_trust委托添加IAM Agency Management FullAccess策略 打开“ 统一身份认证 ”菜单。 图12 统一身份认证菜单 进入“委托”菜单,选择rf_admin_trust委托。 图13 委托列表 进入“授权记录”菜单,单击“授权”按钮。 图14 授权记录 在搜索框输入IAM Agency Management FullAccess,勾选过滤出来的记录,单击下一步,并确认完成权限的配置。 图15 配置IAM Agency Management FullAccess策略 配置好后的情况:rf_admin_trust委托拥有Tenant Administrator和IAM Agency Management FullAccess权限。 图16 授权记录列表
  • 创建rf_admin_trust委托 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“统一身份认证”菜单。 图1 控制台管理界面 图2 统一身份认证菜单 进入“委托”菜单,搜索“rf_admin_trust”委托。 图3 委托列表 如果委托存在,则不用执行接下来的创建委托的步骤。 如果委托不存在时执行接下来的步骤创建委托。 单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,委托类型选择“云服务”,选择“ RFS ”,单击“下一步”。 图4 创建委托 在搜索框中输入“Tenant Administrator”权限,并勾选搜索结果,单击“下一步”。 图5 选择策略 选择“所有资源”,并单击下一步完成配置。 图6 设置授权范围 “委托”列表中出现“rf_admin_trust”委托则创建成功。 图7 委托列表
  • 资源和成本规划 该解决方案主要部署如下资源,以下费用仅供参考,具体请参考华为云官网价格计算器,实际收费以账单为准。 表1 成本预估(仅供参考) 华为云服务 计费说明 每月花费 自然语言处理 NLP 文本翻译 区域:华北-北京四 按需付费 0-一百万:0 元/百万字符 一百万-五千万:50 元/百万字符 五千万-一亿:42.5 元/百万字符 一亿以上:35 元/百万字符 按字符计费,详细请参考每月账单。 对象存储服务 OBS 区域:华北-北京四 存储空间:数据存储(多AZ存储) 默认存储类别:标准存储 桶策略:私有 请求费用:0.0100元/万次 存储空间:0.1390元/GB/月 流量费用: 公网流出流量 / 00:00-08:00(闲时)0.2500元/GB 公网流出流量 / 08:00-24:00(忙时)0.5000元/GB 费用包括存储空间、请求费用、流量费用两部分,具体请参考OBS计费详情。 费用包括存储空间、请求费用、流量费用三部分,详细请参考每月账单。 函数工作流 FunctionGraph 区域:华北-北京四 产品:函数 请求次数: 0-100万次: 0元/100万次 100万次以上 : 1.33元/100万次 计量时间: 0-400,000 GB/秒: 0元/GB-秒 400,000 GB/秒以上 :0.00011108元/GB-秒 费用包括请求次数、计量时间两部分,详细请参考每月账单。 事件网格 EG 区域:华北-北京四 自定义(包含云服务租户侧事件产生 )或三方事件流入的事件数量 根据事件流入的数量按量计费,6.75元/百万个。 华为云服务事件源自身产生发布的事件(任意事件状态变化 )免费,事件消费免费。 免费 合计 - 函数工作流费用+文本翻译费用+OBS费用
  • 方案架构 该解决方案基于华为云函数工作流 FunctionGraph、自然语言处理 NLP等资源一键式部署,实现对字幕文件的翻译。解决方案架构图如下: 图1 方案架构图 该解决方案会部署如下资源: 在函数工作流 FunctionGraph中创建一个函数,用于实现对字幕文件的源语言到目标语言的文字翻译 创建两个对象存储服务 OBS桶,一个用于上传原始字幕文件,另一个用于转储翻译后的字幕文件 使用自然语言处理 NLP服务,由函数工作流调用其文本翻译接口,实现对源文件的翻译 使用事件网格 EG服务,创建一个事件订阅,作为函数工作流的OBS应用事件源触发器 使用统一身份认证服务 IAM创建两个委托,一个用于将OBS桶的操作权限委托给函数工作流;另一个用于事件网格触发函数
  • 设置取消转码参数 1 2 3 4 5 6 7 //取消任务,TaskId是转码请求响应中返回的任务ID DeleteTranscodingTaskRequest req = new DeleteTranscodingTaskRequest().withTaskId(3273178); //发送请求 DeleteTranscodingTaskResponse deleteTranscodingTaskResponse = initMpcClient().deleteTranscodingTask(req); //返回处理消息 System.out.println(JsonUtils.toJSON(deleteTranscodingTaskResponse));
  • 安装SDK 媒体转码服务端SDK支持python 3及以上版本。执行“ python --version”检查当前python的版本信息。 使用服务端SDK前,您需要安装“huaweicloudsdkcore ”和“huaweicloudsdkmpc”,具体的SDK版本号请参见SDK开发中心。 使用pip安装 执行如下命令安装Python SDK核心库以及相关服务库: 1 2 3 4 # 安装核心库 pip install huaweicloudsdkcore # 安装MPC服务库 pip install huaweicloudsdkmpc 使用源码安装 执行如下命令安装Python SDK核心库以及相关服务库: 1 2 3 4 5 6 7 # 安装核心库 cd huaweicloudsdkcore-${version} python setup.py install # 安装MPC服务库 cd huaweicloudsdkmpc-${version} python setup.py install
  • 代码示例 调用前请根据实际情况替换如下变量:"SDK_AK"、"SDK_SK"、{your endpoint string} 以及 {your project id}。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcore.http.http_config import HttpConfig from huaweicloudsdkmpc.v1 import * def list_transcoding_task(client): try: request = ListTranscodingTaskRequest(task_id = [1900293]) response = client.list_transcoding_task(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["SDK_AK"] sk = os.environ["SDK_SK"] project_id = os.environ["{your project id}"] endpoint = "{your endpoint}" config = HttpConfig.get_default_config() config.ignore_ssl_verification = True credentials = BasicCredentials(ak, sk, project_id) mpc_client = MpcClient.new_builder(MpcClient) \ .with_http_config(config) \ .with_credentials(credentials) \ .with_endpoint(endpoint) \ .build() list_transcoding_task(mpc_client)
  • 代码示例 - 初始化MpcClient Endpoint调用前请您根据实际情况填写,并替换如下变量:"SDK_AK"、"SDK_SK"、{your endpoint string}和{your project id}。 package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.http.HttpConfig; import com.huaweicloud.sdk.mpc.v1.MpcClient; public class InitMpc { private static HttpConfig httpConfig; private static BasicCredentials auth; private static String endpoint; private static MpcClient mpcClient; public static MpcClient getMpcClient() { httpConfig = HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withTimeout(3); //http代理设置,请根据实际情况设置 //httpConfig.withProxyHost("xxxxx").withProxyPort(xxxxx).withProxyUsername("xxxxx"). // withProxyPassword("xxxxx"); String ak = System.getenv("SDK_AK"); String sk = System.getenv("SDK_SK"); String projectId = System.getenv("PROJECT_ID"); endpoint = "https://mpc.region01.myhuaweicloud.com"; auth = new BasicCredentials().withAk(ak).withSk(sk).withProjectId(projectId); mpcClient = MpcClient.newBuilder() .withHttpConfig(httpConfig) .withCredential(auth) .withEndpoint(endpoint) .build(); return mpcClient; } }
  • onAudioFrameRecord - (BOOL)onAudioFrameRecord:(HWRtcAudioFrame * _Nonnull)audioFrame; 【功能说明】 音频采集原始数据回调,对音频数据的修改会发送到远端。 【回调参数】 HWRtcAudioFrame:音频数据格式,具体请参见HWRtcAudioFrame。 【返回参数】 YES:处理结果成功。 NO:处理结果失败。