Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Amazon EventBridge dengan Streaming IVS Latensi Rendah
Anda dapat menggunakan Amazon EventBridge untuk memantau aliran Amazon Interactive Video Service (IVS).
Amazon IVS mengirimkan peristiwa perubahan tentang status aliran Anda ke Amazon EventBridge. Semua acara yang dikirimkan valid. Namun, acara dikirim dengan upaya terbaik, yang berarti tidak ada jaminan bahwa:
-
Acara dikirimkan - Peristiwa yang ditunjuk dapat terjadi (misalnya, aliran dimulai) tetapi ada kemungkinan bahwa Amazon tidak IVS akan mengirim peristiwa perubahan yang sesuai ke EventBridge. Amazon IVS mencoba menyampaikan acara selama beberapa jam sebelum menyerah.
-
Acara yang dikirimkan akan tiba dalam jangka waktu tertentu — Anda mungkin menerima acara hingga beberapa jam.
-
Acara dikirimkan secara berurutan - Acara mungkin rusak, terutama jika dikirim dalam waktu singkat satu sama lain. Misalnya, Anda bisa melihat Stream Down sebelum Stream Up.
Meskipun jarang terjadi peristiwa yang hilang, terlambat, atau tidak berurutan, Anda harus menangani kemungkinan ini jika Anda menulis program penting bisnis yang bergantung pada urutan atau keberadaan acara pemberitahuan.
Anda dapat membuat EventBridge aturan untuk salah satu acara berikut.
Jenis Acara | Peristiwa | Dikirim Ketika... |
---|---|---|
IVSPerubahan Status Streaming | Sesi Dibuat | Kunci aliran saluran berhasil digunakan dan sesi streaming dibuat. Acara ini diaktifkan saat streaming dimulai, sebelum video diproses atau dikirimkan ke pemirsa. Acara ini dapat membantu Anda menentukan apakah streaming dimulai tetapi gagal ditayangkan; misalnya, karena kesalahan konfigurasi atau pelanggaran batas. |
IVSPerubahan Status Streaming | Sesi Berakhir | Encoder terputus dan Amazon tidak lagi IVS menerima video. Acara ini dapat membantu Anda menentukan kapan encoder berhenti mengirim media. Untuk aliran multitrack, Catatan: Saat encoder terputus, acara Session Ended mungkin muncul sebelum acara Stream End. Ini karena mungkin ada waktu singkat setelah acara Session Ended ketika Amazon IVS masih memproses video. |
IVSPerubahan Status Streaming | Mulai Streaming | Streaming sedang diproses dan segmen tersedia untuk ditonton pemirsa. Acara ini menunjukkan bahwa streaming video sedang diproses dan dapat ditonton oleh pemirsa. Acara ini dapat membantu Anda menentukan apakah streaming berhasil ditayangkan. |
IVSPerubahan Status Streaming | Aliran Akhir | Streaming berhenti diproses dan tidak lagi menghasilkan segmen video untuk pemirsa. Acara ini dapat membantu Anda menentukan kapan streaming berakhir dan tidak ada segmen video baru yang dapat dikonsumsi oleh pemirsa. (Lihat juga catatan di Session Ended.) |
IVSPerubahan Status Streaming | Kegagalan Streaming | Aliran tidak sedang diproses dan tidak tersedia karena kapasitas pemrosesan terlampaui. |
IVSPerubahan Status Streaming | Pengambilalihan Aliran | Aliran yang ada diambil alih. |
IVSPerubahan Status Streaming | Kegagalan Pengambilalihan Stream | Upaya untuk mengambil alih aliran yang ada ditolak. code Bidang ini memberikan detail tambahan tentang mengapa pengambilalihan aliran gagal. Ada beberapa nilai; perhatikan bahwa deskripsi panjang disediakan di IVS konsol tetapi tidak disampaikan melalui IVS API atau EventBridge:
|
IVSStreaming Perubahan Kesehatan | Mulai Kelaparan | Aliran tidak menerima data dari streamer; aliran dikatakan dalam “kelaparan.” |
IVSStreaming Perubahan Kesehatan | Akhir Kelaparan | Aliran kelaparan mulai menerima data dari streamer dan alirannya kembali sehat. |
IVSBatasi Pelanggaran | Bitrate Tertelan | Bitrate aliran masuk melebihi batas AmazonIVS. |
IVSBatasi Pelanggaran | Resolusi Ingest | Resolusi aliran masuk melebihi IVS batas Amazon. |
IVSBatasi Pelanggaran | Siaran Serentak | Jumlah total saluran streaming pada saat yang sama melebihi IVS batas Amazon. |
IVSBatasi Pelanggaran | Pemirsa Serentak | Jumlah total pemirsa yang menonton saluran Anda pada saat yang sama melebihi IVS batas Amazon. |
IVSMerekam Perubahan Status | Merekam Mulai | Aliran mulai diproses, dan awalan perekaman dibuat dan divalidasi. Segmen akan ditulis ke lokasi penyimpanan yang dikonfigurasi untuk saluran. Perhatikan bahwa setelah streaming langsung dimulai dan acara Mulai Perekaman dipancarkan, dibutuhkan sedikit waktu sebelum file manifes dan segmen video ditulis ke bucket S3 yang dikonfigurasi untuk saluran. Kami menyarankan Anda memutar ulang atau memproses streaming yang direkam hanya setelah acara Akhir Perekaman dikirim. |
IVSMerekam Perubahan Status | Rekaman Akhir | Aliran berakhir dan perekaman berhenti untuk saluran ini. |
IVSMerekam Perubahan Status | Merekam Kegagalan Mulai | Aliran dimulai tetapi perekaman gagal dimulai karena kesalahan (misalnya, bucket S3 tidak ada atau tidak berada di wilayah yang benar). Streaming langsung ini tidak direkam. |
IVSMerekam Perubahan Status | Merekam Kegagalan Akhir | Perekaman berakhir dengan kegagalan, karena kesalahan yang ditemui selama perekaman (misalnya, jika upaya untuk menulis daftar putar master gagal). Beberapa objek mungkin masih ditulis ke lokasi penyimpanan yang dikonfigurasi. |
Catatan tentang streamingIDs: stream_id
Bidang (dalam banyak peristiwa) adalah pengenal aliran unik yang ditetapkan setiap kali saluran ditayangkan. Untuk saluran tertentu, setiap streaming langsung memiliki yang barustream_id
. Oleh karena itu, setiap saluran ARN dapat memiliki banyak aliran yang sesuaiIDs. Streaming IDs memungkinkan pelanggan untuk membedakan sesi streaming yang berbeda pada saluran yang sama.
Catatan tentang latensi beberapa peristiwa: Pengaturan konfigurasi encoder, terutama interval IDR /keyframe, memengaruhi waktu startup streaming dan latensi peristiwa terkait (Mulai Stream dan Mulai Perekaman). Interval keyframe yang lebih pendek mengurangi latensi ini. Lihat “Mengurangi Latensi” di Konfigurasi IVS Streaming Amazon untuk informasi tentang pengaturanIDR/Keyframe
.
Membuat EventBridge Aturan Amazon untuk Amazon IVS
Anda dapat membuat aturan yang memicu peristiwa yang dipancarkan oleh Amazon. IVS Ikuti langkah-langkah di Buat aturan di Amazon EventBridge di Panduan EventBridge Pengguna Amazon. Saat memilih layanan, pilih Layanan Video Interaktif (IVS).
Contoh: Perubahan Status Stream
Sesi Dibuat: Acara ini dikirim ketika kunci aliran saluran berhasil digunakan dan sesi streaming dibuat.
{ "version": "0", "id": "aa5b7a40-36cf-8dc4-5554-32d70e047215", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "535011710559", "time": "2024-09-09T16:17:26Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-west-2:535011710559:channel/UCGaMPGLCbcE" ], "detail": { "event_name": "Session Created", "channel_name": "", "stream_id": "st-1AuTyMDASvHUTSb8p5PvbsO" } }
Sesi Berakhir: Acara ini dikirim ketika encoder terputus dan tidak lagi IVS menerima video.
{ "version": "0", "id": "6f2723f3-ee31-9e48-b030-ac865e261a8e", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "535011710559", "time": "2024-09-09T16:17:26Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-west-2:535011710559:channel/UCGaMPGLCbcE" ], "detail": { "event_name": "Session Ended", "channel_name": "", "code": "MultitrackInputNotAllowed", "stream_id": "st-1AuTyMDASvHUTSb8p5PvbsO" } }
Mulai Stream: Acara ini dikirim saat aliran sedang diproses dan segmen tersedia untuk pemirsa.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Stream Start", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }
Stream End: Acara ini dikirim saat streaming berhenti diproses dan tidak lagi menghasilkan segmen video untuk pemirsa.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Stream End", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }
Kegagalan Stream: Peristiwa ini dikirim saat aliran tidak diproses dan tidak tersedia karena kapasitas pemrosesan terlampaui.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Stream Failure", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "reason": "Transcode capacity exceeded. Please try again." } }
Pengambilalihan Stream: Acara ini dikirim saat aliran yang ada diambil alih.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Stream Takeover", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }
Kegagalan Pengambilalihan Stream: Acara ini dikirim saat upaya untuk mengambil alih aliran yang ada ditolak. Hal ini dapat disebabkan oleh jenis codec/resolution/video -track yang tidak cocok, bilangan bulat prioritas yang tidak valid, atau melebihi jumlah maksimum pengambilalihan per aliran.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Stream Takeover Failure", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "code": "StreamTakeoverInvalidPriority" } }
Contoh: Streaming Health Change
Starvation Start: Acara ini dikirim ketika aliran tidak menerima data dari streamer; aliran dikatakan dalam “kelaparan.”
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream Health Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Starvation Start", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }
Akhir Kelaparan: Acara ini dikirim ketika aliran kelaparan mulai menerima data dari streamer dan aliran kembali sehat.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream Health Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Starvation End", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }
Contoh: Batasi Pelanggaran
Semua peristiwa pelanggaran batas termasuk nama batas yang dilanggar, nilai batas, dan jumlah batas yang dilampaui (nilai saat pelanggaran dikurangi dengan batas).
Ingest Bitrate: Peristiwa ini dikirim ketika bitrate aliran masuk melebihi batas Amazon. IVS
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Limit Breach", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "limit_name": "Ingest Bitrate", "limit_value": 1234, "exceeded_by": 3, "limit_unit": "bits per second", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }
Resolusi Ingest: Peristiwa ini dikirim ketika resolusi aliran masuk (total piksel atau piksel per tepi) melebihi batas AmazonIVS.
Total piksel maksimum terlampaui:
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Limit Breach", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "limit_name": "Ingest Resolution", "limit_value": 495000, "exceeded_by": 426600, "limit_unit": "total pixels", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }
Piksel maksimum per tepi terlampaui:
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Limit Breach", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890"TBD ], "detail": { "limit_name": "Ingest Resolution", "limit_value": 855, "exceeded_by": 45, "limit_unit": "pixels per edge", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }
Siaran Bersamaan: Acara ini dikirim ketika jumlah total saluran streaming pada saat yang sama melebihi batas Amazon. IVS
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Limit Breach", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [], "detail": { "limit_name": "Concurrent Broadcasts", "limit_value": 2, "exceeded_by": 3, "limit_unit": "active streams" } }
Pemirsa Serentak: Acara ini dikirim ketika jumlah total pemirsa yang menonton saluran Anda pada saat yang sama melebihi IVS batas Amazon.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Limit Breach", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [], "detail": { "limit_name": "Concurrent Viewers", "limit_value": 10, "exceeded_by": 11, "limit_unit": "viewers" } }
Contoh: Merekam Perubahan Status
Untuk semua peristiwa perubahan status rekaman, jalur tingkat atas tempat semua objek untuk streaming langsung ini disimpanrecording_s3_key_prefix
. Dalam kasus kegagalan, alasan kegagalan ada direcording_status_reason
. recording_duration_ms
Bidang adalah jumlah milidetik durasi perekaman.
Mulai Perekaman: Acara ini dikirim saat aliran mulai diproses dan segmen sedang ditulis ke lokasi penyimpanan yang dikonfigurasi untuk saluran.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-23T20:12:36Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:channel/AbCdef1G2hij" ], "detail": { "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "recording_status": "Recording Start", "recording_status_reason": "", "recording_s3_bucket_name": "r2s3-dev-channel-1-recordings", "recording_s3_key_prefix": "ivs/v1/123456789012/AbCdef1G2hij/2020/6/23/20/12/j8Z9O91ndcVs", "recording_duration_ms": 0, "recording_session_id": "a6RfV23ES97iyfoQ" } }
Perekaman Akhir: Acara ini dikirim ketika streaming berakhir dan perekaman berhenti untuk saluran ini.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-24T07:51:32Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:channel/AbCdef1G2hij" ], "detail": { "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "recording_status": "Recording End", "recording_status_reason": "", "recording_s3_bucket_name": "r2s3-dev-channel-1-recordings", "recording_s3_key_prefix": "ivs/v1/123456789012/AbCdef1G2hij/2020/6/23/20/12/j8Z9O91ndcVs", "recording_duration_ms": 99370264, "recording_session_id": "a6RfV23ES97iyfoQ", "recording_session_stream_ids": ["st-254sopYUvi6F78ghpO9vn0A", "st-1A2b3c4D5e6F78ghij9Klmn"] } }
Kegagalan Mulai Perekaman: Peristiwa ini dikirim saat streaming dimulai tetapi perekaman gagal dimulai karena kesalahan (misalnya, bucket S3 tidak ada atau tidak berada di wilayah yang benar). Streaming langsung ini tidak direkam.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-23T20:12:36Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:channel/AbCdef1G2hij" ], "detail": { "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "recording_status": "Recording Start Failure", "recording_status_reason": "ValidationException", "recording_s3_bucket_name": "r2s3-dev-channel-1-recordings", "recording_s3_key_prefix": "", "recording_duration_ms": 0, "recording_session_id": "a6RfV23ES97iyfoQ" } }
Kegagalan Akhir Perekaman: Acara ini dikirim saat perekaman berakhir dengan kegagalan, karena kesalahan yang ditemui selama perekaman. Beberapa objek mungkin masih ditulis ke lokasi penyimpanan yang dikonfigurasi.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-24T07:51:32Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456a7-ab1c-2d34-e5f6-1a2b3c4d5678" ], "detail": { "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "recording_status": "Recording End Failure", "recording_status_reason": "InternalServerException", "recording_s3_bucket_name": "r2s3-dev-channel-1-recordings", "recording_s3_key_prefix": "ivs/v1/123456789012/AbCdef1G2hij/2020/6/23/20/12/j8Z9O91ndcVs", "recording_duration_ms": 0, "recording_session_id": "a6RfV23ES97iyfoQ" } }