Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Video transcoding batch 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 one-size-fits-all format, 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 Anda 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
-
Mengirimkan 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 ke beberapa jenis file dalam ukuran, resolusi, dan format yang diperlukan oleh pemutar video atau perangkat tertentu. Secara khusus, Operasi Batch S3
Tujuan
Dalam tutorial ini, Anda mempelajari cara mengatur Operasi Batch S3 untuk menjalankan fungsi Lambda untuk transcoding batch 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:
-
Streaming HTTP Langsung (HLS)
aliran bitrate adaptif untuk pemutaran pada perangkat dengan berbagai ukuran dan bandwidth yang bervariasi -
Sebuah file MP4 video
-
Gambar thumbnail dikumpulkan pada interval
Topik
- Prasyarat
- Langkah 1: Buat bucket S3 untuk file media keluaran
- Langkah 2: Buat IAM peran untuk MediaConvert
- Langkah 3: Buat IAM peran untuk fungsi Lambda Anda
- Langkah 4: Buat fungsi Lambda untuk transcoding video
- Langkah 5: Konfigurasikan Inventaris Amazon S3 untuk bucket sumber S3 Anda
- Langkah 6: Buat IAM peran untuk Operasi Batch S3
- Langkah 7: Buat dan jalankan pekerjaan Operasi Batch S3
- Langkah 8: Memeriksa file media output dari bucket tujuan S3 Anda
- Langkah 9: Membersihkan
- Langkah selanjutnya
Prasyarat
Sebelum Anda memulai tutorial ini, Anda harus memiliki bucket sumber Amazon S3 (misalnya,
) dengan video yang akan ditranskode sudah disimpan di dalamnya.amzn-s3-demo-source-bucket
Anda dapat memberi ember nama lain jika Anda mau. Untuk informasi selengkapnya tentang nama bucket di Amazon S3, lihat. Aturan penamaan bucket tujuan umum
Untuk bucket sumber S3, pertahankan pengaturan yang terkait dengan pengaturan Blokir Akses Publik untuk bucket ini disetel ke default (Blokir semua akses publik diaktifkan). Untuk informasi selengkapnya, lihat Membuat bucket.
Untuk informasi selengkapnya tentang mengunggah video ke bucket sumber S3, lihat. Mengunggah Objek Jika Anda mengunggah banyak file video besar ke S3, Anda mungkin ingin menggunakan Amazon S3 Transfer Acceleration untuk mengonfigurasi transfer
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.
Buat ember untuk file media keluaran
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Pilih Buat bucket.
-
Untuk nama Bucket, masukkan nama untuk bucket Anda (misalnya,
).amzn-s3-demo-destination-bucket1
-
Untuk Wilayah, pilih Wilayah AWS tempat Anda ingin ember berada.
-
Untuk memastikan akses publik ke file media keluaran Anda, dalam pengaturan Blokir Akses Publik untuk bucket ini, hapus Blokir 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 mematikan pengaturan Blokir Akses Publik untuk membuat bucket Anda 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 pengaturan Blokir Akses Publik, Anda dapat menggunakan Amazon CloudFront untuk mengirimkan file media yang ditranskode ke pemirsa (pengguna akhir). Untuk informasi selengkapnya, lihat Tutorial: Hosting video streaming sesuai permintaan dengan Amazon S3, Amazon, dan CloudFront Amazon Route 53.
-
Pilih kotak centang di sebelah Saya mengakui bahwa pengaturan saat ini dapat mengakibatkan bucket ini dan objek dalam menjadi publik.
-
Pertahankan pengaturan yang tersisa disetel ke default.
-
Pilih Buat bucket.
Tambahkan CORS konfigurasi ke bucket keluaran S3
JSONCORSKonfigurasi mendefinisikan cara untuk aplikasi web klien (pemutar video dalam konteks ini) yang dimuat dalam satu domain untuk memutar file media keluaran transkode dalam domain yang berbeda.
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Dalam daftar Bucket, pilih nama bucket yang Anda buat sebelumnya (misalnya,
).amzn-s3-demo-destination-bucket1
-
Pilih tab Izin.
-
Di bagian Berbagi sumber daya lintas asal (CORS), pilih Edit.
-
Di kotak teks CORS konfigurasi, salin dan tempel CORS konfigurasi berikut.
CORSKonfigurasi harus dalam JSON format. Dalam contoh ini,
AllowedOrigins
atribut menggunakan karakter wildcard (*
) untuk menentukan semua asal. Jika Anda tahu asal spesifik Anda, Anda dapat membatasiAllowedOrigins
atribut ke pemain URL spesifik Anda. Untuk informasi selengkapnya tentang mengonfigurasi atribut ini dan atribut lainnya, lihatElemen CORS konfigurasi.[ { "AllowedOrigins": [ "*" ], "AllowedMethods": [ "GET" ], "AllowedHeaders": [ "*" ], "ExposeHeaders": [] } ]
-
Pilih Simpan perubahan.
Langkah 2: Buat IAM peran untuk MediaConvert
Untuk digunakan AWS Elemental MediaConvert untuk mentranskode video input yang disimpan di bucket S3, Anda harus memiliki peran layanan AWS Identity and Access Management (IAM) untuk memberikan MediaConvert izin membaca dan menulis file video dari dan ke bucket sumber dan tujuan S3 Anda. Saat Anda menjalankan pekerjaan transcoding, MediaConvert konsol menggunakan peran ini.
Untuk membuat IAM peran untuk MediaConvert
-
Buat IAM peran 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. -
Setelah Anda membuat IAM peran untuk MediaConvert, dalam daftar Peran, pilih nama peran untuk MediaConvert yang Anda buat (misalnya,
tutorial-mediaconvert-role
). -
Pada halaman Ringkasan, salin Peran ARN (yang dimulai dengan
arn:aws:iam::
), dan simpan ARN untuk digunakan nanti.Untuk informasi selengkapnyaARNs, lihat Amazon Resource Names (ARNs) di Referensi AWS Umum.
Langkah 3: Buat IAM peran untuk fungsi Lambda Anda
Untuk mentranskode video batch dengan dan Operasi Batch MediaConvert S3, Anda menggunakan fungsi Lambda untuk menghubungkan kedua layanan ini untuk mengonversi video. Fungsi Lambda ini harus memiliki IAM peran yang memberikan izin fungsi Lambda untuk mengakses dan Operasi Batch S3. MediaConvert
Sublangkah
Buat IAM peran untuk fungsi Lambda Anda
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di panel navigasi kiri, pilih Peran, lalu pilih Buat peran.
-
Pilih jenis peran AWS layanan, lalu di bawah Kasus penggunaan umum, pilih Lambda.
-
Pilih Berikutnya: Izin.
-
Pada halaman Lampirkan kebijakan izin, masukkan
AWSLambdaBasicExecutionRole
kotak Filter kebijakan. Untuk melampirkan kebijakan terkelola AWSLambdaBasicExecutionRoleke peran ini untuk memberikan izin menulis ke CloudWatch Log Amazon, pilih kotak centang di AWSLambdaBasicExecutionRolesebelahnya. -
Pilih Berikutnya: Tag
-
(Opsional) Tambahkan tag ke kebijakan terkelola.
-
Pilih Selanjutnya: Tinjau.
-
Untuk Nama peran, masukkan
tutorial-lambda-transcode-role
. -
Pilih Buat peran.
Sematkan kebijakan inline untuk IAM peran fungsi Lambda Anda
Untuk memberikan izin ke MediaConvert sumber daya yang diperlukan agar fungsi Lambda dapat dijalankan, Anda harus menggunakan kebijakan sebaris.
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di panel navigasi sebelah kiri, pilih Peran.
-
Dalam daftar Peran, pilih nama IAM peran yang Anda buat sebelumnya untuk fungsi Lambda Anda (misalnya,
tutorial-lambda-transcode-role
). -
Pilih tab Izin.
-
Pilih Menambahkan kebijakan inline.
-
Pilih JSONtab, lalu salin dan tempel JSON kebijakan berikut.
Dalam JSON kebijakan, ganti ARN nilai contoh
Resource
dengan peran IAM peran ARN MediaConvert yang Anda buat di Langkah 2 (misalnya,tutorial-mediaconvert-role
).{ "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" } ] } -
Pilih Tinjau Kebijakan.
-
Untuk Nama, masukkan
tutorial-lambda-policy
. -
Pilih Buat Kebijakan.
Setelah Anda membuat kebijakan sebaris, kebijakan tersebut secara otomatis disematkan dalam IAM peran fungsi Lambda Anda.
Langkah 4: Buat fungsi Lambda untuk transcoding video
Di bagian tutorial ini, Anda membangun fungsi Lambda menggunakan untuk SDK Python untuk diintegrasikan dengan Operasi Batch S3 dan. MediaConvert Untuk memulai transcoding video yang sudah disimpan di bucket sumber S3, 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. MediaConvert
Sublangkah
Tulis kode fungsi Lambda dan buat paket penerapan
-
Di mesin lokal Anda, buat folder bernama
batch-transcode
. Di
batch-transcode
folder, buat file dengan pengaturan JSON pekerjaan. 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 ditranskode
-
Bagaimana Anda ingin mentranskode video masukan Anda
-
File media keluaran apa yang ingin Anda buat
-
Apa yang harus diberi nama file yang ditranskode
-
Tempat menyimpan file yang ditranskode
-
Fitur canggih mana yang akan diterapkan, dan sebagainya
Dalam tutorial ini, kita menggunakan
job.json
file berikut untuk membuat output berikut untuk setiap video di bucket sumber S3:-
Streaming HTTP Langsung (HLS) aliran bitrate adaptif untuk pemutaran di beberapa perangkat dengan ukuran berbeda dan lebar pita yang bervariasi
-
Sebuah file MP4 video
-
Gambar thumbnail dikumpulkan pada interval
job.json
File contoh ini menggunakan Quality-Defined Variable Bitrate (QVBR) untuk mengoptimalkan kualitas video. HLSOutputnya sesuai dengan Apple (audio tidak dicampur dari video, durasi segmen 6 detik, dan kualitas video yang dioptimalkan melalui auto). QVBRJika Anda tidak ingin menggunakan contoh pengaturan yang disediakan di sini, Anda dapat membuat
job.json
spesifikasi berdasarkan kasus penggunaan Anda. Untuk memastikan konsistensi di seluruh output Anda, pastikan 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.json
pengaturan unik). Untuk informasi selengkapnya, lihat Contoh pengaturan AWS Elemental MediaConvert pekerjaan 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" } ] }
-
-
Di
batch-transcode
folder, buat file dengan fungsi Lambda. Anda dapat menggunakan contoh Python berikut dan memberi nama file.convert.py
Operasi Batch S3 mengirimkan data tugas tertentu ke fungsi Lambda dan memerlukan data hasil kembali. Untuk contoh permintaan dan respons untuk fungsi Lambda, informasi tentang kode respons dan hasil, dan contoh fungsi Lambda untuk Operasi Batch S3, lihat. Memanggil fungsi AWS Lambda
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 thejob.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 } -
Untuk membuat paket penyebaran dengan
convert.py
danjob.json
sebagai.zip
file bernamalambda.zip
, di terminal lokal Anda, bukabatch-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)
-
Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/
. -
Di panel navigasi kiri, pilih Fungsi.
-
Pilih Buat fungsi.
-
Pilih Penulis dari scratch.
-
Di bagian Informasi dasar, lakukan hal berikut:
-
Untuk Nama fungsi, masukkan
tutorial-lambda-convert
. -
Untuk Runtime, pilih Python 3.8 atau versi Python yang lebih baru.
-
-
Pilih Ubah peran eksekusi default, dan di bawah Peran eksekusi, pilih Gunakan peran yang ada.
-
Di bawah Peran yang ada, pilih nama IAM peran yang Anda buat untuk fungsi Lambda di Langkah 3 (misalnya,
tutorial-lambda-transcode-role
). -
Untuk pengaturan yang tersisa, pertahankan default.
-
Pilih Buat fungsi.
Terapkan fungsi Lambda Anda dengan arsip file.zip dan konfigurasikan fungsi Lambda (konsol)
-
Di bagian Sumber Kode halaman untuk fungsi Lambda yang Anda buat (misalnya,
tutorial-lambda-convert
), pilih Unggah dari lalu file.zip. -
Pilih Unggah untuk memilih
.zip
file lokal Anda. -
Pilih
lambda.zip
file yang Anda buat sebelumnya, dan pilih Buka. -
Pilih Simpan.
-
Di bagian Pengaturan waktu proses, pilih Edit.
-
Untuk memberi tahu runtime Lambda metode handler mana dalam kode fungsi Lambda Anda yang akan dipanggil, masukkan di bidang Handler.
convert.handler
Ketika Anda mengkonfigurasi fungsi dalam Python, nilai pengaturan handler adalah nama file dan nama modul handler, dipisahkan oleh titik ().
.
Misalnya,convert.handler
memanggilhandler
metode yang didefinisikan dalamconvert.py
file. -
Pilih Simpan.
-
Pada halaman fungsi Lambda Anda, pilih tab Konfigurasi. Di panel navigasi kiri pada tab Konfigurasi, pilih Variabel lingkungan, lalu pilih Edit.
-
Pilih Tambahkan variabel lingkungan. Kemudian, masukkan Kunci 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-roleNilai ini adalah ARN IAM peran untuk MediaConvert yang Anda buat di Langkah 2. Pastikan untuk mengganti ini ARN dengan IAM peran Anda ARN yang sebenarnya.
-
Kunci:
Application
Nilai:Batch-Transcoding
Nilai ini adalah nama aplikasi.
-
-
Pilih Simpan.
-
(Opsional) Pada tab Konfigurasi, di bagian Konfigurasi umum pada panel navigasi kiri, pilih Edit. Di bidang Timeout, masukkan
2
min0
sec. Lalu, pilih Simpan.Timeout adalah jumlah waktu yang memungkinkan Lambda menjalankan fungsi untuk pemanggilan sebelum menghentikannya. Default-nya adalah 3 detik. Harga didasarkan pada jumlah memori yang dikonfigurasi dan jumlah waktu kode Anda berjalan. Untuk informasi selengkapnya, lihat harga AWS Lambda
.
Langkah 5: Konfigurasikan Inventaris Amazon S3 untuk bucket sumber S3 Anda
Setelah mengatur fungsi transcoding Lambda, buat pekerjaan Operasi Batch S3 untuk mentranskode satu set video. Pertama, Anda memerlukan daftar objek video masukan yang Anda inginkan Operasi Batch S3 untuk menjalankan tindakan transcoding yang ditentukan. Untuk mendapatkan daftar objek video masukan, Anda dapat membuat laporan Inventaris S3 untuk bucket sumber S3 Anda (misalnya,
). amzn-s3-demo-source-bucket
Sublangkah
Membuat dan mengonfigurasi bucket untuk laporan Inventaris S3 untuk video masukan
Untuk menyimpan laporan Inventaris S3 yang mencantumkan objek bucket sumber S3, buat bucket tujuan Inventaris S3, lalu konfigurasikan kebijakan bucket untuk bucket untuk menulis file inventaris ke bucket sumber S3.
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Pilih Buat bucket.
-
Untuk nama Bucket, masukkan nama untuk bucket Anda (misalnya,
).amzn-s3-demo-destination-bucket2
-
Untuk Wilayah AWS, pilih Wilayah AWS tempat Anda ingin ember berada.
Bucket tujuan inventaris harus Wilayah AWS sama dengan bucket sumber tempat Anda menyiapkan Inventaris S3. Bucket tujuan inventaris bisa berbeda Akun AWS.
-
Di pengaturan Blokir Akses Publik untuk bucket ini, pertahankan pengaturan default (Blokir semua akses publik diaktifkan).
-
Untuk pengaturan yang tersisa, pertahankan default.
-
Pilih Buat bucket.
-
Dalam daftar Bucket, pilih nama bucket yang baru saja Anda buat (misalnya,
).amzn-s3-demo-destination-bucket2
-
Untuk memberikan izin Amazon S3 untuk menulis data laporan inventaris ke bucket tujuan Inventaris S3, pilih tab Izin.
-
Gulir ke bawah ke bagian Kebijakan Bucket, lalu pilih Edit. Halaman kebijakan Bucket terbuka.
-
Untuk memberikan izin untuk Inventaris S3, di bidang Kebijakan, tempel 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
{ "Version":"2012-10-17", "Statement":[ { "Sid":"InventoryAndAnalyticsExamplePolicy", "Effect":"Allow", "Principal": {"Service": "s3.amazonaws.com"}, "Action":"s3:PutObject", "Resource":["arn:aws:s3:::
/*"], "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-destination-bucket2
" }, "StringEquals": { "aws:SourceAccount": "amzn-s3-demo-source-bucket
111122223333
", "s3:x-amz-acl": "bucket-owner-full-control" } } } ] } -
-
Pilih Simpan perubahan.
Konfigurasikan Inventaris Amazon S3 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 menyertakan semua objek dalam bucket atau objek yang dikelompokkan berdasarkan awalan bersama. Dalam tutorial ini, laporan S3 Inventory mencakup semua objek video di bucket sumber S3 Anda.
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Untuk mengonfigurasi laporan Inventaris S3 dari video masukan di bucket sumber S3, dalam daftar Bucket, pilih nama bucket sumber S3 (misalnya,).
amzn-s3-demo-source-bucket
-
Pilih tab Manajemen.
-
Gulir ke bawah ke bagian Konfigurasi inventaris, dan pilih Buat konfigurasi inventaris.
-
Untuk nama konfigurasi Inventaris, masukkan nama (misalnya,
tutorial-inventory-config
). -
Di bawah lingkup Inventaris, pilih Versi saat ini hanya untuk versi Objek dan simpan pengaturan cakupan Inventaris lainnya disetel ke default untuk tutorial ini.
-
Di bagian Laporkan detail, untuk bucket Tujuan, pilih Akun ini.
-
Untuk Tujuan, pilih Jelajahi S3, dan pilih bucket tujuan yang Anda buat sebelumnya untuk menyimpan laporan inventaris (misalnya,
). Kemudian, pilih Pilih jalur.amzn-s3-demo-destination-bucket2
Bucket tujuan inventaris harus Wilayah AWS sama dengan bucket sumber tempat Anda menyiapkan Inventaris S3. Bucket tujuan inventaris bisa berbeda Akun AWS.
Di bagian bucket Destination, izin bucket Destination ditambahkan ke kebijakan bucket tujuan inventaris, yang memungkinkan Amazon S3 menempatkan data di bucket tujuan inventaris. Untuk informasi selengkapnya, lihat Membuat kebijakan bucket tujuan.
-
Untuk Frekuensi, pilih Harian.
-
Untuk format Output, pilih CSV.
-
Untuk Status, pilih Aktifkan.
-
Di bagian enkripsi sisi server, pilih Nonaktifkan untuk tutorial ini.
Untuk informasi selengkapnya, silakan lihat Mengonfigurasi inventaris dengan menggunakan konsol S3 dan Memberikan izin kepada Amazon S3 untuk menggunakan CMK untuk enkripsi.
-
Di bidang tambahan - bagian opsional, pilih Ukuran, Terakhir dimodifikasi, dan kelas Penyimpanan.
-
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 Inventaris S3.
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Dalam daftar Bucket, pilih nama bucket sumber video (misalnya,
).amzn-s3-demo-source-bucket
-
Pilih Manajemen.
-
Untuk melihat apakah laporan Inventaris S3 Anda sudah 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 terkirim. Tunggu hingga laporan inventaris pertama dikirimkan dan tombol Buat pekerjaan dari manifes diaktifkan sebelum Anda membuat pekerjaan Operasi Batch S3 di Langkah 7.
-
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
-
Pada tab Objects, pilih folder yang ada dengan nama bucket sumber S3 Anda (misalnya,
). Kemudian pilih nama yang Anda masukkan dalam nama konfigurasi Inventaris saat Anda membuat konfigurasi inventaris sebelumnya (misalnya,amzn-s3-demo-source-bucket
tutorial-inventory-config
).Anda dapat melihat daftar folder dengan tanggal pembuatan laporan sebagai namanya.
-
Untuk memeriksa laporan Inventaris S3 harian untuk tanggal tertentu, pilih folder dengan nama tanggal pembuatan yang sesuai, lalu pilih
manifest.json
. -
Untuk memeriksa detail laporan inventaris pada tanggal tertentu, pada halaman manifest.json, pilih Unduh atau Buka.
Langkah 6: Buat IAM peran untuk Operasi Batch S3
Untuk menggunakan Operasi Batch S3 untuk melakukan transcoding batch, Anda harus terlebih dahulu membuat IAM peran untuk memberikan izin Amazon S3 untuk melakukan Operasi Batch S3.
Sublangkah
Membuat IAM kebijakan untuk Operasi Batch S3
Anda harus membuat IAM kebijakan yang memberikan izin Operasi Batch S3 untuk membaca manifes masukan, menjalankan fungsi Lambda, dan menulis laporan penyelesaian pekerjaan Operasi Batch S3.
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di panel navigasi di sebelah kiri, pilih Kebijakan.
-
Pilih Buat kebijakan.
-
Pilih JSONtab.
-
Di bidang JSONteks, tempel JSON kebijakan berikut.
Dalam JSON kebijakan, 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,
). Dalam tutorial ini, kita menempatkan laporan penyelesaian pekerjaan di bucket tujuan untuk file media output.amzn-s3-demo-destination-bucket1
-
Peran ARN fungsi Lambda yang Anda buat di Langkah 4. Untuk menemukan dan menyalin peran ARN fungsi Lambda, lakukan hal berikut:
-
Di tab browser baru, buka halaman Fungsi di konsol Lambda di. https://console.aws.amazon.com/lambda/home#/functions
-
Dalam daftar Fungsi, pilih nama fungsi Lambda yang Anda buat di Langkah 4 (misalnya,
tutorial-lambda-convert
). -
Pilih SalinARN.
-
{ "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
" ] } ] } -
-
Pilih Selanjutnya: Tag.
-
Pilih Berikutnya: Tinjau.
-
Di bidang Nama, masukkan
tutorial-s3batch-policy
. -
Pilih Buat kebijakan.
Buat IAM peran Operasi Batch S3 dan lampirkan kebijakan izin
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di panel navigasi kiri, pilih Peran, lalu pilih Buat peran.
-
Pilih jenis Layanan AWSperan, lalu pilih layanan S3.
-
Di bawah Pilih kasus penggunaan Anda, pilih Operasi Batch S3.
-
Pilih Berikutnya: Izin.
-
Di bawah Lampirkan kebijakan izin, masukkan nama IAM kebijakan yang Anda buat sebelumnya (misalnya,
tutorial-s3batch-policy
) di kotak pencarian untuk memfilter daftar kebijakan. Pilih kotak centang di samping nama kebijakan (misalnya,tutorial-s3batch-policy
). -
Pilih Selanjutnya: Tag.
-
Pilih Selanjutnya: Tinjau.
-
Untuk Nama peran, masukkan
tutorial-s3batch-role
. -
Pilih Buat peran.
Setelah Anda membuat IAM peran untuk Operasi Batch S3, kebijakan kepercayaan berikut secara otomatis dilampirkan ke peran tersebut. Kebijakan kepercayaan ini memungkinkan prinsipal layanan Operasi Batch S3 untuk mengambil IAM peran tersebut.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
Langkah 7: Buat dan jalankan pekerjaan Operasi Batch S3
Untuk membuat tugas Operasi Batch S3 untuk memproses video input di bucket sumber S3, 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 terkirim dan Anda harus menunggu hingga tombol diaktifkan. Setelah mengonfigurasi Inventaris Amazon S3 untuk bucket sumber S3 di Langkah 5, diperlukan waktu hingga 48 jam untuk mengirimkan laporan inventaris pertama.
Sublangkah
Membuat tugas Operasi Batch S3
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Operasi Batch.
-
Pilih Buat tugas.
-
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.
-
Di bagian Manifes, lakukan hal berikut ini:
-
Untuk Format manifes, pilih Laporan Inventaris S3 (manifest.json).
-
Untuk Objek manifes, pilih Telusuri S3 untuk menemukan bucket yang Anda buat di Langkah 5 untuk menyimpan laporan inventaris (misalnya,
). Pada halaman Objek manifes, navigasikan nama objek hingga Anda menemukan fileamzn-s3-demo-destination-bucket2
manifest.json
untuk tanggal tertentu. File ini mencantumkan informasi tentang semua video yang transkode batch-nya ingin Anda lakukan. Ketika Anda telah menemukan filemanifest.json
yang ingin Anda gunakan, pilih tombol opsi di sebelahnya. Kemudian, pilih Pilih jalur. -
(Opsional) Untuk ID versi objek manifes-opsional, masukkan ID versi untuk objek manifes jika Anda ingin menggunakan versi selain yang terbaru.
-
-
Pilih Berikutnya.
-
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 . -
Di bagian Menginvokasi fungsi Lambda, lakukan hal berikut ini:
-
Pilih Pilih dari fungsi di akun Anda.
-
Untuk Fungsi Lambda, pilih nama fungsi Lambda yang telah Anda buat di Langkah 4 (misalnya,
tutorial-lambda-convert
). -
Untuk versi fungsi Lambda, pertahankan nilai default $. LATEST
-
-
Pilih Berikutnya. Halaman Konfigurasi opsi tambahan terbuka.
-
Di bagian Opsi tambahan, pertahankan pengaturan default.
Untuk informasi selengkapnya tentang opsi ini, lihat Elemen permintaan pekerjaan Operasi Batch.
-
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,
). Pilih tombol opsi di sebelah nama bucket tersebut. Kemudian, pilih Pilih jalur.amzn-s3-demo-destination-bucket1
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.
-
Di bagian Izin, pilih Pilih dari IAM peran yang ada. Untuk IAMperan, pilih IAM peran untuk pekerjaan Operasi Batch S3 yang Anda buat di Langkah 6 (misalnya,
tutorial-s3batch-role
). -
Pilih Berikutnya.
-
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
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Operasi Batch.
-
Dalam daftar Tugas, pilih ID tugas di baris pertama, yang merupakan tugas Operasi Batch S3 yang telah Anda buat sebelumnya.
-
Pilih Jalankan tugas.
-
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.
-
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
-
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.
-
Pada tab Objek, pilih folder yang memiliki nama yang diakhiri dengan ID tugas Operasi Batch S3 yang telah Anda buat sebelumnya.
-
Pilih hasil/.
-
Centang kotak di samping file
.csv
. -
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 CloudWatch Lambda ke Log. Anda dapat menggunakan dasbor pemantauan konsol Lambda untuk memantau fungsi Lambda Anda.
Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/
. -
Di panel navigasi kiri, pilih Fungsi.
-
Dalam daftar Fungsi, pilih nama fungsi Lambda yang Anda buat di Langkah 4 (misalnya,
tutorial-lambda-convert
). -
Pilih tab Monitor.
-
Di bawah Metrik, lihat metrik runtime untuk fungsi Lambda Anda.
-
Di bawah Log, lihat data log untuk setiap pemanggilan Lambda melalui Wawasan Log. CloudWatch
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 pekerjaan MediaConvert transcoding video di konsol MediaConvert
MediaConvert Pekerjaan melakukan pekerjaan transcoding file media. Saat pekerjaan Operasi Batch S3 Anda memanggil fungsi Lambda Anda untuk setiap video, setiap pemanggilan fungsi Lambda membuat pekerjaan transcoding untuk setiap video input. MediaConvert
Masuk ke AWS Management Console dan buka MediaConvert konsol di https://console.aws.amazon.com/mediaconvert/
. -
Jika halaman MediaConvert pengantar muncul, pilih Memulai.
-
Dari daftar Tugas, lihat setiap baris untuk memantau tugas transkode bagi setiap video input.
-
Identifikasi baris tugas yang ingin Anda periksa, dan pilih tautan ID tugas untuk membuka halaman detail tugas.
-
Pada halaman ringkasan Job, di bawah Output, pilih tautan untuk outputHLS,MP4, atau Thumbnail, tergantung pada apa yang didukung oleh browser Anda, untuk membuka bucket tujuan S3 untuk file media keluaran.
-
Di folder yang sesuai (HLS,MP4, atau Thumbnail) bucket tujuan keluaran S3 Anda, pilih nama objek file media keluaran.
Halaman detail objek terbuka.
-
Pada halaman detail objek, di bawah Ikhtisar objek, pilih tautan di bawah Object URL untuk menonton file media keluaran yang ditranskode.
Langkah 8: Memeriksa file media output dari bucket tujuan S3 Anda
Untuk memeriksa file media output dari bucket tujuan S3 Anda
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Dalam daftar Bucket, pilih nama bucket tujuan S3 untuk file media output yang Anda buat di Langkah 1 (misalnya,
).amzn-s3-demo-destination-bucket1
-
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:
-
Pilih folder dengan nama video input yang ingin Anda periksa.
-
Pilih folder Default/.
-
Pilih folder untuk format transkode (HLS,MP4, atau thumbnail dalam tutorial ini).
-
Pilih nama file media output.
-
Untuk menonton file yang ditranskode, pada halaman detail objek, pilih tautan di bawah Object. URL
File media keluaran dalam HLS format dibagi menjadi segmen pendek. Untuk memutar video ini, sematkan URL objek
.m3u8
file di pemutar yang kompatibel.
-
Langkah 9: Membersihkan
Jika Anda melakukan transkode video menggunakan Operasi Batch S3, Lambda, MediaConvert dan hanya sebagai latihan pembelajaran, hapus AWS sumber daya yang Anda alokasikan sehingga Anda tidak lagi dikenakan biaya.
Sublangkah
Hapus konfigurasi Inventaris S3 untuk bucket sumber S3 Anda
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Dalam daftar Bucket, pilih nama bucket sumber Anda (misalnya,
).amzn-s3-demo-source-bucket
-
Pilih tab Manajemen.
-
Di bagian Konfigurasi inventaris, pilih tombol opsi di sebelah konfigurasi inventaris yang Anda buat di Langkah 5 (misalnya,
tutorial-inventory-config
). -
Pilih Hapus, lalu pilih Konfirmasi.
Hapus fungsi Lambda
-
Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/
. -
Di panel navigasi kiri, pilih Fungsi.
-
Centang kotak di samping fungsi yang Anda buat di Langkah 4 (misalnya,
tutorial-lambda-convert
). -
Pilih Tindakan, lalu pilih Hapus.
-
Di kotak dialog Hapus fungsi, pilih Hapus.
Hapus grup CloudWatch log
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di panel navigasi sebelah kiri, pilih Log, lalu pilih Grup log.
-
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
). -
Pilih Tindakan, lalu pilih Hapus grup log.
-
Di kotak dialog Hapus grup log, pilih Hapus.
Hapus IAM peran bersama dengan kebijakan inline untuk peran IAM
Untuk menghapus IAM peran yang Anda buat di Langkah 2, Langkah 3, dan Langkah 6, lakukan hal berikut:
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di panel navigasi sebelah kiri, pilih Peran, lalu centang kotak di samping nama peran yang ingin Anda hapus.
-
Pilih Hapus di bagian atas halaman.
-
Di dalam kotak dialog konfirmasi, masukkan respons yang diperlukan di dalam kolom input teks berdasarkan prompt, lalu pilih Hapus.
Hapus kebijakan yang dikelola pelanggan IAM
Untuk menghapus IAM kebijakan yang dikelola pelanggan yang Anda buat di Langkah 6, lakukan hal berikut:
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di panel navigasi di sebelah kiri, pilih Kebijakan.
-
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. -
Pilih Tindakan, lalu pilih Hapus.
-
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:
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Di daftar Bucket, pilih tombol opsi di samping nama bucket yang ingin Anda kosongkan, lalu pilih Kosongkan.
-
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:
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Di dalam daftar Bucket, pilih tombol opsi di samping nama bucket yang ingin Anda hapus.
-
Pilih Hapus.
-
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:
-
Anda dapat menggunakan Amazon CloudFront untuk melakukan streaming file media yang ditranskode ke pemirsa di seluruh dunia. Untuk informasi selengkapnya, lihat Tutorial: Hosting video streaming sesuai permintaan dengan Amazon S3, Amazon, dan CloudFront Amazon Route 53.
-
Anda dapat mentranskode video saat Anda mengunggahnya ke bucket sumber S3. Untuk melakukannya, Anda dapat mengonfigurasi pemicu peristiwa Amazon S3 yang secara otomatis memanggil fungsi Lambda untuk mentranskode objek baru di S3. MediaConvert Untuk informasi selengkapnya, lihat Tutorial: Menggunakan pemicu Amazon S3 untuk menginvokasi fungsi Lambda di AWS Lambda Panduan Pengembang.