View a markdown version of this page

Menggunakan Amazon EventBridge dengan IVS Streaming Low-Latency - Amazon IVS

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

Menggunakan Amazon EventBridge dengan IVS Streaming Low-Latency

Anda dapat menggunakan Amazon EventBridge untuk memantau streaming Amazon Interactive Video Service (IVS) Anda.

Amazon IVS mengirimkan peristiwa perubahan tentang status streaming Anda ke Amazon EventBridge. Semua acara yang dikirimkan adalah valid. Namun, acara dikirim berdasarkan upaya terbaik, yang berarti tidak ada jaminan bahwa:

  • Peristiwa dikirimkan — Peristiwa yang ditunjuk dapat terjadi (misalnya, aliran dimulai) tetapi ada kemungkinan bahwa Amazon IVS tidak 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 dapat menerima acara yang berumur hingga beberapa jam.

  • Acara disampaikan secara berurutan — Acara mungkin rusak, terutama jika mereka dikirim dalam waktu singkat satu sama lain. Misalnya, Anda bisa melihat Streaming Down sebelum Streaming Up.

Meskipun jarang peristiwa hilang, terlambat, atau tidak berurutan, Anda harus menangani kemungkinan ini jika Anda menulis program penting bisnis yang bergantung pada urutan atau keberadaan peristiwa notifikasi.

Anda dapat membuat EventBridge aturan untuk salah satu acara berikut.

Jenis Acara Peristiwa Dikirim Ketika...
Perubahan Status Iklan IVS Iklan Iklan Disisipkan Iklan jeda dimasukkan ke dalam aliran aktif.
Perubahan Status Aliran IVS Sesi Dibuat Kunci aliran saluran berhasil digunakan dan sesi streaming dibuat. Peristiwa 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.
Perubahan Status Aliran IVS Sesi Berakhir

Encoder terputus dan Amazon IVS tidak lagi menerima video. Acara ini dapat membantu Anda menentukan kapan encoder berhenti mengirim media. Untuk aliran multitrack, code bidang dapat memberikan rincian tambahan tentang mengapa sesi berakhir. Untuk detailnya, lihat code bidang di objek StreamEvent API.

Catatan: Ketika encoder terputus, acara Sesi Berakhir mungkin datang sebelum acara Akhir Stream. Ini karena mungkin ada periode waktu singkat setelah acara Sesi Berakhir saat Amazon IVS masih memproses video.

Perubahan Status Aliran IVS Mulai Streaming Streaming sedang diproses dan segmen tersedia untuk ditonton oleh pemirsa. Acara ini menunjukkan bahwa aliran video sedang diproses dan dapat ditonton oleh pemirsa. Acara ini dapat membantu Anda menentukan apakah streaming berhasil ditayangkan.
Perubahan Status Aliran IVS Akhir Streaming 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 Sesi Berakhir.)
Perubahan Status Aliran IVS Kegagalan Streaming Aliran tidak sedang diproses dan tidak tersedia karena kapasitas pemrosesan terlampaui.
Perubahan Status Aliran IVS Pengambilalihan Streaming Aliran yang ada diambil alih.
Perubahan Status Aliran IVS Kegagalan Pengambilalihan Stream Upaya untuk mengambil alih aliran yang ada ditolak. codeBidang ini memberikan rincian tambahan tentang mengapa pengambilalihan aliran gagal. Ada beberapa nilai; perhatikan bahwa deskripsi panjang disediakan di konsol IVS tetapi tidak dikirimkan melalui API IVS atau: EventBridge
  • StreamTakeoverMediaMismatch— Klien siaran mencoba mengambil alih dengan properti media yang berbeda (misalnya, codec, resolusi, atau jenis trek video) dari aliran asli.

  • StreamTakeoverInvalidPriority— Klien siaran mencoba pengambilalihan dengan nilai integer prioritas sama dengan atau lebih rendah dari nilai aliran asli atau nilai di luar rentang yang diizinkan dari 1 hingga 2.147.483.647.

  • StreamTakeoverLimitBreached— Klien siaran mencapai upaya pengambilalihan maksimum yang diizinkan untuk streaming ini.

Perubahan Kesehatan Stream IVS Mulai Kelaparan Aliran tidak menerima data dari streamer; aliran dikatakan “kelaparan.”
Perubahan Kesehatan Stream IVS Akhir Kelaparan Aliran yang kelaparan mulai menerima data dari streamer dan aliran itu sehat kembali.
Pelanggaran Batas IVS Menelan Bitrate Bitrate aliran masuk melebihi batas Amazon IVS.
Pelanggaran Batas IVS Menelan Resolusi Resolusi aliran masuk melebihi batas Amazon IVS.
Pelanggaran Batas IVS Siaran Bersamaan Jumlah total saluran streaming pada saat yang sama melebihi batas Amazon IVS.
Pelanggaran Batas IVS Pemirsa Bersamaan Jumlah total pemirsa yang menonton saluran Anda secara bersamaan melebihi batas Amazon IVS.
Perubahan Status Perekaman IVS Mulai Rekaman

Aliran mulai diproses, dan awalan rekaman dibuat dan divalidasi. Segmen akan ditulis ke lokasi penyimpanan yang dikonfigurasi untuk saluran.

Perhatikan bahwa setelah streaming langsung dimulai dan acara Recording Start dipancarkan, diperlukan sedikit waktu sebelum file manifes dan segmen video ditulis ke bucket S3 yang dikonfigurasi untuk saluran tersebut. Kami menyarankan Anda memutar ulang atau memproses streaming yang direkam hanya setelah peristiwa Rekaman Akhir dikirim.

Perubahan Status Perekaman IVS Akhir Rekaman Streaming berakhir dan rekaman berhenti untuk saluran ini.
Perubahan Status Perekaman IVS Kegagalan Mulai Rekaman 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.
Perubahan Status Perekaman IVS Kegagalan Akhir Perekaman Perekaman berakhir dengan kegagalan, karena kesalahan yang dihadapi selama perekaman (misalnya, jika upaya untuk menulis daftar putar utama gagal). Beberapa objek mungkin masih ditulis ke lokasi penyimpanan yang dikonfigurasi.

Catatan tentang ID aliran: stream_id Bidang (dalam banyak acara) adalah pengidentifikasi 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 ID aliran yang sesuai. Stream ID memungkinkan pelanggan membedakan sesi streaming yang berbeda pada saluran yang sama.

Catatan tentang latensi beberapa peristiwa: Encoder-configuration pengaturan, terutama IDR/keyframe interval, memengaruhi waktu startup streaming dan latensi peristiwa terkait (Stream Start dan Recording Start). Interval keyframe yang lebih pendek mengurangi latensi ini. Lihat “Mengurangi Latensi” di Konfigurasi Streaming Amazon IVS untuk informasi tentang pengaturanIDR/Keyframe.

Membuat A EventBridge turan 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 Jeda Iklan

Iklan Break Disisipkan: Acara ini dikirim saat jeda iklan dimasukkan ke dalam aliran aktif.

{ "version": "0", "id": "d2f07e23-86ba-04b4-e636-5fd2c70b5278", "detail-type": "IVS Ad Break State Change", "source": "aws.ivs", "account": "049054135175", "time": "2026-02-05T01:03:08Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh " ], "detail": { "event_name": "Ad Break Inserted", "channel_name": "SSAIBeta-test-channel", "stream_id": "st-1GI11DKd3yvJm8eWREJq6Xz", "ad_break_id": "hSi2o1WIVgij", "duration_seconds": 20, "target_start_time": "2026-02-05T01:03:18Z" } }

Contoh: Perubahan Status Aliran

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 Ber akhir: Acara ini dikirim ketika encoder terputus dan IVS tidak lagi 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 Aliran: Acara ini dikirim saat streaming 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" } }

Akhir Stream: Acara ini dikirim ketika aliran 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" } }

Kegag alan Stream: Acara ini dikirim ketika 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 ketika 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 ketika upaya untuk mengambil alih aliran yang ada ditolak. Hal ini dapat disebabkan oleh jenis codec/resolution /video-track yang tidak cocok, integer 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: Perubahan Kesehatan Streaming

Mulai Kelaparan: Acara ini dikirim ketika aliran tidak menerima data dari streamer; aliran dikatakan dalam keadaan “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" } }

Kelaparan Akhir: Acara ini dikirim ketika aliran kelaparan mulai menerima data dari streamer dan streaming sehat kembali.

{ "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: Batas Pelanggaran

Semua peristiwa pelanggaran batas termasuk nama batas yang dilanggar, nilai batas, dan jumlah terlampaui batas (nilai pada pelanggaran dikurangi oleh 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 Amazon IVS.

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 Serent ak: 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 Serent ak: Acara ini dikirim ketika jumlah total pemirsa yang menonton saluran Anda secara bersamaan 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 Viewers", "limit_value": 10, "exceeded_by": 11, "limit_unit": "viewers" } }

Contoh: Merekam Perubahan Status

Untuk semua peristiwa perubahan status perekaman, jalur tingkat atas tempat semua objek untuk streaming langsung ini disimpan adalahrecording_s3_key_prefix. Dalam kasus kegagalan, alasan kegagalan ada direcording_status_reason. Bid recording_duration_ms ang adalah jumlah milidetik durasi perekaman.

Mulai Perekaman: Acara ini dikirim ketika 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" } }

Akhir Perekaman: Acara ini dikirim saat 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: Acara ini dikirim ketika 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.

{ "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: Peristiwa ini dikirim saat perekaman berakhir dengan kegagalan, karena kesalahan yang dihadapi 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" } }