Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penerbitan IVS RTMP | Streaming Real-Time
Dokumen ini menguraikan proses penerbitan ke tahap IVS menggunakan RTMP. Untuk detail tambahan tentang berbagai opsi konsumsi, lihat dokumentasi Stream Ing est
Prasyarat
Buat Panggung
Untuk membuat panggung, gunakan perintah berikut:
aws ivs-realtime create-stage --name "test-stage"
Lihat CreateStage untuk detailnya, termasuk jawabannya.
Penting: Dalam tanggapan, perhatikan endpoints bidang, yang mencantumkan titik akhir RTMP dan RTMPS. Ini diperlukan untuk mengatur encoder RTMP Anda.
Buat Konfigurasi Ingest
Untuk menerbitkan ke panggung menggunakan RTMPS, Anda harus terlebih dahulu membuat konfigurasi ingest dan mengaitkannya dengan stage Anda. Saat Anda mempublikasikan ke panggung (menggunakan kunci aliran dari konfigurasi ingest dan titik akhir RTMP dari panggung), media akan dipublikasikan ke panggung sebagai peserta. Anda memiliki opsi untuk menentukan a userId dan kustomattributes, yang akan dikaitkan dengan peserta yang terhubung ke panggung.
aws ivs-realtime create-ingest-configuration \ --name 'test' \ --stage-arn arn:aws:ivs:us-east-1:123456789012:stage/8faHz1SQp0ik \ --user-id '123' \ --ingest-protocol 'RTMPS'
Lihat CreateIngestConfiguration untuk detailnya, termasuk jawabannya.
Saat membuat konfigurasi ingest, Anda dapat mengaitkannya dengan ARN tahap tertentu di depan. Tanpa asosiasi ini, kunci aliran tidak dapat digunakan. Juga, konfigurasi ingest (termasuk stageArn bidang) dapat diperbarui melalui UpdateIngestConfiguration operasi, memungkinkan Anda untuk menggunakan kembali konfigurasi yang sama untuk tahapan yang berbeda.
Catatan: Bidang konfigurasi ingest insecureIngest default kefalse, yang memerlukan penggunaan RTMPS. Koneksi RTMP akan ditolak. Jika Anda harus menggunakan RTMP, setel insecureIngest ketrue. Sebaiknya gunakan RTMPS kecuali Anda memiliki kasus penggunaan spesifik dan terverifikasi yang memerlukan RTMP.
RTMP Video Single-Track
Di bawah ini kami menjelaskan cara menggunakan OBS Studio; Namun, Anda dapat menggunakan encoder RTMP apa pun yang memenuhi spesifikasi media IVS.
Panduan OBS
-
Unduh dan instal perangkat lunak: https://obsproject.com/download
. -
Klik Pengaturan. Di bagian Stream pada panel Pengaturan, pilih K ustom dari dropdown Layanan.
-
Untuk Server, masukkan titik akhir RTMP atau RTMPS dari panggung.
-
Untuk K unci Stream, masukkan konfigurasi
streamKeydari ingest. -
Konfigurasikan pengaturan video Anda seperti biasa, dengan beberapa batasan:
-
Streaming real-time IVS mendukung input hingga 720p pada 8,5 Mbps. Jika Anda melebihi salah satu dari batas ini, streaming Anda akan terputus.
-
Sebaiknya atur Interval Keyframe Anda di panel Output ke 1s atau 2s. Interval keyframe yang rendah memungkinkan pemutaran video dimulai lebih cepat bagi pemirsa. Kami juga merekomendasikan pengaturan CPU Usage Preset ke veryfast dan Tune to zerolatency, untuk mengaktifkan latensi terendah.
-
Karena OBS tidak mendukung simulcast, kami sarankan untuk menjaga bitrate Anda di bawah 2,5 Mbps. Ini memungkinkan pemirsa pada koneksi bandwidth rendah untuk menonton.
-
N B-frames onaktifkan, karena aliran dengan B-frames akan terputus secara otomatis. Lakukan salah satu tindakan berikut:
-
Dalam opsi x264, masukkan
bframes=0 sliced-threads=0. -
Set B-frames el ke 0 jika itu adalah opsi (misalnya, untuk NVENC).
-
Catatan: Stream RTMP harus menyertakan trek audio dan video, atau mereka akan terputus.
-
-
Pilih Mulai Streaming
Penting: Jika bitrate maksimum encoder Anda disetel ke 8,5 Mbps, penerbit kadang-kadang menghilang dari sesi. Ini karena pengaturan bitrate maksimum hanya target, dan encoder kadang-kadang melewati target. Untuk mencegah hal ini, atur bitrate maksimum encoder Anda lebih rendah; misalnya ke 6 Mbps.
E-RTMP Video Multitrack
IVS mendukung kemampuan video multitrack E-RTMP (Enhanced Mess Real-Time aging Protocol), yang memungkinkan Anda mempublikasikan beberapa kualitas video dalam satu aliran RTMP ke tahap IVS Anda. Ini memungkinkan streaming bitrate adaptif, sehingga pelanggan dapat secara otomatis menonton dalam kualitas terbaik untuk koneksi jaringan mereka.
Setelah dicerna, kualitas video yang berbeda dikirimkan ke pelanggan sebagai lapisan simulcast. Untuk mengonfigurasi lapisan mana yang diterima oleh pelanggan, lihat bagian “Penyandian Berlapis dengan Simulcast” di panduan SDK siaran streaming real-time: Android, iOS, dan Web.
Untuk contoh kode, lihat aws- samples/sample -amazon-ivs-multitrack-video on
Diagram ini menggambarkan cara kerja penerbitan dengan video multitrack:
Panduan OBS
-
Unduh dan instal OBS Studio:
-
Windows: Video multitrack didukung mulai dari OBS Studio 30.2.
-
macOS: Video multitrack didukung mulai dari OBS Studio 31.1 Beta (hanya Apple Silicon).
-
Unduh di: https://obsproject.com/download
.
-
-
Klik Pengaturan. Di bagian Stream pada panel Pengaturan, pilih Amazon IVS dari dropdown Layanan.
-
Untuk Server, biarkan pengaturan sebagai Otomatis.
-
Untuk K unci Stream, masukkan konfigurasi
streamKeydari ingest. -
Di bawah bagian Video Multitrack, centang Aktifkan Video Multitrack.
-
Di panel Video, atur Resolusi Basis (Canvas Resolution) dan Output (Scaled) yang diinginkan. Streaming real-time IVS mendukung input hingga 720p. Jika Anda melebihi batas ini, streaming Anda akan terputus.
Ketika video multitrack diaktifkan, pengaturan seperti jumlah trek video, bitrate, dan interval keyframe secara otomatis dikonfigurasi berdasarkan kemampuan perangkat.
-
Pilih Mulai Streaming.
Penerbitan dengan FFmpeg
Anda dapat menggunakan FFmpeg untuk mempublikasikan video dan audio langsung ke streaming real-time IVS melalui RTMP. FFmpeg adalah proyek sumber terbuka gratis yang terdiri dari rangkaian lengkap perpustakaan perangkat lunak dan alat untuk memproses video, audio, dan konten multimedia lainnya.
Perintah contoh berikut menerbitkan aliran yang menyertakan pola warna dan nada:
ffmpeg \ -re \ -f lavfi -i testsrc=d=300:s=1280x720:r=60,format=yuv420p \ -f lavfi -i sine=f=440:b=4:d=300 \ -c:v libx264 \ -b:v 2500k \ -g 60 -bf 0 \ -profile:v baseline \ -preset veryfast \ -tune zerolatency \ -x264opts sliced-threads=0 \ -c:a aac \ -ac 2 \ -b:a 160k \ -ar 48000 \ -f flv \ rtmps://$INGEST_ENDPOINT/app/$STREAM_KEY
Dalam contoh, ganti $INGEST_ENDPOINT dan $STREAM_KEY dengan nilai Anda sendiri dari konsol IVS atau API.
Konfigurasi ini memenuhi Spesifikasi Media yang Di dukung untuk streaming real-time IVS, termasuk H.264 video (profil dasar B-frames, tidak ada utas yang diiris) dan audio AAC.
Menelan Pribadi ke Tahapan
Anda dapat mempublikasikan aliran RTMP (S) dan E-RTMP (S) ke tahap dari sumber daya di dalam Amazon VPC atau dari Direct Connect, dengan menggunakan titik akhir VPC antarmuka. Ini memungkinkan koneksi pribadi antara VPC dan IVS Anda, menjaga lalu lintas masuk dalam jaringan AWS. Untuk mengatur dan mengonfigurasi titik akhir VPC antarmuka untuk IVS, lihat IVS Private Ingest di Panduan Pengguna Streaming IV Low-Latency S.
Menelan Redundan
Redundant ingest memungkinkan streaming dari dua encoder terpisah secara bersamaan ke satu tahap, dengan failover otomatis untuk media sumber yang sama. Ini membantu melindungi dari kegagalan encoder sumber dan masalah jaringan mil pertama. Redundant ingest didukung untuk aliran RTMP (S) dan E-RTMP (S).
Untuk mengaktifkan konsumsi berlebihan, setel redundantIngest ke true saat membuat konfigurasi ingest Anda melalui. CreateIngestConfiguration IVS menyediakan dua kunci aliran RTMP. Konfigurasikan dua encoder terpisah menggunakan titik akhir ingest yang sama dengan kunci aliran masing-masing.
Setiap aliran fisik muncul sebagai peserta terpisah dalam API peserta (misalnya, ListParticipants). Namun, pelanggan hanya dapat berlangganan satu peserta virtual, yang diidentifikasi oleh level atas participantId dalam konfigurasi ingest. IVS secara otomatis mengontrol aliran fisik mana yang digunakan untuk peserta virtual. Jika Anda mengaktifkan perekaman peserta individu, setiap peserta fisik direkam secara terpisah. Jika Anda mengaktifkan komposisi sisi server, hanya peserta virtual yang muncul dalam komposisi.
Redundant Ingest juga memungkinkan 24/7 streaming terus menerus. IVS membatasi penerbit individu hingga 24 jam, tetapi dengan konsumsi berlebihan, IVS mengacaukan batas waktu koneksi antara dua aliran fisik dan secara otomatis mengalihkan aliran mana yang digunakan untuk peserta virtual, memungkinkan pelanggan mengalami streaming tanpa gangguan. 24/7
Persyaratan
-
Streaming harus dikunci ulang dan harus mempertahankan parameter pengkodean yang cocok (termasuk resolusi dan kecepatan bingkai) untuk memastikan peralihan tanpa gangguan.
Rekomendasi
-
Gunakan koneksi jaringan independen dengan jalur jaringan yang beragam (misalnya, ISP yang berbeda) untuk setiap encoder, untuk memaksimalkan perlindungan terhadap masalah jaringan mil pertama dan menghindari titik kegagalan tunggal.
-
Pertahankan aliran aktif dari kedua encoder.
-
Uji skenario failover sebelum penggunaan produksi.