阿里雲CLI(Alibaba Cloud Command Line Interface)是基於OpenAPI構建的通用命令列工具,您可以通過阿里雲CLI實現自動化管理和維護ApsaraVideo Media Processing。本文將為您介紹使用阿里雲CLI調用ApsaraVideo Media Processing的操作步驟和樣本。
前置概念
閱讀本文前,若您還不瞭解阿里雲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
權限原則。您也可以使用自訂策略,更多資訊請參見ApsaraVideo for Media Processing自訂權限原則參考。建立RAM使用者並授權後,您需要建立RAM使用者對應的AccessKey,並記錄
AccessKey ID
和AccessKey Secret
,以便後續配置身份憑證使用。具體操作,請參見建立AccessKey。您需要擷取並記錄可用的地區ID,以便後續配置身份憑證使用。阿里雲CLI將使用您指定的地區發起API調用,可用地區請參見服務存取點。
說明使用阿里雲CLI過程中您可使用
--region
選項指定地區發起命令調用,該選項在使用時將忽略預設身份憑證配置及環境變數設定中的地區資訊。詳情請參見API命令可用選項。使用RAM使用者的AccessKey配置AK類型憑證,設定檔命名為
AkProfile
。具體操作,請參見配置樣本。
產生CLI命令樣本
在API調試介面左側搜尋方塊中可搜尋您需要使用的API。在參數配置中根據API文檔資訊填寫參數,單擊參數配置右側的CLI樣本頁簽即可產生攜帶參數的命令樣本。
調用API
命令結構
阿里雲CLI的通用命令列結構如下。更多詳情,請參見命令結構。
aliyun <command> <subcommand> [options and parameters]
常用命令選項
在阿里雲CLI中,您可根據需要使用命令列選項,用來修改命令的預設行為或為命令提供額外功能。常用命令列選項如下:
--profile <profileName>
:使用--profile
選項並指定有效配置名稱profileName
後,阿里雲CLI將忽略預設身份憑證配置及環境變數設定,優先使用指定的配置進行命令調用。--help
:在需要擷取協助的命令層級處鍵入--help
選項,即可擷取該命令的協助資訊。更多詳情,請參見擷取協助資訊。
更多詳細資料,請參見API命令可用選項。
調用樣本
樣本一:以下程式碼範例將為您展示如何使用--help
選項擷取ApsaraVideo Media Processing支援阿里雲CLI調用API列表。您也可在API概覽中查看支援調用的API。
執行命令。
aliyun mts --help
輸出結果。
樣本二:以下樣本將為您展示如何使用阿里雲CLI調用ApsaraVideo Media Processing中的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" } } ] } }
說明如果調用ApsaraVideo Media ProcessingAPI後返回錯誤,您需要根據返回的錯誤碼提示檢查傳入的請求參數及其取值是否正確。
您也可以記錄下調用返回的RequestID或SDK報錯資訊,通過阿里雲OpenAPI診斷平台進行自助診斷。