0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

aws mediaconvert

Posted at

aws上で

  • 動画の合成
  • 動画の作成
  • 音声の作成

ができるサービス

特にジョブの設定jsonではまったので残しておきます

おすすめはgptなどで生成するより、awsのコンソール画面でポチポチしながらジョブのjsonを作成してそれをプログラムに落とし込む方が全然早いことに気が付きました

必要なrole

# IAMロールの作成
resource "aws_iam_role" "mediaconvert_role" {
  name = "MediaConvertRole"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "mediaconvert.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
EOF
}

# IAMポリシーのアタッチ
resource "aws_iam_role_policy" "mediaconvert_policy" {
  role = aws_iam_role.mediaconvert_role.name

  policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::vision-maker-dev/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "mediaconvert:CreateJob",
        "mediaconvert:GetJob",
        "mediaconvert:ListJobs"
      ],
      "Resource": "*"
    }
  ]
}
EOF
}

# MediaConvertのキュー
resource "aws_mediaconvert_queue" "default_queue" {
  name = "default"
}

output "mediaconvert_role_arn" {
  value = aws_iam_role.mediaconvert_role.arn
}

mp3と画像の合成 ジョブキー

{
  "Queue": "<キューのarn>",
  "UserMetadata": {},
  "Role": "<roleのarn>",
  "Settings": {
    "TimecodeConfig": {
      "Source": "ZEROBASED"
    },
    "OutputGroups": [
      {
        "Name": "File Group",
        "Outputs": [
          {
            "ContainerSettings": {
              "Container": "MP4",
              "Mp4Settings": {}
            },
            "VideoDescription": {
              "Width": 1920,
              "Height": 1080,
              "CodecSettings": {
                "Codec": "H_264",
                "H264Settings": {
                  "FramerateDenominator": 1,
                  "MaxBitrate": 5000000,
                  "FramerateControl": "SPECIFIED",
                  "RateControlMode": "QVBR",
                  "FramerateNumerator": 30,
                  "SceneChangeDetect": "TRANSITION_DETECTION"
                }
              }
            },
            "AudioDescriptions": [
              {
                "AudioSourceName": "Audio Selector 1",
                "CodecSettings": {
                  "Codec": "AAC",
                  "AacSettings": {
                    "Bitrate": 96000,
                    "CodingMode": "CODING_MODE_2_0",
                    "SampleRate": 48000
                  }
                }
              }
            ],
            "NameModifier": "test"
          }
        ],
        "OutputGroupSettings": {
          "Type": "FILE_GROUP_SETTINGS",
          "FileGroupSettings": {
            "Destination": "<出力s3フォルダ>",
            "DestinationSettings": {
              "S3Settings": {
                "StorageClass": "STANDARD"
              }
            }
          }
        }
      }
    ],
    "FollowSource": 1,
    "Inputs": [
      {
        "AudioSelectors": {
          "Audio Selector 1": {
            "DefaultSelection": "DEFAULT"
          }
        },
        "TimecodeSource": "ZEROBASED",
        "ImageInserter": {
          "InsertableImages": [
            {
              "ImageX": 0,
              "ImageY": 0,
              "Layer": 0,
              "ImageInserterInput": "<画像のキs3ー>",
              "Opacity": 50
            }
          ]
        },
        "FileInput": "<音声のs3キー>"
      }
    ]
  },
  "BillingTagsSource": "QUEUE",
  "AccelerationSettings": {
    "Mode": "DISABLED"
  },
  "StatusUpdateInterval": "SECONDS_10",
  "Priority": 0
}

動画の合成

{
  "Queue": "<キューのarn>",
  "UserMetadata": {},
  "Role": "<roleのarn>",
  "Settings": {
    "TimecodeConfig": {
      "Source": "ZEROBASED"
    },
    "OutputGroups": [
      {
        "Name": "File Group",
        "Outputs": [
          {
            "ContainerSettings": {
              "Container": "MP4",
              "Mp4Settings": {}
            },
            "VideoDescription": {
              "CodecSettings": {
                "Codec": "H_264",
                "H264Settings": {
                  "MaxBitrate": 5000000,
                  "RateControlMode": "QVBR",
                  "SceneChangeDetect": "TRANSITION_DETECTION"
                }
              }
            },
            "AudioDescriptions": [
              {
                "CodecSettings": {
                  "Codec": "AAC",
                  "AacSettings": {
                    "Bitrate": 96000,
                    "CodingMode": "CODING_MODE_2_0",
                    "SampleRate": 48000
                  }
                }
              }
            ]
          }
        ],
        "OutputGroupSettings": {
          "Type": "FILE_GROUP_SETTINGS",
          "FileGroupSettings": {
            "Destination": "<出力s3フォルダ>",
            "DestinationSettings": {
              "S3Settings": {
                "StorageClass": "STANDARD"
              }
            }
          }
        }
      }
    ],
    "FollowSource": 1,
    "Inputs": [
      {
        "AudioSelectors": {
          "Audio Selector 1": {
            "DefaultSelection": "DEFAULT"
          }
        },
        "VideoSelector": {},
        "TimecodeSource": "ZEROBASED",
        "FileInput": "<動画のs3キー1>"
      },
      {
        "AudioSelectors": {
          "Audio Selector 1": {
            "DefaultSelection": "DEFAULT"
          }
        },
        "VideoSelector": {},
        "TimecodeSource": "ZEROBASED",
        "FileInput": "<動画のs3キー2>"
      }
    ]
  },
  "BillingTagsSource": "JOB",
  "AccelerationSettings": {
    "Mode": "DISABLED"
  },
  "StatusUpdateInterval": "SECONDS_60",
  "Priority": 0
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?