View a markdown version of this page

Tutorial: Batch-transcoding video dengan Operasi Batch S3 - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tutorial: Batch-transcoding video dengan Operasi Batch S3

Konsumen video menggunakan perangkat dari segala bentuk, ukuran, dan vintage untuk menikmati konten media. Beragam perangkat ini menghadirkan tantangan bagi pembuat konten dan distributor. Alih-alih dalam format satu ukuran yang cocok untuk semua, video harus dikonversi sehingga dapat menjangkau berbagai ukuran, format, dan bitrate. Tugas konversi ini bahkan lebih menantang ketika Anda memiliki sejumlah besar video yang harus dikonversi.

AWS menawarkan metode untuk membangun arsitektur terdistribusi yang dapat diskalakan yang melakukan hal berikut:

  • Menelan video masukan

  • Memproses video untuk pemutaran di berbagai perangkat

  • Menyimpan file media yang ditranskode

  • Memberikan file media keluaran untuk memenuhi permintaan

Jika Anda memiliki repositori video ekstensif yang disimpan di Amazon S3, Anda dapat mentranskode video ini dari format sumbernya menjadi beberapa jenis file dalam ukuran, resolusi, dan format yang dibutuhkan oleh pemutar video atau perangkat tertentu. Secara khusus, S3 Batch Operations memberi Anda solusi untuk memanggil AWS Lambda fungsi untuk video input yang ada di bucket sumber S3. Kemudian, fungsi Lambda memanggil AWS Elemental MediaConvert untuk melakukan tugas transcoding video skala besar. File media keluaran yang dikonversi disimpan dalam bucket tujuan S3.

Diagram alur kerja transcoding batch.
Tujuan

Dalam tutorial ini, Anda mempelajari cara mengatur Operasi Batch S3 untuk memanggil fungsi Lambda untuk batch transcoding video yang disimpan dalam bucket sumber S3. Fungsi Lambda memanggil MediaConvert untuk mentranskode video. Output untuk setiap video di bucket sumber S3 adalah sebagai berikut:

  • Aliran bitrate adaptif HTTP Live Streaming (HLS) untuk pemutaran pada perangkat dengan berbagai ukuran dan bandwidth yang bervariasi

  • File video MP4

  • Gambar thumbnail dikumpulkan secara berkala

Prasyarat

Sebelum memulai tutorial ini, Anda harus memiliki bucket sumber Amazon S3 (misalnya,amzn-s3-demo-source-bucket) dengan video yang akan di-transkode yang sudah disimpan di dalamnya.

Anda dapat memberi ember nama lain jika Anda mau. Untuk informasi selengkapnya tentang nama bucket di Amazon S3, lihatAturan penamaan bucket tujuan umum.

Untuk bucket sumber S3, setel setelan yang terkait dengan Blokir Pengaturan Akses Publik untuk bucket ini ke default (Blokir semua akses publik diaktifkan). Untuk informasi selengkapnya, lihat Membuat bucket tujuan umum.

Untuk informasi selengkapnya tentang mengunggah video ke bucket sumber S3, lihatMengunggah Objek. Jika Anda mengunggah banyak file video besar ke S3, Anda mungkin ingin menggunakan Amazon S3 Transfer Acceleration untuk mengonfigurasi transfer file yang cepat dan aman. Akselerasi Transfer dapat mempercepat pengunggahan video ke bucket S3 Anda untuk transfer jarak jauh video yang lebih besar. Untuk informasi selengkapnya, lihat Mengonfigurasi transfer file yang cepat dan aman menggunakan Amazon S3 Transfer Acceleration.

Langkah 1: Buat bucket S3 untuk file media keluaran

Pada langkah ini, Anda membuat bucket tujuan S3 untuk menyimpan file media keluaran yang dikonversi. Anda juga membuat konfigurasi Cross Origin Resource Sharing (CORS) untuk memungkinkan akses lintas asal ke file media transkode yang disimpan di bucket tujuan S3 Anda.

Buat bucket untuk file media keluaran

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Bucket.

  3. Pilih Buat bucket.

  4. Untuk nama Bucket, masukkan nama untuk bucket Anda (misalnya,amzn-s3-demo-destination-bucket1).

  5. Untuk Wilayah, pilih Wilayah AWS tempat Anda ingin bucket berada.

  6. Untuk memastikan akses publik ke file media keluaran Anda, dalam pengaturan Blokir Akses Publik untuk bucket ini, hapus Blok ir semua akses publik.

    Awas

    Sebelum Anda menyelesaikan langkah ini, tinjau Melakukan blok akses publik ke penyimpanan Amazon S3 Anda untuk memastikan bahwa Anda telah memahami dan menerima risiko yang terkait dengan mengizinkan akses publik. Saat Anda menonaktifkan pengaturan Blokir Akses Publik untuk membuat bucket Anda menjadi publik, siapa pun di internet dapat mengakses bucket Anda. Kami sarankan agar Anda memblokir semua akses publik ke bucket Anda.

    Jika Anda tidak ingin menghapus setelan Blokir Akses Publik, Anda dapat menggunakan Amazon CloudFront untuk mengirimkan file media transkode kepada pemirsa (pengguna akhir). Untuk informasi selengkapnya, lihat Tutorial: Hosting video streaming sesuai permintaan dengan Amazon S3, Amazon CloudFront, dan Amazon Route 53.

  7. Pilih kotak centang di sebelah Saya mengakui bahwa pengaturan saat ini mungkin mengakibatkan bucket ini dan objek di dalamnya menjadi publik.

  8. Tetap setel pengaturan yang tersisa ke default.

  9. Pilih Buat bucket.

Tambahkan konfigurasi CORS ke bucket keluaran S3

Konfigurasi JSON CORS mendefinisikan cara untuk aplikasi web klien (pemutar video dalam konteks ini) yang dimuat dalam satu domain untuk memutar file media output yang ditranskode di domain yang berbeda.

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Bucket.

  3. Dalam daftar Bucket, pilih nama bucket yang Anda buat sebelumnya (misalnya,amzn-s3-demo-destination-bucket1).

  4. Pilih tab Izin.

  5. Di bagian berbagi Cross-origin sumber daya (CORS), pilih Edit.

  6. Di kotak teks konfigurasi CORS, salin dan tempel konfigurasi CORS berikut.

    Konfigurasi CORS harus dalam format JSON. Dalam contoh ini, AllowedOrigins atribut menggunakan karakter wildcard (*) untuk menentukan semua asal. Jika Anda mengetahui asal spesifik Anda, Anda dapat membatasi AllowedOrigins atribut ke URL pemain spesifik Anda. Untuk informasi selengkapnya tentang mengonfigurasi atribut ini dan atribut lainnya, lihatElemen konfigurasi CORS.

    [ { "AllowedOrigins": [ "*" ], "AllowedMethods": [ "GET" ], "AllowedHeaders": [ "*" ], "ExposeHeaders": [] } ]
  7. Pilih Simpan perubahan.

Langkah 2: Buat peran IAM untuk MediaConvert

Untuk digunakan AWS Elemental MediaConvert untuk mentranskode video input yang disimpan di bucket S3 Anda, Anda harus memiliki peran layanan AWS Identity and Access Management (IAM) untuk memberikan MediaConvert izin untuk membaca dan menulis file video dari dan ke bucket sumber dan tujuan S3 Anda. Saat Anda menjalankan tugas transcoding, MediaConvert konsol menggunakan peran ini.

Untuk membuat peran IAM untuk MediaConvert
  1. Buat peran IAM dengan nama peran yang Anda pilih (misalnya,tutorial-mediaconvert-role). Untuk membuat peran ini, ikuti langkah-langkah di Buat MediaConvert peran Anda di IAM (konsol) di Panduan AWS Elemental MediaConvert Pengguna.

  2. Setelah Anda membuat peran IAM untuk MediaConvert, dalam daftar Per an, pilih nama peran MediaConvert yang Anda buat (misalnya,tutorial-mediaconvert-role).

  3. Pada halaman Ringkasan, salin Role ARN (yang dimulai denganarn:aws:iam::), dan simpan ARN untuk digunakan nanti.

    Untuk informasi tentang ARN, lihat Amazon Resource Name (ARN) di Referensi Umum AWS .

Langkah 3: Buat peran IAM untuk fungsi Lambda Anda

Untuk melakukan transkode batch video dengan MediaConvert dan Operasi Batch S3, Anda menggunakan fungsi Lambda untuk menghubungkan kedua layanan ini untuk mengonversi video. Fungsi Lambda ini harus memiliki peran IAM yang memberikan izin fungsi Lambda untuk mengakses MediaConvert dan Operasi Batch S3.

Buat peran IAM untuk fungsi Lambda Anda

  1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi kiri, pilih Per an, lalu pilih Buat peran.

  3. Pilih jenis peran AWS layanan, lalu di bawah Kasus penggunaan umum, pilih Lambda.

  4. Pilih Berikutnya: Izin.

  5. Pada halaman Lamp irkan kebijakan izin, AWSLambdaBasicExecutionRole masukkan kotak Kebijakan filter. Untuk melampirkan kebijakan terkelola AWSLambdaBasicExecutionRole ke peran ini untuk memberikan izin penulisan ke Amazon CloudWatch Logs, pilih kotak centang di sebelah AWSLambdaBasicExecutionRole.

  6. Pilih Berikutnya.

  7. Untuk Nama peran, masukkan tutorial-lambda-transcode-role.

  8. (Opsional) Tambahkan tag ke kebijakan terkelola.

  9. Pilih Buat peran.

Menanamkan kebijakan sebaris untuk peran IAM fungsi Lambda Anda

Untuk memberikan izin ke MediaConvert sumber daya yang diperlukan untuk menjalankan fungsi Lambda, Anda harus menggunakan kebijakan sebaris.

  1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi sebelah kiri, pilih Peran.

  3. Dalam daftar Peran, pilih nama peran IAM yang Anda buat sebelumnya untuk fungsi Lambda Anda (misalnya,tutorial-lambda-transcode-role).

  4. Pilih tab Izin.

  5. Pilih Menambahkan kebijakan inline.

  6. Pilih tab JSON, lalu salin dan tempel kebijakan JSON berikut.

    Dalam kebijakan JSON, ganti contoh nilai ARN Resource dengan peran ARN dari peran IAM MediaConvert yang Anda buat di Langkah 2 (misalnya,tutorial-mediaconvert-role).

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*", "Effect": "Allow", "Sid": "Logging" }, { "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::111122223333:role/tutorial-mediaconvert-role" ], "Effect": "Allow", "Sid": "PassRole" }, { "Action": [ "mediaconvert:*" ], "Resource": [ "*" ], "Effect": "Allow", "Sid": "MediaConvertService" }, { "Action": [ "s3:*" ], "Resource": [ "*" ], "Effect": "Allow", "Sid": "S3Service" } ] }
  7. Pilih Tinjau Kebijakan.

  8. Untuk Nama, masukkan tutorial-lambda-policy.

  9. Pilih Buat Kebijakan.

    Setelah Anda membuat kebijakan sebaris, kebijakan tersebut secara otomatis disematkan dalam peran IAM fungsi Lambda Anda.

Langkah 4: Buat fungsi Lambda untuk transcoding video

Di bagian tutorial ini, Anda membangun fungsi Lambda menggunakan SDK untuk Python untuk diintegrasikan dengan S3 Batch Operations dan MediaConvert. Untuk mulai mentranskode video yang sudah disimpan di bucket sumber S3 Anda, Anda menjalankan tugas Operasi Batch S3 yang secara langsung memanggil fungsi Lambda untuk setiap video di bucket sumber S3. Kemudian, fungsi Lambda mengirimkan pekerjaan transcoding untuk setiap video ke. MediaConvert

Tulis kode fungsi Lambda dan buat paket penerapan

  1. Pada mesin lokal Anda, buat folder bernamabatch-transcode.

  2. Di batch-transcode folder, buat file dengan pengaturan pekerjaan JSON. Misalnya, Anda dapat menggunakan pengaturan yang disediakan di bagian ini, dan beri nama filejob.json.

    Sebuah job.json file menentukan yang berikut:

    • File mana yang akan di-transcode

    • Bagaimana Anda ingin mentranskode video input Anda

    • File media keluaran apa yang ingin Anda buat

    • Apa nama file yang ditranskode

    • Tempat menyimpan file yang ditranskode

    • Fitur lanjutan mana yang harus diterapkan, dan sebagainya

    Dalam tutorial ini, kita menggunakan job.json file berikut untuk membuat output berikut untuk setiap video di bucket sumber S3:

    • Aliran bitrate adaptif HTTP Live Streaming (HLS) untuk pemutaran pada beberapa perangkat dengan ukuran berbeda dan bandwidth yang bervariasi

    • File video MP4

    • Gambar thumbnail dikumpulkan secara berkala

    job.jsonFile contoh ini menggunakan Quality-Defined Variable Bitrate (QVBR) untuk mengoptimalkan kualitas video. Output HLS adalah Apple-compliant (audio yang tidak dicampur dari video, durasi segmen 6 detik, dan kualitas video yang dioptimalkan melalui QVBR otomatis).

    Jika Anda tidak ingin menggunakan pengaturan contoh yang disediakan di sini, Anda dapat membuat job.json spesifikasi berdasarkan kasus penggunaan Anda. Untuk memastikan konsistensi di seluruh output Anda, pastikan bahwa file input Anda memiliki konfigurasi video dan audio yang serupa. Untuk file input apa pun dengan konfigurasi video dan audio yang berbeda, buat otomatisasi terpisah (job.jsonpengaturan unik). Untuk informasi selengkapnya, lihat Contoh pengaturan AWS Elemental MediaConvert pekerjaan di JSON di Panduan AWS Elemental MediaConvert Pengguna.

    { "OutputGroups": [ { "CustomName": "HLS", "Name": "Apple HLS", "Outputs": [ { "ContainerSettings": { "Container": "M3U8", "M3u8Settings": { "AudioFramesPerPes": 4, "PcrControl": "PCR_EVERY_PES_PACKET", "PmtPid": 480, "PrivateMetadataPid": 503, "ProgramNumber": 1, "PatInterval": 0, "PmtInterval": 0, "TimedMetadata": "NONE", "VideoPid": 481, "AudioPids": [ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492 ] } }, "VideoDescription": { "Width": 640, "ScalingBehavior": "DEFAULT", "Height": 360, "TimecodeInsertion": "DISABLED", "AntiAlias": "ENABLED", "Sharpness": 50, "CodecSettings": { "Codec": "H_264", "H264Settings": { "InterlaceMode": "PROGRESSIVE", "NumberReferenceFrames": 3, "Syntax": "DEFAULT", "Softness": 0, "GopClosedCadence": 1, "GopSize": 2, "Slices": 1, "GopBReference": "DISABLED", "MaxBitrate": 1200000, "SlowPal": "DISABLED", "SpatialAdaptiveQuantization": "ENABLED", "TemporalAdaptiveQuantization": "ENABLED", "FlickerAdaptiveQuantization": "DISABLED", "EntropyEncoding": "CABAC", "FramerateControl": "INITIALIZE_FROM_SOURCE", "RateControlMode": "QVBR", "CodecProfile": "MAIN", "Telecine": "NONE", "MinIInterval": 0, "AdaptiveQuantization": "HIGH", "CodecLevel": "AUTO", "FieldEncoding": "PAFF", "SceneChangeDetect": "TRANSITION_DETECTION", "QualityTuningLevel": "SINGLE_PASS_HQ", "FramerateConversionAlgorithm": "DUPLICATE_DROP", "UnregisteredSeiTimecode": "DISABLED", "GopSizeUnits": "SECONDS", "ParControl": "INITIALIZE_FROM_SOURCE", "NumberBFramesBetweenReferenceFrames": 2, "RepeatPps": "DISABLED" } }, "AfdSignaling": "NONE", "DropFrameTimecode": "ENABLED", "RespondToAfd": "NONE", "ColorMetadata": "INSERT" }, "OutputSettings": { "HlsSettings": { "AudioGroupId": "program_audio", "AudioRenditionSets": "program_audio", "SegmentModifier": "$dt$", "IFrameOnlyManifest": "EXCLUDE" } }, "NameModifier": "_360" }, { "ContainerSettings": { "Container": "M3U8", "M3u8Settings": { "AudioFramesPerPes": 4, "PcrControl": "PCR_EVERY_PES_PACKET", "PmtPid": 480, "PrivateMetadataPid": 503, "ProgramNumber": 1, "PatInterval": 0, "PmtInterval": 0, "TimedMetadata": "NONE", "TimedMetadataPid": 502, "VideoPid": 481, "AudioPids": [ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492 ] } }, "VideoDescription": { "Width": 960, "ScalingBehavior": "DEFAULT", "Height": 540, "TimecodeInsertion": "DISABLED", "AntiAlias": "ENABLED", "Sharpness": 50, "CodecSettings": { "Codec": "H_264", "H264Settings": { "InterlaceMode": "PROGRESSIVE", "NumberReferenceFrames": 3, "Syntax": "DEFAULT", "Softness": 0, "GopClosedCadence": 1, "GopSize": 2, "Slices": 1, "GopBReference": "DISABLED", "MaxBitrate": 3500000, "SlowPal": "DISABLED", "SpatialAdaptiveQuantization": "ENABLED", "TemporalAdaptiveQuantization": "ENABLED", "FlickerAdaptiveQuantization": "DISABLED", "EntropyEncoding": "CABAC", "FramerateControl": "INITIALIZE_FROM_SOURCE", "RateControlMode": "QVBR", "CodecProfile": "MAIN", "Telecine": "NONE", "MinIInterval": 0, "AdaptiveQuantization": "HIGH", "CodecLevel": "AUTO", "FieldEncoding": "PAFF", "SceneChangeDetect": "TRANSITION_DETECTION", "QualityTuningLevel": "SINGLE_PASS_HQ", "FramerateConversionAlgorithm": "DUPLICATE_DROP", "UnregisteredSeiTimecode": "DISABLED", "GopSizeUnits": "SECONDS", "ParControl": "INITIALIZE_FROM_SOURCE", "NumberBFramesBetweenReferenceFrames": 2, "RepeatPps": "DISABLED" } }, "AfdSignaling": "NONE", "DropFrameTimecode": "ENABLED", "RespondToAfd": "NONE", "ColorMetadata": "INSERT" }, "OutputSettings": { "HlsSettings": { "AudioGroupId": "program_audio", "AudioRenditionSets": "program_audio", "SegmentModifier": "$dt$", "IFrameOnlyManifest": "EXCLUDE" } }, "NameModifier": "_540" }, { "ContainerSettings": { "Container": "M3U8", "M3u8Settings": { "AudioFramesPerPes": 4, "PcrControl": "PCR_EVERY_PES_PACKET", "PmtPid": 480, "PrivateMetadataPid": 503, "ProgramNumber": 1, "PatInterval": 0, "PmtInterval": 0, "TimedMetadata": "NONE", "VideoPid": 481, "AudioPids": [ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492 ] } }, "VideoDescription": { "Width": 1280, "ScalingBehavior": "DEFAULT", "Height": 720, "TimecodeInsertion": "DISABLED", "AntiAlias": "ENABLED", "Sharpness": 50, "CodecSettings": { "Codec": "H_264", "H264Settings": { "InterlaceMode": "PROGRESSIVE", "NumberReferenceFrames": 3, "Syntax": "DEFAULT", "Softness": 0, "GopClosedCadence": 1, "GopSize": 2, "Slices": 1, "GopBReference": "DISABLED", "MaxBitrate": 5000000, "SlowPal": "DISABLED", "SpatialAdaptiveQuantization": "ENABLED", "TemporalAdaptiveQuantization": "ENABLED", "FlickerAdaptiveQuantization": "DISABLED", "EntropyEncoding": "CABAC", "FramerateControl": "INITIALIZE_FROM_SOURCE", "RateControlMode": "QVBR", "CodecProfile": "MAIN", "Telecine": "NONE", "MinIInterval": 0, "AdaptiveQuantization": "HIGH", "CodecLevel": "AUTO", "FieldEncoding": "PAFF", "SceneChangeDetect": "TRANSITION_DETECTION", "QualityTuningLevel": "SINGLE_PASS_HQ", "FramerateConversionAlgorithm": "DUPLICATE_DROP", "UnregisteredSeiTimecode": "DISABLED", "GopSizeUnits": "SECONDS", "ParControl": "INITIALIZE_FROM_SOURCE", "NumberBFramesBetweenReferenceFrames": 2, "RepeatPps": "DISABLED" } }, "AfdSignaling": "NONE", "DropFrameTimecode": "ENABLED", "RespondToAfd": "NONE", "ColorMetadata": "INSERT" }, "OutputSettings": { "HlsSettings": { "AudioGroupId": "program_audio", "AudioRenditionSets": "program_audio", "SegmentModifier": "$dt$", "IFrameOnlyManifest": "EXCLUDE" } }, "NameModifier": "_720" }, { "ContainerSettings": { "Container": "M3U8", "M3u8Settings": {} }, "AudioDescriptions": [ { "AudioSourceName": "Audio Selector 1", "CodecSettings": { "Codec": "AAC", "AacSettings": { "Bitrate": 96000, "CodingMode": "CODING_MODE_2_0", "SampleRate": 48000 } } } ], "OutputSettings": { "HlsSettings": { "AudioGroupId": "program_audio", "AudioTrackType": "ALTERNATE_AUDIO_AUTO_SELECT_DEFAULT" } }, "NameModifier": "_audio" } ], "OutputGroupSettings": { "Type": "HLS_GROUP_SETTINGS", "HlsGroupSettings": { "ManifestDurationFormat": "INTEGER", "SegmentLength": 6, "TimedMetadataId3Period": 10, "CaptionLanguageSetting": "OMIT", "Destination": "s3://EXAMPLE-BUCKET/HLS/", "DestinationSettings": { "S3Settings": { "AccessControl": { "CannedAcl": "PUBLIC_READ" } } }, "TimedMetadataId3Frame": "PRIV", "CodecSpecification": "RFC_4281", "OutputSelection": "MANIFESTS_AND_SEGMENTS", "ProgramDateTimePeriod": 600, "MinSegmentLength": 0, "DirectoryStructure": "SINGLE_DIRECTORY", "ProgramDateTime": "EXCLUDE", "SegmentControl": "SEGMENTED_FILES", "ManifestCompression": "NONE", "ClientCache": "ENABLED", "StreamInfResolution": "INCLUDE" } } }, { "CustomName": "MP4", "Name": "File Group", "Outputs": [ { "ContainerSettings": { "Container": "MP4", "Mp4Settings": { "CslgAtom": "INCLUDE", "FreeSpaceBox": "EXCLUDE", "MoovPlacement": "PROGRESSIVE_DOWNLOAD" } }, "VideoDescription": { "Width": 1280, "ScalingBehavior": "DEFAULT", "Height": 720, "TimecodeInsertion": "DISABLED", "AntiAlias": "ENABLED", "Sharpness": 100, "CodecSettings": { "Codec": "H_264", "H264Settings": { "InterlaceMode": "PROGRESSIVE", "ParNumerator": 1, "NumberReferenceFrames": 3, "Syntax": "DEFAULT", "Softness": 0, "GopClosedCadence": 1, "HrdBufferInitialFillPercentage": 90, "GopSize": 2, "Slices": 2, "GopBReference": "ENABLED", "HrdBufferSize": 10000000, "MaxBitrate": 5000000, "ParDenominator": 1, "EntropyEncoding": "CABAC", "RateControlMode": "QVBR", "CodecProfile": "HIGH", "MinIInterval": 0, "AdaptiveQuantization": "AUTO", "CodecLevel": "AUTO", "FieldEncoding": "PAFF", "SceneChangeDetect": "ENABLED", "QualityTuningLevel": "SINGLE_PASS_HQ", "UnregisteredSeiTimecode": "DISABLED", "GopSizeUnits": "SECONDS", "ParControl": "SPECIFIED", "NumberBFramesBetweenReferenceFrames": 3, "RepeatPps": "DISABLED", "DynamicSubGop": "ADAPTIVE" } }, "AfdSignaling": "NONE", "DropFrameTimecode": "ENABLED", "RespondToAfd": "NONE", "ColorMetadata": "INSERT" }, "AudioDescriptions": [ { "AudioTypeControl": "FOLLOW_INPUT", "AudioSourceName": "Audio Selector 1", "CodecSettings": { "Codec": "AAC", "AacSettings": { "AudioDescriptionBroadcasterMix": "NORMAL", "Bitrate": 160000, "RateControlMode": "CBR", "CodecProfile": "LC", "CodingMode": "CODING_MODE_2_0", "RawFormat": "NONE", "SampleRate": 48000, "Specification": "MPEG4" } }, "LanguageCodeControl": "FOLLOW_INPUT", "AudioType": 0 } ] } ], "OutputGroupSettings": { "Type": "FILE_GROUP_SETTINGS", "FileGroupSettings": { "Destination": "s3://EXAMPLE-BUCKET/MP4/", "DestinationSettings": { "S3Settings": { "AccessControl": { "CannedAcl": "PUBLIC_READ" } } } } } }, { "CustomName": "Thumbnails", "Name": "File Group", "Outputs": [ { "ContainerSettings": { "Container": "RAW" }, "VideoDescription": { "Width": 1280, "ScalingBehavior": "DEFAULT", "Height": 720, "TimecodeInsertion": "DISABLED", "AntiAlias": "ENABLED", "Sharpness": 50, "CodecSettings": { "Codec": "FRAME_CAPTURE", "FrameCaptureSettings": { "FramerateNumerator": 1, "FramerateDenominator": 5, "MaxCaptures": 500, "Quality": 80 } }, "AfdSignaling": "NONE", "DropFrameTimecode": "ENABLED", "RespondToAfd": "NONE", "ColorMetadata": "INSERT" } } ], "OutputGroupSettings": { "Type": "FILE_GROUP_SETTINGS", "FileGroupSettings": { "Destination": "s3://EXAMPLE-BUCKET/Thumbnails/", "DestinationSettings": { "S3Settings": { "AccessControl": { "CannedAcl": "PUBLIC_READ" } } } } } } ], "AdAvailOffset": 0, "Inputs": [ { "AudioSelectors": { "Audio Selector 1": { "Offset": 0, "DefaultSelection": "DEFAULT", "ProgramSelection": 1 } }, "VideoSelector": { "ColorSpace": "FOLLOW" }, "FilterEnable": "AUTO", "PsiControl": "USE_PSI", "FilterStrength": 0, "DeblockFilter": "DISABLED", "DenoiseFilter": "DISABLED", "TimecodeSource": "EMBEDDED", "FileInput": "s3://EXAMPLE-INPUT-BUCKET/input.mp4" } ] }
  3. Di batch-transcode folder, buat file dengan fungsi Lambda. Anda dapat menggunakan contoh Python berikut dan memberi nama fileconvert.py.

    S3 Batch Operations mengirimkan data tugas tertentu ke fungsi Lambda dan memerlukan data hasil kembali. Untuk contoh permintaan dan respons untuk fungsi Lambda, informasi tentang respons dan kode hasil, dan contoh fungsi Lambda untuk Operasi Batch S3, lihat. Panggil AWS Lambda Fungsi

    import json import os from urllib.parse import urlparse import uuid import boto3 """ When you run an S3 Batch Operations job, your job invokes this Lambda function. Specifically, the Lambda function is invoked on each video object listed in the manifest that you specify for the S3 Batch Operations job in Step 5. Input parameter "event": The S3 Batch Operations event as a request for the Lambda function. Input parameter "context": Context about the event. Output: A result structure that Amazon S3 uses to interpret the result of the operation. It is a job response returned back to S3 Batch Operations. """ def handler(event, context): invocation_schema_version = event['invocationSchemaVersion'] invocation_id = event['invocationId'] task_id = event['tasks'][0]['taskId'] source_s3_key = event['tasks'][0]['s3Key'] source_s3_bucket = event['tasks'][0]['s3BucketArn'].split(':::')[-1] source_s3 = 's3://' + source_s3_bucket + '/' + source_s3_key result_list = [] result_code = 'Succeeded' result_string = 'The input video object was converted successfully.' # The type of output group determines which media players can play # the files transcoded by MediaConvert. # For more information, see Creating outputs with AWS Elemental MediaConvert. output_group_type_dict = { 'HLS_GROUP_SETTINGS': 'HlsGroupSettings', 'FILE_GROUP_SETTINGS': 'FileGroupSettings', 'CMAF_GROUP_SETTINGS': 'CmafGroupSettings', 'DASH_ISO_GROUP_SETTINGS': 'DashIsoGroupSettings', 'MS_SMOOTH_GROUP_SETTINGS': 'MsSmoothGroupSettings' } try: job_name = 'Default' with open('job.json') as file: job_settings = json.load(file) job_settings['Inputs'][0]['FileInput'] = source_s3 # The path of each output video is constructed based on the values of # the attributes in each object of OutputGroups in the job.json file. destination_s3 = 's3://{0}/{1}/{2}' \ .format(os.environ['amzn-s3-demo-destination-bucket'], os.path.splitext(os.path.basename(source_s3_key))[0], os.path.splitext(os.path.basename(job_name))[0]) for output_group in job_settings['OutputGroups']: output_group_type = output_group['OutputGroupSettings']['Type'] if output_group_type in output_group_type_dict.keys(): output_group_type = output_group_type_dict[output_group_type] output_group['OutputGroupSettings'][output_group_type]['Destination'] = \ "{0}{1}".format(destination_s3, urlparse(output_group['OutputGroupSettings'][output_group_type]['Destination']).path) else: raise ValueError("Exception: Unknown Output Group Type {}." .format(output_group_type)) job_metadata_dict = { 'assetID': str(uuid.uuid4()), 'application': os.environ['Application'], 'input': source_s3, 'settings': job_name } region = os.environ['AWS_DEFAULT_REGION'] endpoints = boto3.client('mediaconvert', region_name=region) \ .describe_endpoints() client = boto3.client('mediaconvert', region_name=region, endpoint_url=endpoints['Endpoints'][0]['Url'], verify=False) try: client.create_job(Role=os.environ['MediaConvertRole'], UserMetadata=job_metadata_dict, Settings=job_settings) # You can customize error handling based on different error codes that # MediaConvert can return. # For more information, see MediaConvert error codes. # When the result_code is TemporaryFailure, S3 Batch Operations retries # the task before the job is completed. If this is the final retry, # the error message is included in the final report. except Exception as error: result_code = 'TemporaryFailure' raise except Exception as error: if result_code != 'TemporaryFailure': result_code = 'PermanentFailure' result_string = str(error) finally: result_list.append({ 'taskId': task_id, 'resultCode': result_code, 'resultString': result_string, }) return { 'invocationSchemaVersion': invocation_schema_version, 'treatMissingKeyAs': 'PermanentFailure', 'invocationId': invocation_id, 'results': result_list }
  4. Untuk membuat paket penerapan dengan convert.py dan job.json sebagai .zip file bernamalambda.zip, di terminal lokal Anda, buka batch-transcode folder yang Anda buat sebelumnya, dan jalankan perintah berikut.

    Untuk pengguna macOS, jalankan perintah berikut:

    zip -r lambda.zip convert.py job.json

    Untuk pengguna Windows, jalankan perintah berikut:

    powershell Compress-Archive convert.py lambda.zip
    powershell Compress-Archive -update job.json lambda.zip

Buat fungsi Lambda dengan peran eksekusi (konsol)

  1. Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/.

  2. Di panel navigasi kiri, pilih Fungsi.

  3. Pilih Buat fungsi.

  4. Pilih Penulis dari scratch.

  5. Di bagian Informasi dasar, lakukan hal berikut:

    1. Untuk Nama fungsi, masukkan tutorial-lambda-convert.

    2. Untuk Runtime, pilih Python 3.13.

  6. Pilih Ubah peran eksekusi default, dan di bawah Peran eksekusi, pilih Gunakan peran yang ada.

  7. Di bawah Peran yang ada, pilih nama peran IAM yang Anda buat untuk fungsi Lambda Anda di Langkah 3 (misalnya,tutorial-lambda-transcode-role).

  8. Untuk pengaturan yang tersisa, pertahankan default.

  9. Pilih Buat fungsi.

Terapkan fungsi Lambda Anda dengan arsip file.zip dan konfigurasikan fungsi Lambda (konsol)

  1. Di bagian Sumber Kode halaman untuk fungsi Lambda yang Anda buat (misalnya,tutorial-lambda-convert), pilih Unggah dari dan kemudian fil e.zip.

  2. Pilih Unggah untuk memilih .zip file lokal Anda.

  3. Pilih lambda.zip file yang Anda buat sebelumnya, dan pilih Buka.

  4. Pilih Simpan.

  5. Di bagian pengaturan Runtime, pilih Edit.

  6. Untuk memberi tahu runtime Lambda metode handler mana dalam kode fungsi Lambda yang akan dipanggil, masukkan convert.handler di bidang Handler.

    Saat Anda mengkonfigurasi fungsi di Python, nilai pengaturan handler adalah nama file dan nama modul handler, dipisahkan oleh titik (.). Misalnya, convert.handler memanggil handler metode yang ditentukan dalam convert.py file.

  7. Pilih Simpan.

  8. Pada halaman fungsi Lambda Anda, pilih tab Konfigurasi. Di panel navigasi kiri pada tab Konfigurasi, pilih Vari abel lingkungan, lalu pilih Edit.

  9. Pilih Tambahkan variabel lingkungan. Kemudian, masukkan K unci dan Nilai yang ditentukan untuk masing-masing variabel lingkungan berikut:

    • Kunci: DestinationBucket Nilai: amzn-s3-demo-destination-bucket1

      Nilai ini adalah bucket S3 untuk file media keluaran yang Anda buat di Langkah 1.

    • Kunci: MediaConvertRole Nilai: arn:aws:iam::111122223333:role/tutorial-mediaconvert-role

      Nilai ini adalah ARN dari peran IAM MediaConvert yang Anda buat di Langkah 2. Pastikan untuk mengganti ARN ini dengan ARN sebenarnya dari peran IAM Anda.

    • Kunci: Application Nilai: Batch-Transcoding

      Nilai ini adalah nama aplikasi.

  10. Pilih Simpan.

  11. (Opsional) Pada tab Konfigurasi, di bagian Konfigurasi umum pada panel navigasi kiri, pilih Edit. Di bidang T imeout, masukkan 2 min 0 sec. Lalu, pilih Simpan.

    Batas waktu adalah jumlah waktu yang Lambda memungkinkan fungsi dijalankan untuk pemanggilan sebelum menghentikannya. Default-nya adalah 3 detik. Harga didasarkan pada jumlah memori yang dikonfigurasi dan jumlah waktu yang digunakan selama kode Anda berjalan. Untuk informasi selengkapnya, lihat harga AWS Lambda.

Langkah 5: Konfigurasikan Amazon S3 Inventory untuk bucket sumber S3 Anda

Setelah menyiapkan fungsi transcoding Lambda, buat pekerjaan Operasi Batch S3 untuk mentranskode satu set video. Pertama, Anda memerlukan daftar objek video input yang Anda inginkan S3 Batch Operations untuk menjalankan tindakan transcoding yang ditentukan. Untuk mendapatkan daftar objek video input, Anda dapat membuat laporan Inventory S3 untuk bucket sumber S3 Anda (misalnya,amzn-s3-demo-source-bucket).

Membuat dan mengonfigurasi bucket untuk laporan Inventory S3 untuk video input

Untuk menyimpan laporan Inventory S3 yang mencantumkan objek bucket sumber S3, buat bucket tujuan Inventory S3, lalu konfigurasikan kebijakan bucket untuk bucket untuk menulis file inventaris ke bucket sumber S3.

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Bucket.

  3. Pilih Buat bucket.

  4. Untuk nama Bucket, masukkan nama untuk bucket Anda (misalnya,amzn-s3-demo-destination-bucket2).

  5. Untuk Wilayah AWS, pilih Wilayah AWS tempat Anda ingin ember berada.

    Bucket tujuan inventaris harus Wilayah AWS sama dengan bucket sumber tempat Anda menyiapkan S3 Inventory. Bucket tujuan inventaris bisa berbeda Akun AWS.

  6. Dalam pengaturan Blokir Akses Publik untuk bucket ini, pertahankan pengaturan default (Blok ir semua akses publik diaktifkan).

  7. Untuk pengaturan yang tersisa, pertahankan default.

  8. Pilih Buat bucket.

  9. Dalam daftar Bucket, pilih nama bucket yang baru saja Anda buat (misalnya,amzn-s3-demo-destination-bucket2).

  10. Untuk memberikan izin kepada Amazon S3 untuk menulis data laporan inventaris ke bucket tujuan Inventory S3, pilih tab Izin.

  11. Gulir ke bawah ke bagian kebijakan Bucket, dan pilih Edit. Halaman kebijakan Bucket terbuka.

  12. Untuk memberikan izin untuk Inventaris S3, di bidang Kebijakan, tempelkan kebijakan bucket berikut.

    Ganti tiga nilai contoh dengan nilai-nilai berikut:

    • Nama bucket yang Anda buat untuk menyimpan laporan inventaris (misalnya,amzn-s3-demo-destination-bucket2).

    • Nama bucket sumber yang menyimpan video input (misalnya,amzn-s3-demo-source-bucket).

    • Akun AWS ID yang Anda gunakan untuk membuat bucket sumber video S3 (misalnya,111122223333.

    JSON
    { "Version":"2012-10-17", "Statement":[ { "Sid":"InventoryAndAnalyticsExamplePolicy", "Effect":"Allow", "Principal": {"Service": "s3.amazonaws.com"}, "Action":"s3:PutObject", "Resource":["arn:aws:s3:::amzn-s3-demo-destination-bucket2/*"], "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket" }, "StringEquals": { "aws:SourceAccount": "111122223333", "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }
  13. Pilih Simpan perubahan.

Konfigurasikan Amazon S3 Inventory untuk bucket sumber video S3 Anda

Untuk membuat daftar file datar objek video dan metadata, Anda harus mengonfigurasi S3 Inventory untuk bucket sumber video S3 Anda. Laporan inventaris terjadwal ini dapat mencakup semua objek dalam bucket atau objek yang dikelompokkan berdasarkan awalan bersama. Dalam tutorial ini, laporan Inventory S3 menyertakan semua objek video di bucket sumber S3 Anda.

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Bucket.

  3. Untuk mengonfigurasi laporan Inventory S3 dari video input di bucket sumber S3 Anda, dalam daftar Bucket, pilih nama bucket sumber S3 (misalnya,amzn-s3-demo-source-bucket).

  4. Pilih tab Manajemen.

  5. Gulir ke bawah ke bagian Konfigurasi inventaris, dan pilih Buat konfigurasi inventaris.

  6. Untuk Nama konfigurasi Inventaris, masukkan nama (misalnya,tutorial-inventory-config).

  7. Di bawah Cakupan inventaris, pilih Versi saat ini hanya untuk versi Objek dan simpan pengaturan lingkup Inventaris lainnya diatur ke default untuk tutorial ini.

  8. Di bagian Detail laporan, untuk Bucket tujuan, pilih Akun ini.

  9. Untuk Tujuan, pilih Jelaj ahi S3, dan pilih bucket tujuan yang Anda buat sebelumnya untuk menyimpan laporan inventaris ke (misalnya,amzn-s3-demo-destination-bucket2). Kemudian, pilih Pilih jalur.

    Bucket tujuan inventaris harus Wilayah AWS sama dengan bucket sumber tempat Anda menyiapkan S3 Inventory. Bucket tujuan inventaris bisa berbeda Akun AWS.

    Di bawah bidang Bucket tujuan, izin bucket tujuan ditambahkan ke kebijakan bucket tujuan inventaris, memungkinkan Amazon S3 menempatkan data di bucket tujuan inventaris. Untuk informasi selengkapnya, lihat Membuat kebijakan bucket tujuan.

  10. Untuk Frekuensi, pilih Har ian.

  11. Untuk Format output, pilih CSV.

  12. Untuk Status, pilih Aktifkan.

  13. Di bagian Server-side enkripsi, pilih N onaktifkan untuk tutorial ini.

    Untuk informasi selengkapnya, lihat Mengonfigurasi inventaris dengan menggunakan konsol S3 dan Memberikan izin kepada Amazon S3 untuk menggunakan CMK untuk enkripsi.

  14. Di bidang Tambahan - bagian opsional, pilih Ukuran, Ter akhir dimodifikasi, dan Kel as Penyimpanan.

  15. Pilih Buat.

Untuk informasi selengkapnya, lihat Mengonfigurasi inventaris dengan menggunakan konsol S3.

Periksa laporan inventaris untuk bucket sumber video S3 Anda

Saat laporan inventaris diterbitkan, file manifes dikirim ke bucket tujuan Inventory S3.

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Bucket.

  3. Dalam daftar Bucket, pilih nama bucket sumber video (misalnya,amzn-s3-demo-source-bucket).

  4. Pilih Manajemen.

  5. Untuk melihat apakah laporan Inventory S3 Anda siap sehingga Anda dapat membuat pekerjaan Operasi Batch S3 di Langkah 7, di bawah Konfigurasi inventaris, periksa apakah tombol Buat pekerjaan dari manifes diaktifkan.

    catatan

    Diperlukan waktu hingga 48 jam untuk mengirimkan laporan inventaris pertama. Jika tombol Buat pekerjaan dari manifes dinonaktifkan, laporan inventaris pertama belum dikirimkan. Tunggu hingga laporan inventaris pertama dikirimkan dan tombol Buat pekerjaan dari manifes diaktifkan sebelum Anda membuat pekerjaan Operasi Batch S3 di Langkah 7.

  6. Untuk memeriksa laporan Inventaris S3 (manifest.json), di kolom Tujuan, pilih nama bucket tujuan inventaris yang Anda buat sebelumnya untuk menyimpan laporan inventaris (misalnya,amzn-s3-demo-destination-bucket2).

  7. Pada tab Objects, pilih folder yang ada dengan nama bucket sumber S3 Anda (misalnya,amzn-s3-demo-source-bucket). Kemudian pilih nama yang Anda masukkan di Nama konfigurasi Inventaris saat Anda membuat konfigurasi inventaris sebelumnya (misalnya,tutorial-inventory-config).

    Anda dapat melihat daftar folder dengan tanggal pembuatan laporan sebagai namanya.

  8. Untuk memeriksa laporan Inventaris S3 harian untuk tanggal tertentu, pilih folder dengan nama tanggal pembuatan yang sesuai, lalu pilihmanifest.json.

  9. Untuk memeriksa detail laporan inventaris pada tanggal tertentu, pada halaman manifest.json, pilih Unduh atau Buka.

Langkah 6: Buat peran IAM untuk Operasi Batch S3

Untuk menggunakan Operasi Batch S3 untuk melakukan transcoding batch, Anda harus terlebih dahulu membuat peran IAM untuk memberikan izin Amazon S3 untuk melakukan Operasi Batch S3.

Membuat kebijakan IAM untuk Operasi Batch S3

Anda harus membuat kebijakan IAM yang memberikan izin Operasi Batch S3 untuk membaca manifes input, memanggil fungsi Lambda, dan menulis laporan penyelesaian tugas Operasi Batch S3.

  1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi di sebelah kiri, pilih Kebijakan.

  3. Pilih Buat kebijakan.

  4. Pilih tab JSON.

  5. Di bidang teks JSON, tempel kebijakan JSON berikut.

    Dalam kebijakan JSON, ganti empat nilai contoh dengan nilai berikut:

    • Nama bucket sumber yang menyimpan video masukan Anda (misalnya,amzn-s3-demo-source-bucket).

    • Nama bucket tujuan inventaris yang Anda buat di Langkah 5 untuk menyimpan manifest.json file (misalnya,amzn-s3-demo-destination-bucket2).

    • Nama bucket yang Anda buat di Langkah 1 untuk menyimpan file media keluaran (misalnya,amzn-s3-demo-destination-bucket1). Dalam tutorial ini, kami menempatkan laporan penyelesaian pekerjaan di bucket tujuan untuk file media keluaran.

    • Peran ARN dari fungsi Lambda yang Anda buat di Langkah 4. Untuk menemukan dan menyalin peran ARN fungsi Lambda, lakukan hal berikut:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "S3Get", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-source-bucket/*", "arn:aws:s3:::amzn-s3-demo-destination-bucket2/*" ] }, { "Sid": "S3PutJobCompletionReport", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket1/*" }, { "Sid": "S3BatchOperationsInvokeLambda", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-west-2:111122223333:function:tutorial-lambda-convert" ] } ] }
  6. Pilih Berikutnya: Tanda.

  7. Pilih Berikutnya: Tinjau.

  8. Di bidang Nama, masukkan tutorial-s3batch-policy.

  9. Pilih Buat kebijakan.

Membuat peran IAM Operasi Batch S3 dan melampirkan kebijakan izin

  1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi kiri, pilih Per an, lalu pilih Buat peran.

  3. Pilih jenis Layanan AWS peran, lalu pilih layanan S3.

  4. Di bawah Pilih kasus penggunaan Anda, pilih Operasi Batch S3.

  5. Pilih Berikutnya.

  6. Di bawah Lamp irkan izin, masukkan nama kebijakan IAM yang Anda buat sebelumnya (misalnya,tutorial-s3batch-policy) di kotak pencarian untuk memfilter daftar kebijakan. Pilih kotak centang di sebelah nama kebijakan (misalnya,tutorial-s3batch-policy).

  7. Pilih Berikutnya.

  8. Untuk Nama peran, masukkan tutorial-s3batch-role.

  9. Pilih Buat peran.

    Setelah Anda membuat peran IAM untuk Operasi Batch S3, kebijakan kepercayaan berikut secara otomatis dilampirkan ke peran tersebut. Kebijakan kepercayaan ini memungkinkan prinsipal layanan Operasi Batch S3 untuk mengambil peran IAM.

    JSON
    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }

Langkah 7: Membuat dan menjalankan tugas Operasi Batch S3

Untuk membuat tugas Operasi Batch S3 untuk memproses video input di bucket sumber S3 Anda, Anda harus menentukan parameter untuk pekerjaan khusus ini.

catatan

Sebelum Anda mulai membuat pekerjaan Operasi Batch S3, pastikan tombol Buat pekerjaan dari manifes diaktifkan. Untuk informasi selengkapnya, lihat Periksa laporan inventaris untuk bucket sumber video S3 Anda. Jika tombol Buat pekerjaan dari manifes dinonaktifkan, laporan inventaris pertama belum dikirimkan dan Anda harus menunggu hingga tombol diaktifkan. Setelah Anda mengonfigurasi Amazon S3 Inventory untuk bucket sumber S3 Anda di Langkah 5, dapat memakan waktu hingga 48 jam untuk mengirimkan laporan inventaris pertama.

Membuat tugas Operasi Batch S3

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Operasi Batch.

  3. Pilih Buat tugas.

  4. Untuk Wilayah AWS, pilih Wilayah tempat Anda ingin membuat tugas Anda.

    Dalam tutorial ini, untuk menggunakan tugas Operasi Batch S3 untuk menginvokasi fungsi Lambda, Anda harus membuat tugas di Wilayah yang sama dengan bucket sumber video S3 tempat objek yang direferensikan dalam manifes tersebut berada.

  5. Di bagian Manifes, lakukan hal berikut ini:

    1. Untuk Format manifes, pilih Laporan Inventaris S3 (manifest.json).

    2. Untuk Objek manifes, pilih Telusuri S3 untuk menemukan bucket yang Anda buat di Langkah 5 untuk menyimpan laporan inventaris (misalnya, amzn-s3-demo-destination-bucket2). Pada halaman Objek manifes, navigasikan nama objek hingga Anda menemukan file manifest.json untuk tanggal tertentu. File ini mencantumkan informasi tentang semua video yang transkode batch-nya ingin Anda lakukan. Ketika Anda telah menemukan file manifest.json yang ingin Anda gunakan, pilih tombol opsi di sebelahnya. Kemudian, pilih Pilih jalur.

    3. (Opsional) Untuk ID versi objek manifes-opsional, masukkan ID versi untuk objek manifes jika Anda ingin menggunakan versi selain yang terbaru.

  6. Pilih Berikutnya.

  7. Untuk menggunakan fungsi Lambda untuk mentranskode semua objek yang terdaftar dalam file manifest.json yang dipilih, di bawah Jenis operasi, pilih Menginvokasi fungsi AWS Lambda .

  8. Di bagian Menginvokasi fungsi Lambda, lakukan hal berikut ini:

    1. Pilih Pilih dari fungsi di akun Anda.

    2. Untuk Fungsi Lambda, pilih nama fungsi Lambda yang telah Anda buat di Langkah 4 (misalnya, tutorial-lambda-convert).

    3. Untuk Versi fungsi Lambda, pertahankan nilai default $LATEST.

  9. Pilih Berikutnya. Halaman Konfigurasi opsi tambahan terbuka.

  10. Di bagian Opsi tambahan, pertahankan pengaturan default.

    Untuk informasi selengkapnya tentang opsi ini, lihat Elemen permintaan pekerjaan Operasi Batch.

  11. Di bagian Laporan penyelesaian, untuk Jalur ke tujuan laporan penyelesaian, pilih Telusuri S3. Temukan bucket yang telah Anda buat untuk file media output di Langkah 1 (misalnya, amzn-s3-demo-destination-bucket1). Pilih tombol opsi di sebelah nama bucket tersebut. Kemudian, pilih Pilih jalur.

    Untuk pengaturan Laporan penyelesaian yang tersisa, pertahankan defaultnya. Untuk informasi selengkapnya tentang pengaturan laporan penyelesaian, lihat Elemen permintaan pekerjaan Operasi Batch. Laporan penyelesaian menyimpan catatan detail tugas dan operasi yang dilakukan.

  12. Di bagian Izin, pilih Pilih dari peran IAM yang ada. Untuk Peran IAM, pilih peran IAM untuk tugas Operasi Batch S3 yang Anda buat di Langkah 6 (misalnya, tutorial-s3batch-role).

  13. Pilih Berikutnya.

  14. Pada halaman Ulasan, tinjau pengaturannya. Lalu, pilih Buat tugas.

    Setelah S3 selesai membaca manifes tugas Operasi Batch S3 Anda, itu akan menetapkan Status tugas menjadi Menunggu konfirmasi Anda untuk menjalankan. Untuk melihat pembaruan status tugas, segarkan halaman. Anda tidak dapat menjalankan tugas Anda sampai statusnya Menunggu konfirmasi Anda untuk menjalankan.

Jalankan tugas Operasi Batch S3 untuk menginvokasi fungsi Lambda Anda

Jalankan tugas Operasi Batch Anda untuk menginvokasi fungsi Lambda untuk transkode video. Jika tugas Anda gagal, Anda dapat memeriksa laporan penyelesaian Anda untuk mengidentifikasi penyebabnya.

Untuk menjalankan tugas Operasi Batch S3
  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Operasi Batch.

  3. Dalam daftar Tugas, pilih ID tugas di baris pertama, yang merupakan tugas Operasi Batch S3 yang telah Anda buat sebelumnya.

  4. Pilih Jalankan tugas.

  5. Tinjau kembali parameter tugas Anda, dan konfirmasikan bahwa nilai untuk Total objek yang tercantum dalam temuan sama dengan jumlah objek dalam manifes tersebut. Lalu, pilih Jalankan tugas.

    Halaman tugas Operasi Batch S3 Anda terbuka.

  6. Setelah tugas mulai berjalan, pada halaman tugas Anda, di bawah Status, periksa kemajuan tugas Operasi Batch S3 Anda, seperti Status, % Selesai, Total yang berhasil (laju), Total yang gagal (laju), Tanggal dihentikan, dan Alasan terminasi.

    Saat tugas Operasi Batch S3 selesai, lihat data di halaman tugas Anda untuk mengonfirmasi bahwa tugas selesai seperti yang diharapkan.

    Jika lebih dari 50 persen operasi objek tugas Operasi Batch S3 gagal setelah lebih dari 1.000 pengoperasian yang telah dicoba, tugas tersebut secara otomatis gagal. Untuk memeriksa laporan penyelesaian Anda guna mengidentifikasi penyebab kegagalan, gunakan prosedur opsional berikut ini.

(Opsional) Memeriksa laporan penyelesaian Anda

Anda dapat menggunakan laporan penyelesaian untuk menentukan objek mana yang gagal, serta penyebab kegagalannya.

Untuk memeriksa laporan penyelesaian Anda terkait detail mengenai objek yang gagal
  1. Pada halaman tugas Operasi Batch S3 Anda, gulir ke bawah ke bagian Laporan penyelesaian, dan pilih tautan di bawah Tujuan laporan penyelesaian.

    Halaman bucket tujuan output S3 terbuka.

  2. Pada tab Objek, pilih folder yang memiliki nama yang diakhiri dengan ID tugas Operasi Batch S3 yang telah Anda buat sebelumnya.

  3. Pilih hasil/.

  4. Centang kotak di samping file .csv.

  5. Untuk melihat laporan tugas, pilih Buka atau Unduh.

(Opsional) Memantau setiap invokasi Lambda di konsol Lambda

Setelah tugas Operasi Batch S3 mulai berjalan, tugas akan memanggil fungsi Lambda untuk setiap objek video input. S3 menulis log dari setiap pemanggilan Lambda ke CloudWatch Log. Anda dapat menggunakan dasbor pemantauan konsol Lambda untuk memantau fungsi Lambda Anda.

  1. Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/.

  2. Di panel navigasi kiri, pilih Fungsi.

  3. Dalam daftar Fungsi, pilih nama fungsi Lambda yang Anda buat di Langkah 4 (misalnya, tutorial-lambda-convert).

  4. Pilih tab Monitor.

  5. Di bawah Metrik, lihat metrik runtime untuk fungsi Lambda Anda.

  6. Di bawah Log, lihat data log untuk setiap pemanggilan Lambda melalui CloudWatch Logs Insights.

    catatan

    Saat Anda menggunakan Operasi Batch S3 dengan fungsi Lambda, fungsi Lambda dipanggil pada setiap objek. Jika tugas Operasi Batch S3 Anda berukuran besar, tugas ini dapat menginvokasi beberapa fungsi Lambda secara bersamaan, yang menyebabkan lonjakan konkurensi Lambda.

    Masing-masing Akun AWS memiliki kuota konkurensi Lambda per Wilayah. Untuk informasi selengkapnya, lihat AWS Lambda Penskalaan Fungsi dalam AWS Lambda Panduan Pengembang. Praktik terbaik untuk menggunakan fungsi Lambda dengan Operasi Batch S3 adalah dengan menetapkan batas konkurensi pada fungsi Lambda itu sendiri. Menetapkan batas konkurensi membuat tugas tidak menghabiskan sebagian besar konkurensi Lambda Anda, dan berpotensi throttling fungsi lain di akun Anda. Untuk informasi selengkapnya, lihat Mengelola konkurensi cadangan Lambda di AWS Lambda Panduan Pengembang.

(Opsional) Pantau setiap MediaConvert pekerjaan transcoding video di konsol MediaConvert

MediaConvert Pekerjaan melakukan pekerjaan transcoding file media. Saat pekerjaan Operasi Batch S3 memanggil fungsi Lambda untuk setiap video, setiap pemanggilan fungsi Lambda akan membuat pekerjaan MediaConvert transcoding untuk setiap video input.

  1. Masuk ke Konsol Manajemen AWS dan buka MediaConvert konsol di https://console.aws.amazon.com/mediaconvert/.

  2. Jika halaman peng MediaConvert antar muncul, pilih Memulai.

  3. Dari daftar Tugas, lihat setiap baris untuk memantau tugas transkode bagi setiap video input.

  4. Identifikasi baris tugas yang ingin Anda periksa, dan pilih tautan ID tugas untuk membuka halaman detail tugas.

  5. Pada halaman Ringkasan tugas, di bagian bawah Output, pilih tautan untuk output HLS, MP4, atau Thumbnail, tergantung pada apa yang didukung oleh browser Anda, untuk membuka bucket tujuan S3 untuk file media output.

  6. Di folder yang sesuai (HLS, MP4, atau Thumbnail) bucket tujuan output S3 Anda, pilih nama objek file media output.

    Halaman detail objek terbuka.

  7. Pada halaman detail objek, di bawah Ikhtisar objek, pilih tautan di bawah URL objek untuk menonton file media output yang telah ditranskode.

Langkah 8: Memeriksa file media output dari bucket tujuan S3 Anda

Untuk memeriksa file media output dari bucket tujuan S3 Anda
  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Bucket.

  3. Dalam daftar Bucket, pilih nama bucket tujuan S3 untuk file media output yang Anda buat di Langkah 1 (misalnya, amzn-s3-demo-destination-bucket1).

  4. Pada tab Objek, setiap video input memiliki folder yang memiliki nama video input. Setiap folder berisi file media output transkode untuk video input.

    Untuk memeriksa file media output untuk video input, lakukan hal berikut ini:

    1. Pilih folder dengan nama video input yang ingin Anda periksa.

    2. Pilih folder Default/.

    3. Pilih folder untuk format transkode (HLS, MP4, atau thumbnail dalam tutorial ini).

    4. Pilih nama file media output.

    5. Untuk melihat file yang ditranskode, pada halaman detail objek, pilih tautan di bawah URL Objek.

      File media output dalam format HLS dibagi menjadi segmen-segmen yang pendek. Untuk memutar video ini, sematkan URL objek file .m3u8 di pemutar yang kompatibel.

Langkah 9: Membersihkan

Jika Anda mentranskode video menggunakan S3 Batch Operations, Lambda, dan MediaConvert hanya sebagai latihan pembelajaran, hapus AWS sumber daya yang Anda alokasikan sehingga Anda tidak lagi mendapatkan biaya.

Hapus konfigurasi Inventaris S3 untuk bucket sumber S3 Anda

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Bucket.

  3. Dalam daftar Bucket, pilih nama bucket sumber Anda (misalnya, amzn-s3-demo-source-bucket).

  4. Pilih tab Manajemen.

  5. Di bagian Konfigurasi inventaris, pilih tombol opsi di sebelah konfigurasi inventaris yang Anda buat di Langkah 5 (misalnya, tutorial-inventory-config).

  6. Pilih Hapus, lalu pilih Konfirmasi.

Hapus fungsi Lambda

  1. Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/.

  2. Di panel navigasi kiri, pilih Fungsi.

  3. Centang kotak di samping fungsi yang Anda buat di Langkah 4 (misalnya, tutorial-lambda-convert).

  4. Pilih Tindakan, lalu pilih Hapus.

  5. Di kotak dialog Hapus fungsi, pilih Hapus.

Hapus grup CloudWatch log

  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Di panel navigasi sebelah kiri, pilih Log, lalu pilih Grup log.

  3. Pilih kotak centang di samping grup log yang memiliki nama yang diakhiri dengan fungsi Lambda yang Anda buat di Langkah 4 (misalnya, tutorial-lambda-convert).

  4. Pilih Tindakan, lalu pilih Hapus grup log.

  5. Di kotak dialog Hapus grup log, pilih Hapus.

Menghapus peran IAM bersama dengan kebijakan inline untuk peran IAM

Untuk menghapus peran IAM yang Anda buat di Langkah 2, Langkah 3, dan Langkah 6, lakukan hal berikut ini:

  1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi sebelah kiri, pilih Peran, lalu centang kotak di samping nama peran yang ingin Anda hapus.

  3. Pilih Hapus.

  4. Di dalam kotak dialog konfirmasi, masukkan respons yang diperlukan di dalam kolom input teks berdasarkan prompt, lalu pilih Hapus.

Hapus kebijakan IAM yang dikelola pelanggan

Untuk menghapus kebijakan IAM yang dikelola pelanggan yang Anda buat di Langkah 6, lakukan hal berikut ini:

  1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi di sebelah kiri, pilih Kebijakan.

  3. Pilih tombol opsi di samping kebijakan yang Anda buat di Langkah 6 (misalnya, tutorial-s3batch-policy). Anda dapat menggunakan kotak pencarian untuk memfilter daftar kebijakan.

  4. Pilih Tindakan, lalu pilih Hapus.

  5. Konfirmasi bahwa Anda ingin menghapus kebijakan ini dengan memasukkan namanya di kolom teks, lalu pilih Hapus.

Kosongkan bucket S3

Untuk mengosongkan bucket S3 yang Anda buat di Prasyarat, Langkah 1, dan Langkah 5, lakukan hal berikut ini:

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Bucket.

  3. Di daftar Bucket, pilih tombol opsi di samping nama bucket yang ingin Anda kosongkan, lalu pilih Kosongkan.

  4. Di halaman Bucket kosong, konfirmasikan bahwa Anda ingin mengosongkan bucket dengan mengetik permanently delete ke dalam bidang teks, lalu pilih Kosongkan.

Menghapus bucket S3

Untuk menghapus bucket S3 yang Anda buat di Prasyarat, Langkah 1, dan Langkah 5, lakukan hal berikut ini:

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih Bucket.

  3. Di dalam daftar Bucket, pilih tombol opsi di samping nama bucket yang ingin Anda hapus.

  4. Pilih Hapus.

  5. Di halaman Hapus bucket, konfirmasikan bahwa Anda ingin menghapus bucket dengan memasukkan nama bucket ke dalam bidang teks, lalu pilih Hapus bucket.

Langkah selanjutnya

Setelah menyelesaikan tutorial ini, Anda dapat menjelajahi lebih lanjut kasus penggunaan relevan lainnya: