Komposisi Sisi Server (Streaming Waktu Nyata) - Amazon IVS

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

Komposisi Sisi Server (Streaming Waktu Nyata)

Komposisi sisi server menggunakan server IVS untuk mencampur audio dan video dari semua peserta panggung dan kemudian mengirimkan video campuran ini ke saluran IVS (misalnya, untuk menjangkau audiens yang lebih besar) atau bucket S3. Komposisi sisi server dipanggil melalui titik akhir bidang kontrol IVS di wilayah asal panggung.

Menyiarkan atau merekam panggung menggunakan komposisi sisi server menawarkan banyak manfaat, menjadikannya pilihan yang menarik bagi pengguna yang mencari alur kerja video berbasis cloud yang efisien dan andal.

Diagram ini menggambarkan cara kerja komposisi sisi server:

Menyiarkan panggung menggunakan komposisi sisi server.

ManfaatIT

Dibandingkan dengan komposisi sisi klien, komposisi sisi server memiliki manfaat sebagai berikut:

  • Mengurangi beban klien - Dengan komposisi sisi server, beban pemrosesan dan penggabungan sumber audio dan video digeser dari perangkat klien individual ke server itu sendiri. Komposisi sisi server menghilangkan kebutuhan perangkat klien untuk menggunakan CPU dan sumber daya jaringan mereka untuk menyusun tampilan dan mengirimkannya ke IVS. Ini berarti pemirsa dapat menonton siaran tanpa perangkat mereka harus menangani tugas intensif sumber daya, yang dapat meningkatkan masa pakai baterai dan pengalaman menonton yang lebih lancar.

  • Kualitas yang konsisten — Komposisi sisi server memungkinkan kontrol yang tepat atas kualitas, resolusi, dan bitrate aliran akhir. Ini memastikan pengalaman menonton yang konsisten untuk semua pemirsa, terlepas dari kemampuan perangkat masing-masing.

  • Ketahanan — Dengan memusatkan proses komposisi di server, siaran menjadi lebih kuat. Bahkan jika perangkat penerbit mengalami keterbatasan teknis atau fluktuasi, server dapat beradaptasi dan memberikan aliran yang lebih lancar ke semua audiens.

  • Efisiensi bandwidth — Karena server menangani komposisi, penerbit panggung tidak perlu menghabiskan bandwidth ekstra untuk menyiarkan video ke IVS.

Atau, untuk menyiarkan panggung ke saluran IVS, Anda dapat melakukan komposisi sisi klien; lihat Mengaktifkan Beberapa Host pada Aliran IVS di Panduan Pengguna Streaming Latensi Rendah IVS.

IVS API

Komposisi sisi server menggunakan elemen API utama ini:

  • Sebuah EncoderConfigurationobjek memungkinkan Anda untuk menyesuaikan format video yang akan dihasilkan (tinggi, lebar, bitrate, dan parameter streaming lainnya). Anda dapat menggunakan kembali EncoderConfiguration setiap kali Anda memanggil titik StartComposition akhir.

  • Titik akhir komposisi melacak komposisi dan output video ke saluran IVS.

  • StorageConfigurationmelacak ember S3 tempat komposisi direkam.

Untuk menggunakan komposisi sisi server, Anda perlu membuat EncoderConfiguration dan melampirkannya saat memanggil titik akhir. StartComposition Dalam contoh ini, SquareVideo EncoderConfiguration digunakan dalam dua Komposisi:

Komposisi sisi server menggunakan dua elemen API utama.

Untuk informasi selengkapnya, lihat Referensi API Streaming Waktu Nyata IVS.

Layout

Secara default, fitur komposisi sisi server menggunakan tata letak kisi untuk mengatur peserta panggung dalam slot berukuran sama:

Tata letak kisi komposisi sisi server.

Tata letak ini menyediakan opsi bagi pelanggan untuk mengkonfigurasi dan memanggil slot unggulan. Slot unggulan ada di layar utama, dengan peserta lain ditampilkan di bawahnya dalam slot berukuran sama:

Slot fitur tata letak grid komposisi sisi server.

Catatan: Resolusi maksimum yang didukung oleh penerbit panggung pada komposisi sisi server adalah 1080p. Jika penerbit mengirimkan video yang lebih tinggi dari 1080p, penerbit akan ditampilkan sebagai peserta khusus audio.

Memulai

Prasyarat

Untuk menggunakan komposisi sisi server, Anda harus memiliki panggung dengan penerbit aktif dan menggunakan saluran IVS dan/atau bucket S3 sebagai tujuan komposisi. Di bawah ini, kami menjelaskan satu kemungkinan alur kerja yang menggunakan EventBridge peristiwa untuk memulai komposisi yang menyiarkan panggung ke saluran IVS saat peserta menerbitkan. Atau, Anda dapat memulai dan menghentikan komposisi berdasarkan logika aplikasi Anda sendiri. Lihat Perekaman Komposit untuk contoh lain yang menampilkan penggunaan komposisi sisi server untuk merekam panggung langsung ke bucket S3.

  1. Buat saluran IVS. Lihat Memulai dengan Streaming Latensi Rendah Amazon IVS.

  2. Buat tahap IVS dan token peserta untuk setiap penerbit.

  3. Buat EncoderConfiguration.

  4. Bergabunglah dengan panggung dan publikasikan ke sana. (Lihat bagian “Penerbitan dan Berlangganan” dari panduan SDK siaran streaming real-time: Web, Android, dan iOS.)

  5. Saat Anda menerima EventBridge acara Peserta yang Diterbitkan, hubungi StartComposition.

  6. Tunggu beberapa detik dan lihat tampilan gabungan di pemutaran saluran.

Alur kerja komposisi sisi server yang menggunakan EventBridge peristiwa untuk memulai komposisi saat peserta menerbitkan.

Catatan: Komposisi melakukan shutdown otomatis setelah 60 detik tidak aktif dari peserta penerbit di atas panggung. Pada saat itu, Komposisi dihentikan dan transisi ke keadaan. STOPPED Komposisi secara otomatis dihapus setelah beberapa menit di STOPPED negara bagian.

Instruksi CLI

Menggunakan AWS CLI adalah opsi lanjutan dan mengharuskan Anda mengunduh dan mengonfigurasi CLI terlebih dahulu di mesin Anda. Untuk detailnya, lihat Panduan Pengguna Antarmuka Baris Perintah AWS.

Sekarang Anda dapat menggunakan CLI untuk membuat dan mengelola sumber daya. Titik akhir Komposisi berada di bawah ivs-realtime namespace.

Buat Sumber EncoderConfiguration Daya

An EncoderConfiguration adalah objek yang memungkinkan Anda untuk menyesuaikan format video yang dihasilkan (tinggi, lebar, bitrate, dan parameter streaming lainnya). Anda dapat menggunakan kembali EncoderConfiguration setiap kali Anda memanggil titik akhir Komposisi, seperti yang dijelaskan pada langkah berikutnya.

Perintah di bawah ini membuat EncoderConfiguration sumber daya yang mengonfigurasi parameter komposisi video sisi server seperti bitrate video, kecepatan bingkai, dan resolusi:

aws ivs-realtime create-encoder-configuration --name "MyEncoderConfig" --video "bitrate=2500000,height=720,width=1280,framerate=30"

Tanggapannya adalah:

{ "encoderConfiguration": { "arn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/9W59OBY2M8s4", "name": "MyEncoderConfig", "tags": {}, "video": { "bitrate": 2500000, "framerate": 30, "height": 720, "width": 1280 } } }

Mulai Komposisi

Menggunakan EncoderConfiguration ARN yang disediakan dalam respons di atas, buat sumber daya Komposisi Anda:

aws ivs-realtime start-composition --stage-arn "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik" --destinations '[{"channel": {"channelArn": "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/9W59OBY2M8s4"}}]'

Tanggapan akan menunjukkan bahwa Komposisi dibuat dengan STARTING status. Setelah Komposisi mulai menerbitkan komposisi, status bertransisi keACTIVE. (Anda dapat melihat status dengan memanggil GetComposition titik akhir ListCompositions atau.)

Setelah KomposisiACTIVE, tampilan komposit tahap IVS terlihat di saluran IVS, menggunakan: ListCompositions

aws ivs-realtime list-compositions

Tanggapannya adalah:

{ "compositions": [ { "arn": "arn:aws:ivs:us-east-1:927810967299:composition/YVoaXkKdEdRP", "destinations": [ { "id": "bD9rRoN91fHU", "startTime": "2023-09-21T15:38:39+00:00", "state": "ACTIVE" } ], "stageArn": "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik", "startTime": "2023-09-21T15:38:37+00:00", "state": "ACTIVE", "tags": {} } ] }

Catatan: Anda harus memiliki peserta penerbit yang aktif menerbitkan ke panggung untuk menjaga komposisi tetap hidup. Untuk informasi selengkapnya, lihat bagian “Menerbitkan dan Berlangganan” dari panduan SDK siaran streaming real-time: Web, Android, dan iOS. Anda harus membuat token panggung yang berbeda untuk setiap peserta.

Aktifkan Berbagi Layar

Untuk menggunakan tata letak berbagi layar tetap, ikuti langkah-langkah di bawah ini.

Buat Sumber EncoderConfiguration Daya

Perintah di bawah ini membuat EncoderConfiguration sumber daya yang mengonfigurasi parameter komposisi sisi server (bitrate video, framerate, dan resolusi).

aws ivs-realtime create-encoder-configuration --name "test-ssc-with-screen-share" --video={bitrate=2000000,framerate=30,height=720,width=1280}

Buat token peserta panggung dengan screen-share atribut. Karena kita akan menentukan screen-share sebagai nama featured slot, kita perlu membuat token panggung dengan screen-share atribut diatur ketrue:

aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes screen-share=true

Tanggapannya adalah:

{ "participantToken": { "attributes": { "screen-share": "true" }, "expirationTime": "2023-08-04T05:26:11+00:00", "participantId": "E813MFklPWLF", "token": "eyJhbGciOiJLTVMiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2OTExMjY3NzEsImlhdCI6MTY5MTA4MzU3MSwianRpIjoiRTgxM01Ga2xQV0xGIiwicmVzb3VyY2UiOiJhcm46YXdzOml2czp1cy1lYXN0LTE6OTI3ODEwOTY3Mjk5OnN0YWdlL3U5T2lFMjliVDdYcCIsInRvcGljIjoidTlPaUUyOWJUN1hwIiwiZXZlbnRzX3VybCI6IndzczovL3VzLWVhc3QtMS5ldmVudHMubGl2ZS12aWRlby5uZXQiLCJ3aGlwX3VybCI6Imh0dHBzOi8vYjJlYTVjMmZmMzU1Lmdsb2JhbC53aGlwLmxpdmUtdmlkZW8ubmV0IiwiYXR0cmlidXRlcyI6eyJzY3JlZW4tc2hhcmUiOiJ0cnVlIn0sImNhcGFiaWxpdGllcyI6eyJhbGxvd19wdWJsaXNoIjp0cnVlLCJhbGxvd19zdWJzY3JpYmUiOnRydWV9LCJ2ZXJzaW9uIjoiMC4zIn0.MGUCMFvMzv35O4yVzM9tIWZl7n3mmFQhleqsRSBx_G2qT2YUDlWSNg6H1vL7sAWQMeydSAIxAIvdfqt3Fh1MLiyelc9NnTjI5hL3YPKqDX6J3NDH1fksh8_5y1jztoPDy4yVA5OmtA" } }

Mulai Komposisi

Untuk memulai komposisi menggunakan fitur berbagi layar, kami menggunakan perintah ini:

aws ivs-realtime start-composition --stage-arn "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik" --destinations '[{"channel": {"channelArn": "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/DEkQHWPVaOwO"}}]' --layout "grid={featuredParticipantAttribute=screen-share}"

Tanggapannya adalah:

{ "composition" : { "arn" : "arn:aws:ivs:us-east-1:927810967299:composition/B19tQcXRgtoz", "destinations" : [ { "configuration" : { "channel" : { "channelArn" : "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn" : "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/DEkQHWPVaOwO" }, "name" : "" }, "id" : "SGmgBXTULuXv", "state" : "STARTING" } ], "layout" : { "grid" : { "featuredParticipantAttribute" : "screen-share" } }, "stageArn" : "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik", "startTime" : "2023-09-27T21:32:38Z", "state" : "STARTING", "tags" : { } } }

Ketika peserta panggung E813MFklPWLF bergabung dengan panggung, video peserta tersebut akan ditampilkan di slot unggulan, dan semua penerbit panggung lainnya akan ditampilkan di bawah slot:

Memulai Komposisi menggunakan fitur berbagi layar.

Hentikan Komposisi

Untuk menghentikan komposisi di titik mana pun, hubungi StopComposition titik akhir:

aws ivs-realtime stop-composition --arn arn:aws:ivs:us-east-1:927810967299:composition/B19tQcXRgtoz

Siklus Hidup Komposisi

Gunakan diagram di bawah ini untuk memahami transisi keadaan dari Komposisi. Pada tingkat tinggi, siklus hidup suatu Komposisi adalah sebagai berikut:

  1. Sumber daya Komposisi dibuat saat pengguna memanggil titik StartComposition akhir

  2. Setelah IVS berhasil memulai Komposisi, EventBridge acara “Perubahan Status Komposisi IVS (Mulai Sesi)” dikirim. Lihat Menggunakan EventBridge dengan IVS Real-Time Streaming untuk detail tentang acara.

  3. Setelah Komposisi dalam keadaan aktif, hal berikut dapat terjadi:

    • Pengguna menghentikan Komposisi - Jika StopComposition titik akhir dipanggil, IVS memulai penutupan Komposisi yang anggun, mengirimkan peristiwa “Akhir Tujuan” diikuti dengan acara “Akhir Sesi”.

    • Komposisi melakukan shutdown otomatis - Jika tidak ada peserta yang aktif mempublikasikan ke tahap IVS, Komposisi diselesaikan secara otomatis setelah 60 detik dan EventBridge acara dikirim.

    • Kegagalan tujuan — Jika tujuan tiba-tiba gagal (misalnya, saluran IVS akan dihapus), tujuan transisi ke RECONNECTING status dan acara “Destination Reconnecting” akan dikirim. Jika pemulihan tidak mungkin, IVS mentransisikan tujuan ke FAILED negara bagian dan acara “Kegagalan Tujuan” dikirim. IVS membuat komposisi tetap hidup jika setidaknya salah satu tujuannya aktif.

  4. Setelah komposisi dalam FAILED keadaan STOPPED atau, secara otomatis dibersihkan setelah lima menit. (Maka tidak lagi diambil oleh ListCompositions atau GetComposition.)

Siklus hidup sumber daya Komposisi Sisi Server.