全部產品
Search
文件中心

ApsaraVideo Media Processing:CLI整合樣本

更新時間:Oct 25, 2024

阿里雲CLI(Alibaba Cloud Command Line Interface)是基於OpenAPI構建的通用命令列工具,您可以通過阿里雲CLI實現自動化管理和維護ApsaraVideo Media Processing。本文將為您介紹使用阿里雲CLI調用ApsaraVideo Media Processing的操作步驟和樣本。

前置概念

閱讀本文前,若您還不瞭解阿里雲CLI,請參見什麼是阿里雲CLI

安裝阿里雲CLI

使用阿里雲CLI前,您需要先安裝阿里雲CLI。阿里雲CLI為使用者提供了Windows、Linux和macOS三種作業系統下的安裝服務,請根據您使用裝置的作業系統選擇對應的安裝服務。

您也可使用阿里雲提供的雲命令列調試阿里雲CLI命令。關於雲命令列的更多資訊,請參閱什麼是雲命令列

配置阿里雲CLI

重要

阿里雲帳號(主帳號)擁有所有產品API的管理和存取權限,風險很高。強烈建議您建立並使用RAM使用者進行API訪問或日常營運。

使用阿里雲CLI之前,您需要在阿里雲CLI中配置身份憑證、地區ID等資訊。阿里雲CLI支援多種身份憑證,詳情請參見身份憑證類型。本文操作以AK類型憑證為例,具體操作步驟如下:

  1. 您需要建立一個RAM使用者並授予相應操作許可權。具體操作,請參見建立RAM使用者為RAM使用者授權

    重要

    本樣本需要您為RAM使用者授予AliyunMTSFullAccess權限原則。您也可以使用自訂策略,更多資訊請參見ApsaraVideo for Media Processing自訂權限原則參考

  2. 建立RAM使用者並授權後,您需要建立RAM使用者對應的AccessKey,並記錄AccessKey IDAccessKey Secret,以便後續配置身份憑證使用。具體操作,請參見建立AccessKey

  3. 您需要擷取並記錄可用的地區ID,以便後續配置身份憑證使用。阿里雲CLI將使用您指定的地區發起API調用,可用地區請參見服務存取點

    說明

    使用阿里雲CLI過程中您可使用--region選項指定地區發起命令調用,該選項在使用時將忽略預設身份憑證配置及環境變數設定中的地區資訊。詳情請參見API命令可用選項

  4. 使用RAM使用者的AccessKey配置AK類型憑證,設定檔命名為AkProfile。具體操作,請參見配置樣本

產生CLI命令樣本

  1. 登入ApsaraVideo for Media ProcessingAPI調試列表

  2. 在API調試介面左側搜尋方塊中可搜尋您需要使用的API。在參數配置中根據API文檔資訊填寫參數,單擊參數配置右側的CLI樣本頁簽即可產生攜帶參數的命令樣本。

    image

    • 單擊image按鈕,可喚出雲命令列並在其中快速完成命令調試。

    • 單擊image按鈕,將CLI樣本複製到剪貼簿中,可粘貼至本地Shell工具中運行。

      • 複製CLI樣本到本地Shell工具中進行調試時請注意參數格式。關於阿里雲CLI命令參數使用格式的詳細資料,請參見參數格式說明

      • OpenAPI門戶產生樣本中會預設添加--region選項,複製命令到本地調用時阿里雲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。

  1. 執行命令。

    aliyun mts --help
  2. 輸出結果。

    image

樣本二:以下樣本將為您展示如何使用阿里雲CLI調用ApsaraVideo Media Processing中的QueryMediaInfoJobList命令,查詢媒體資訊作業。QueryMediaInfoJobList命令的詳細介紹,請參見QueryMediaInfoJoList

  1. 執行命令。

    aliyun mts QueryMediaInfoJobList --region cn-hangzhou --MediaInfoJobIds '23ca1d184c0e4341e5b665e2a12****'
  2. 輸出結果。

    {
      "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診斷平台進行自助診斷。