適用於視訊轉碼工作負載的 Amazon ECS 任務定義 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

適用於視訊轉碼工作負載的 Amazon ECS 任務定義

若要在 Amazon ECS 上使用影片轉碼工作負載,請註冊 Amazon EC2 VT1 執行個體。註冊這些執行個體後,您可以在 Amazon ECS 將即時和預先渲染的影片轉碼工作負載作為任務執行。Amazon EC2 VT1 執行個體使用 Xilinx U30 媒體轉碼卡來加速即時和預先渲染的影片轉碼工作負載。

注意

如需如何在 Amazon ECS 以外的容器中執行影片轉碼工作負載的說明,請參閱 Xilinx 文件

考量事項

當您開始在 Amazon ECS 上部署 VT1 之前,請考量下列事項:

  • 您的叢集可包含 VT1 和非 VT1 執行個體組合。

  • 您需要使用具有加速 AVC (H.264) 和 HEVC (H.265) 解碼器的 Xilinx U30 媒體轉碼卡的 Linux 應用程式。

    重要

    使用其他解碼器的應用程式在 VT1 執行個體上可能沒有提升效能。

  • U30 卡上只能執行一個轉碼任務。每張卡都有兩個與其關聯的裝置。只要您的每個 VT1 執行個體都有轉碼卡,您就可以執行所需數量的轉碼任務。

  • 建立服務或執行獨立任務時,您可以在設定任務置放限制條件時使用執行個體類型屬性。這可確保在您指定的容器執行個體上啟動任務。此舉有助於確保您有效地運用資源,並確保您的影片轉碼工作負載任務位於 VT1 執行個體上。如需詳細資訊,請參閱 Amazon ECS 如何在容器執行個體上放置任務

    在以下範例中,在您的 default 叢集的 vt1.3xlarge 執行個體上執行任務。

    aws ecs run-task \ --cluster default \ --task-definition vt1-3xlarge-xffmpeg-processor \ --placement-constraints type=memberOf,expression="attribute:ecs.instance-type == vt1.3xlarge"
  • 您可以設定容器,以便在主機容器執行個體上使用可用的特定 U30 卡。您可使用 linuxParameters 參數並指定裝置詳細資訊來實現這一操作。如需詳細資訊,請參閱 任務定義需求

使用 VT1 AMI

您有兩種可選的選項,在 Amazon EC2 上執行 Amazon ECS 容器執行個體的 AMI。第一個選項是使用 AWS Marketplace上的 Xilinx 正式 AMI。第二個選項是從範本儲存庫建置自己的 AMI。

  • 賽靈思提供 AMI 上的. AWS Marketplace

  • Amazon ECS 提供了一個範本儲存庫,您可以使用該範本儲存庫為影片轉碼工作負載建置 AMI。此 AMI 隨附 Xilinx U30 驅動程式。您可以在GitHub上找到包含封裝程式指令碼的儲存庫。如需 Packer 的詳細資訊,請參閱 Packer documentation (《Packer 文件》)。

任務定義需求

若要在 Amazon ECS 上執行視影片轉碼容器,您的任務定義必須包含使用加速 H.264/AVC 和 H.265/HEVC 解碼器的影片轉碼應用程式。您可以按照 Xil GitHub inx 上的步驟構建容器映像。

任務定義必須根據執行個體類型專門設定。執行個體類型為 3xlarge、6xlarge 和 24xlarge。您必須設定容器,以便在主機容器執行個體上使用可用的特定 Xilinx U30 裝置。您可以使用 linuxParameters 參數進行該動作。下表詳細 SoCs 說明每個執行個體類型專屬的卡片和裝置。

執行個體類型 vCPU RAM (GiB) U30 加速器卡 可定址 XCU30 SoC 裝置 裝置路徑
vt1.3xlarge 12 24 1 2 /dev/dri/renderD128,/dev/dri/renderD129
vt1.6xlarge 24 48 2 4 /dev/dri/renderD128,/dev/dri/renderD129,/dev/dri/renderD130,/dev/dri/renderD131
vt1.24xlarge 96 182 8 16 /dev/dri/renderD128,/dev/dri/renderD129,/dev/dri/renderD130,/dev/dri/renderD131,/dev/dri/renderD132,/dev/dri/renderD133,/dev/dri/renderD134,/dev/dri/renderD135,/dev/dri/renderD136,/dev/dri/renderD137,/dev/dri/renderD138,/dev/dri/renderD139,/dev/dri/renderD140,/dev/dri/renderD141,/dev/dri/renderD142,/dev/dri/renderD143
重要

如果任務定義列出 EC2 執行個體沒有的裝置,則任務無法執行。當任務失敗時,下列錯誤訊息會出現在 stoppedReasonCannotStartContainerError: Error response from daemon: error gathering device information while adding custom device "/dev/dri/renderD130": no such file or directory