阿里云CLI(Alibaba Cloud Command Line Interface)是基于OpenAPI构建的通用命令行工具,您可以通过阿里云CLI实现自动化管理和维护媒体处理。本文将为您介绍使用阿里云CLI调用媒体处理的操作步骤和示例。
前置概念
阅读本文前,若您还不了解阿里云CLI,请参见什么是阿里云CLI。
安装阿里云CLI
使用阿里云CLI前,您需要先安装阿里云CLI。阿里云CLI为用户提供了Windows、Linux和macOS三种操作系统下的安装服务,请根据您使用设备的操作系统选择对应的安装服务。
Windows:在Windows上安装阿里云CLI。
Linux:在Linux上安装阿里云CLI。
macOS:在macOS上安装阿里云CLI。
配置阿里云CLI
阿里云账号(主账号)拥有所有产品API的管理和访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。
使用阿里云CLI之前,您需要在阿里云CLI中配置身份凭证、地域ID等信息。阿里云CLI支持多种身份凭证,详情请参见身份凭证类型。本文操作以AK类型凭证为例,具体操作步骤如下:
您需要创建一个RAM用户并授予相应操作权限。具体操作,请参见创建RAM用户及为RAM用户授权。
重要本示例需要您为RAM用户授予
AliyunMTSFullAccess
权限策略。您也可以使用自定义策略,更多信息请参见媒体处理自定义权限策略参考。创建RAM用户并授权后,您需要创建RAM用户对应的AccessKey,并记录
AccessKey ID
和AccessKey Secret
,以便后续配置身份凭证使用。具体操作,请参见创建AccessKey。您需要获取并记录可用的地域ID,以便后续配置身份凭证使用。阿里云CLI将使用您指定的地域发起API调用,可用地域请参见服务接入点。
说明使用阿里云CLI过程中您可使用
--region
选项指定地域发起命令调用,该选项在使用时将忽略默认身份凭证配置及环境变量设置中的地域信息。详情请参见API命令可用选项。使用RAM用户的AccessKey配置AK类型凭证,配置文件命名为
AkProfile
。具体操作,请参见配置示例。
生成CLI命令示例
登录媒体处理API调试列表。
在API调试界面左侧搜索框中可搜索您需要使用的API。在参数配置中根据API文档信息填写参数,单击参数配置右侧的CLI示例页签即可生成携带参数的命令示例。
调用API
命令结构
阿里云CLI的通用命令行结构如下。更多详情,请参见命令结构。
aliyun <command> <subcommand> [options and parameters]
常用命令选项
在阿里云CLI中,您可根据需要使用命令行选项,用来修改命令的默认行为或为命令提供额外功能。常用命令行选项如下:
--profile <profileName>
:使用--profile
选项并指定有效配置名称profileName
后,阿里云CLI将忽略默认身份凭证配置及环境变量设置,优先使用指定的配置进行命令调用。--help
:在需要获取帮助的命令层级处键入--help
选项,即可获取该命令的帮助信息。更多详情,请参见获取帮助信息。
更多详细信息,请参见API命令可用选项。
调用示例
示例一:以下代码示例将为您展示如何使用--help
选项获取媒体处理支持阿里云CLI调用API列表。您也可在API概览中查看支持调用的API。
执行命令。
aliyun mts --help
输出结果。
示例二:以下示例将为您展示如何使用阿里云CLI调用媒体处理中的QueryMediaInfoJobList
命令,查询媒体信息作业。QueryMediaInfoJobList
命令的详细介绍,请参见QueryMediaInfoJoList。
执行命令。
aliyun mts QueryMediaInfoJobList --region cn-hangzhou --MediaInfoJobIds '23ca1d184c0e4341e5b665e2a12****'
输出结果。
{ "NonExistMediaInfoJobIds": { "String": [ "11ce1d184c0e4341e5b665e2a12****" ] }, "RequestId": "46A04AA5-B119-41BB-B750-7C5327AC3E7A", "MediaInfoJobList": { "MediaInfoJob": [ { "CreationTime": "2014-01-10T12:00:00Z", "State": "Success", "JobId": "23ca1d184c0e4341e5b665e2a12****", "UserData": "testid-001", "Code": "InvalidParameter.JsonObjectFormatInvalid", "Message": "The parameter ”*” does not conform to the JSON Object specification", "PipelineId": "88c6ca184c0e432bbf5b665e2a15****", "Async": true, "Input": { "Object": "example.mp4", "Location": "oss-cn-hangzhou", "Bucket": "example-bucket" }, "MNSMessageResult": { "MessageId": "123", "ErrorMessage": "The parameter \\\"Input\\\" does not conform to the JSON Object specification", "ErrorCode": "InvalidParameter.JsonObjectFormatInvalid" }, "Properties": { "Width": "1280", "Height": "720", "Duration": "17.226000", "Fps": "25", "Bitrate": "1630.045", "FileFormat": "QuickTime/MOV", "Streams": { "VideoStreamList": { "VideoStream": [ { "Sar": "1:1", "Height": "1080", "CodecTagString": "[0][0][0][0]", "NetworkCost": { "PreloadTime": "8", "AvgBitrate": "300.34", "CostBandwidth": "10" }, "Width": "1920", "Index": "1", "Timebase": "1/1000", "AvgFPS": "23.976025", "PixFmt": "yuv420p", "Lang": "eng", "CodecLongName": "H.264/AVC/MPEG-4 AVC/MPEG-4 part 10", "NumFrames": "100", "Rotate": "180", "Bitrate": "30541090", "HasBFrames": "0", "Profile": "High", "StartTime": "0.042000", "Dar": "16:9", "CodecName": "h264", "Duration": "100", "Fps": "25", "CodecTag": "0x0000", "CodecTimeBase": "1001/48000", "Level": "41", "ColorRange": "700", "ColorTransfer": "R255 G83 B170", "ColorPrimaries": "700" } ] }, "AudioStreamList": { "AudioStream": [ { "Timebase": "1/1000", "Index": "1", "SampleFmt": "fltp", "ChannelLayout": "5.1(side)", "Lang": "eng", "Samplerate": "48000", "CodecLongName": "DCA (DTS Coherent Acoustics)", "Channels": "2", "NumFrames": "123", "Bitrate": "1536000", "CodecTagString": "[0][0][0][0]", "StartTime": "0.042000", "CodecName": "acc", "Duration": "123", "CodecTag": "0x0000", "CodecTimeBase": "1/48000" } ] }, "SubtitleStreamList": { "SubtitleStream": [ { "Timebase": "1/1000", "Index": "3", "StartTime": "0.000000", "CodecName": "ass", "Lang": "eng", "CodecLongName": "ASS (Advanced SSA) subtitle", "Duration": "1370.116000", "CodecTag": "0x0000", "CodecTimeBase": "0/1", "CodecTagString": "[0][0][0][0]" } ] } }, "Format": { "StartTime": "0.042000", "NumPrograms": "2", "Size": "3509895", "NumStreams": "1", "FormatLongName": "QuickTime/MOV", "Duration": "17.226000", "Bitrate": "1630.045", "FormatName": "mov" }, "FileSize": "3509895" } } ] } }
说明如果调用媒体处理API后返回错误,您需要根据返回的错误码提示检查传入的请求参数及其取值是否正确。
您也可以记录下调用返回的RequestID或SDK报错信息,通过阿里云OpenAPI诊断平台进行自助诊断。