View a markdown version of this page

Konfigurasi Streaming Amazon IVS - Amazon IVS

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

Konfigurasi Streaming Amazon IVS

Amazon Interactive Video Service (IVS) memungkinkan pengembang untuk dengan mudah mengirimkan video latensi rendah kepada pemirsa di seluruh dunia. Dengan Amazon IVS, streamer hanya perlu menangani produksi streaming, lalu mengirim streaming ke Amazon IVS. Amazon IVS menangani pemrosesan video (menelan dan transcoding), pengiriman, dan pemutaran ke pemirsa menggunakan pemutar Amazon IVS.

Ada banyak solusi untuk streaming langsung. Apakah Anda memiliki studio yang dilengkapi dengan beberapa kamera, pengalih visual, pengomposisi grafis, dan berbagai peralatan pencampuran audio, atau Anda berencana untuk memulai streaming pertama Anda dari smartphone, Anda perlu berurusan dengan beberapa konsep dan parameter pengkodean yang sama.

Dokumen ini menjelaskan cara mengonfigurasi encoder video untuk streaming ke Amazon IVS. Audiens untuk dokumen ini adalah pengembang yang ingin membangun fungsionalitas streaming ke dalam aplikasi mereka.

Perhatikan bahwa input audio saja tidak didukung untuk streaming latensi rendah IVS.

Prasyarat

Ikuti langkah-langkah diMemulai dengan IVS Streaming Low-Latency, untuk membuat saluran dan mengatur streaming. Dalam prosesnya, ARN saluran (Nama Sumber Daya Amazon) dan kunci aliran ditetapkan, bersama dengan URL untuk menelan dan memutar ulang aliran. Anda harus mengarahkan aplikasi streaming Anda ke URL ingest.

Sebelum membaca dokumen ini, Anda harus terbiasa dengan:

Mengurangi Latensi

Streaming latensi rendah Amazon IVS kompatibel dengan sebagian besar aplikasi streaming dan hanya memerlukan sedikit perubahan pada konfigurasi aplikasi streaming Anda. Untuk latensi serendah mungkin, Anda harus menggunakan pemutar Amazon IVS; pemutar video HLS pihak ketiga tidak didukung. Lihat dokumentasi Amazon IVS Player SDK.

Untuk mempersiapkan aplikasi streaming Anda untuk streaming latensi rendah, lakukan hal berikut. (Catatan: tidak semua opsi ini tersedia di setiap aplikasi streaming.)

  • Pada encoder video, atur IDR/Keyframe ke interval 2 detik (atau 1 detik, untuk latensi ujung ke ujung yang lebih rendah).

    IDR/Keyframesecara langsung mempengaruhi waktu startup streaming dan latensi EventBridge peristiwa terkait (Stream Start dan Recording Start). Jika IDR/Keyframe 2 detik, latensi start aliran akan sekitar 6-7 detik. Jika IDR/Keyframe 1 detik, latensi start aliran akan sekitar 3-4 detik. Video Anda akan tersedia untuk pemirsa dan merekam otomatis ke Amazon S3 hanya setelah periode latensi awal streaming awal.

    Interval keyframe 1 detik yang lebih pendek memiliki beberapa pertukaran QoS. Hal ini dapat menyebabkan streaming bitrate adaptif (ABR) Amazon IVS Player beralih resolusi lebih sering; ukuran segmen lebih kecil, sehingga pemeriksaan ABR lebih sering terjadi. Buffering dapat meningkat karena peningkatan peralihan resolusi and/or jika jaringan pemirsa tidak dapat mengunduh segmen dengan cukup cepat. Evaluasi pertukaran ini saat memutuskan antara interval keyframe 1 atau 2 detik.

    Hindari pengaturan IDR/Keyframe ke nilai yang lebih tinggi dari 5 detik. Latensi start streaming tidak hanya akan lebih tinggi daripada saat menggunakan 1 atau 2 detik, tetapi IVS tidak akan dapat menjamin bahwa setiap segmen yang dihasilkan untuk pemutaran akan dimulai dengan a. IDR/keyframe Segmen yang tidak dimulai dengan a IDR/keyframe dapat mengakibatkan kesalahan dekode atau distorsi visual saat pemirsa memulai pemutaran atau mengubah rendering.

  • Jika tersedia, atur encoder Anda ke penyetelan latensi nol dalam konfigurasi x264.

  • Pastikan ukuran buffer (VBV) tidak melebihi bitrate rata-rata (kilobits-per-detik) aliran.

Hindari Third-Party Streaming/Forwarding Layanan

Kami sangat menyarankan Anda untuk tidak menggunakan layanan pihak ketiga untuk melakukan restream atau meneruskan konten ke Amazon IVS. Ini akan menimbulkan latensi ekstra. Untuk latensi rendah, streaming langsung ke Amazon IVS.

Pengaturan Encoder

Stream Ingest: Codec dan Protokol Ingest

Codec: Amazon IVS mendukung video dan AAC (LC) H.264 untuk audio.

Protokol Ingest: Amazon IVS mendukung protokol ingest paling umum yang digunakan dalam perangkat lunak dan perangkat keras streaming: RTMPS (Mess Real-Time aging Protocol over a TLS/SSL connection), RTMP, dan SRT (Secure Reliable Transport). Streaming Amazon IVS melalui RTMPS memerlukan TLS versi 1.2 atau yang lebih baru.

RTMPS/RTMP

Encoder video Anda harus terhubung ke Amazon IVS ingest melalui protokol RTMPS yang terkait dengan port keluar. 443/TCP Untuk memastikan ini, tentukan server ingest IVS, yang menyertakan port di jalur:

rtmps://<IVS-ingest-server>/<IVS-stream-key>

Contoh:

rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/<IVS-stream-key>

Saluran IVS juga dapat dikonfigurasi untuk memungkinkan penyerapan RTMP yang tidak aman, meskipun kami menyarankan Anda menggunakan RTMPS kecuali Anda memiliki kasus penggunaan spesifik dan terverifikasi yang memerlukan RTMP. Saat streaming RTMP, pastikan protokol diatur ke rtmp:// dan hapus :443 port. Contoh:

rtmp://a1b2c3d4e5f6.global-contribute.live-video.net/app/<IVS-stream-key>

SRT

Encoder video Anda harus terhubung ke titik akhir ingest menggunakan protokol SRT di port 9000. Untuk memastikan hal ini, tentukan titik akhir ingest, yang mencakup port dan frasa sandi di jalur:

srt://<ingest-endpoint>:<port>?streamid=<stream-key>&passphrase=<passphrase>

Gunakan frasa sandi hanya jika penyerapan tidak aman tidak diaktifkan untuk saluran.

Contoh:

srt://a1b2c3d4e5f6.srt.live-video.net:9000?streamid=sk_us-west-2_abcd1234efgh5678ijkl&passphrase=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ

Untuk mengoptimalkan kinerja aliran SRT, lihat blog Haivision ini: Cara Mengkonfigurasi Pengaturan SRT pada Encoder Video Anda untuk Kinerja Optimal.

Resolution/Bitrate/FPS

Resolusi stream sangat menentukan bitrate dan frame rate (frame-per-second, atau FPS). Gunakan pedoman berikut; ini adalah rekomendasi kami. Perhatikan resolusi yang ditunjukkan di bawah ini adalah orientasi lanskap (horizontal x vertikal), jadi balikkan ini untuk orientasi potret.

Kualitas yang Dapat Diterima (SD) 480p (852x480) Kualitas Bagus (HD) 720p (1280x720) Kualitas Tinggi (Full HD) 1080p (1920x1080)
Bitrate Hingga 1500 Kbps Hingga 4500 Kbps Hingga 8500 Kbps
FPS 30 30 atau 60 30 atau 60
Interval bingkai kunci 2 detik 2 detik 2 detik

Bitrate, FPS, dan resolusi saling terkait. Nilai optimal tergantung pada keadaan dan bisa rumit untuk ditentukan. Panduan terbaik kami adalah memulai dengan nilai-nilai di atas dan bereksperimen jika diinginkan. Tujuannya adalah gerakan komponen video yang jelas dan halus selama streaming dan resolusi yang baik dalam bandwidth yang tersedia. Meningkatkan and/or resolusi frame rate meningkatkan kualitas video secara keseluruhan, tetapi ini tentu dibatasi oleh bandwidth.

Amazon IVS mendukung framerate hingga 60 FPS (termasuk kecepatan bingkai standar PAL 25 dan 50). Semakin tinggi framerate, semakin baik kualitasnya - selama ada bandwidth bitrate yang memadai. Tergantung pada aplikasinya, framerate rendah bisa baik-baik saja; misalnya, untuk kamera keamanan.

Jenis Saluran

Jenis saluran menentukan resolusi dan bitrate yang diijinkan. Jika Anda melebihi resolusi input atau bitrate yang diijinkan, aliran mungkin akan segera terputus.

Ada empat jenis saluran:STANDARD,ADVANCED_SD,ADVANCED_HD, danBASIC. Saat Anda membuat saluran, tipe defaultnya adalahSTANDARD.

Ada dua jenis pemrosesan video, transcoding dan trans muxing. Hal ini ditentukan oleh jenis saluran, apakah saluran dikonfigurasi untuk input video multitrack, dan apakah penyiar menggunakan klien yang mendukung multitrack. (Video Multitrack dikonfigurasi dengan properti multitrackInputConfiguration API dari tipe data Saluran.)

  • Video aktif STANDARD (tanpa input multitrack) dan ADVANCED saluran ditranskode: beberapa kualitas dihasilkan dari input asli, untuk secara otomatis memberi pemirsa pengalaman terbaik untuk perangkat dan kondisi jaringan mereka. Transcoding memungkinkan kualitas pemutaran yang lebih tinggi di berbagai kecepatan unduh. Transcoding adalah pilihan terbaik untuk penyiar dengan konektivitas internet mil pertama terbatas kemampuan perangkat and/or terbatas (misalnya, ponsel, bukan PC desktop).

  • Video aktif STANDARD (dengan input multitrack diaktifkan dan penyiar menggunakan klien berkemampuan multitrack) dan BASIC saluran ditransmuksiasikan: Amazon IVS memberikan masukan asli kepada pemirsa. Mirip dengan transcoding, input multitrack transmuxed memberikan pengalaman terbaik kepada pemirsa untuk perangkat dan kondisi jaringan mereka.

Semua saluran transkode memiliki preset transkode, yang menentukan rendering mana yang dihasilkan. Anggap ini sebagai tangga ABR. Mereka memungkinkan Anda untuk menukar bandwidth unduhan yang tersedia dan kualitas video, untuk mengoptimalkan pengalaman menonton.

  • STANDARDsaluran memiliki satu preset transkode default.

  • ADVANCEDsaluran memiliki dua preset transkode yang dapat dipilih:

    • Pengiriman bandwidth terbatas menggunakan bitrate yang lebih rendah daripada STANDARD untuk setiap tingkat kualitas. Gunakan jika Anda memiliki bandwidth unduhan rendah konten video and/or sederhana (misalnya, kepala yang berbicara).

    • Pengiriman bandwidth yang lebih tinggi menggunakan bitrate yang lebih tinggi untuk setiap tingkat ualitas. Gunakan jika Anda memiliki konten ideo and/or kompleks bandwidth unduhan yang tinggi (misalnya, flash dan perubahan adegan cepat). Ini adalah opsi default.

Saluran STANDAR

Single-Track Masukan Video

STANDARDSaluran ditranscoding. Resolusi video tertinggi yang dihasilkan adalah full HD, 1080p. Ini adalah tipe saluran default.

  • Preset transkode: Ada satu tangga preset transkode default.

  • Audio: Untuk rendering 360p dan di bawahnya, audio ditranskode. Untuk rendering lain, audio asli dilewatkan.

Resolusi Input dan Bitrate Maksimum Rincian Tangga

1080p60 pada 8,5 Mbps

  1. Video: sumber passthrough, audio: sumber passthrough

  2. Video: 720p60 pada 3,4 Mbps, audio: sumber passthrough

  3. Video: 480p30 pada 1,4 Mbps, audio: sumber passthrough

  4. Video: 360p30 pada 0,63 Mbps, audio: 64 kbps

  5. Video: 160p30 pada 0, 23 Mbps, audio: 48 kbps

1080p30 pada 8,5 Mbps

  1. Video: Sumber passthrough, audio: sumber passthrough

  2. Video: 720p30 pada 2,4 Mbps, audio: sumber passthrough

  3. Video: 480p30 pada 1,4 Mbps, audio: sumber passthrough

  4. Video: 360p30 pada 0,63 Mbps, audio: 64 kbps

  5. Video: 160p30 pada 0, 23 Mbps, audio: 48 kbps

Kurang dari 1080p60 dan lebih besar dari 720p60, pada 8,5 Mbps

  1. Video: sumber passthrough, audio: sumber passthrough

  2. Video: 720p60 pada 3,4 Mbps, audio: sumber passthrough

  3. Video: 480p30 pada 1,4 Mbps, audio: sumber passthrough

  4. Video: 360p30 pada 0,63 Mbps, audio: 64 kbps

  5. Video: 160p30 pada 0, 23 Mbps, audio: 48 kbps

Kurang dari 1080p30 dan lebih besar dari 720p30, pada 8,5 Mbps

  1. Video: sumber passthrough, audio: sumber passthrough

  2. Video: 720p30 pada 2,4 Mbps, audio: sumber passthrough

  3. Video: 480p30 pada 1,4 Mbps, audio: sumber passthrough

  4. Video: 360p30 pada 0,63 Mbps, audio: 64 kbps

  5. Video: 160p30 pada 0, 23 Mbps, audio: 48 kbps

720p60 pada 8,5 Mbps

  1. Video: 720p60 pada 3,4 Mbps, audio: sumber passthrough

  2. Video: 480p30 pada 1,4 Mbps, audio: sumber passthrough

  3. Video: 360p30 pada 0,63 Mbps, audio: 64 kbps

  4. Video: 160p30 pada 0, 23 Mbps, audio: 48 kbps

720p30 pada 8,5 Mbps

  1. Video: 720p30 pada 2,4 Mbps, audio: sumber passthrough

  2. Video: 480p30 pada 1,4 Mbps, audio: sumber passthrough

  3. Video: 360p30 pada 0,63 Mbps, audio: 64 kbps

  4. Video: 160p30 pada 0, 23 Mbps, audio: 48 kbps

Kurang dari 720p30/60 dan lebih besar dari atau sama dengan 480p30/60, pada 8,5 Mbps

  1. Video: 480p30 pada 1,4 Mbps, audio: sumber passthrough

  2. Video: 360p30 pada 0,63 Mbps, audio: 64 kbps

  3. Video: 160p30 pada 0, 23 Mbps, audio: 48 kbps

Masukan Video Multitrack

STANDARDsaluran ditransmuxed ketika inputnya adalah video multitrack. Resolusi video tertinggi yang dihasilkan dibatasi oleh multitrackInputConfiguration.maximumResolution properti. Rendisi spesifik bersifat dinamis tergantung pada sistem penyiar dan persyaratan lingkungan.

Untuk semua rendering video, audio adalah sumber passthrough.

ADVANCED-HD Saluran

ADVANCED_HDSaluran ditranscoding. Resolusi video tertinggi yang dihasilkan adalah HD, 720p.

  • Preset transkode: Ada dua tangga preset transkode yang dapat dipilih.

  • Audio: Audio ditranskode.

Resolusi Input dan Bitrate Maksimum Rincian Tangga

720p60 hingga 1080p60, pada 8,5 Mbps

Transcode preset: pengiriman bandwidth yang lebih tinggi (default):

  1. Video: 720p60 pada 3 Mbps, audio: 128 kbps

  2. Video: 480p30 pada 1,3 Mbps, audio: 128 kbps

  3. Video: 360p30 pada 0,7 Mbps, audio: 64 kbps

  4. Video: 160p30 pada 0,27 Mbps, audio: 48 kbps

  5. Audio-only pada 64 kbps

Transcode preset: pengiriman bandwidth terbatas:

  1. Video: 720p60 pada 2,2 Mbps, audio: 128 kbps

  2. Video: 480p30 pada 0,8 Mbps, audio: 128 kbps

  3. Video: 360p30 pada 0,4 Mbps, audio: 64 kbps

  4. Video: 160p30 pada 0,22 Mbps, audio: 48 kbps

  5. Audio-only pada 64 kbps

720p30 hingga 1080p30, pada 8,5 Mbps

Transcode preset: pengiriman bandwidth yang lebih tinggi (default):

  1. Video: 720p30 pada 2,3 Mbps, audio: 128 kbps

  2. Video: 480p30 pada 1,3 Mbps, audio: 128 kbps

  3. Video: 360p30 pada 0,7 Mbps, audio: 64 kbps

  4. Video: 160p30 pada 0,27 Mbps, audio: 48 kbps

  5. Audio-only pada 64 kbps

Transcode preset: pengiriman bandwidth terbatas:

  1. Video: 720p30 pada 1,9 Mbps, audio: 128 kbps

  2. Video: 480p30 pada 0,8 Mbps, audio: 128 kbps

  3. Video: 360p30 pada 0,4 Mbps, audio: 64 kbps

  4. Video: 160p30 pada 0,22 Mbps, audio: 48 kbps

  5. Audio-only pada 64 kbps

Kurang dari 720p30/60 dan lebih besar dari 480p30/60, pada 8,5 Mbps

Transcode preset: pengiriman bandwidth yang lebih tinggi (default):

  1. Video: Sumber ditranskode pada 2,3 Mbps, audio: 128 kbps

  2. Video: 480p30 pada 1,3 Mbps, audio: 128 kbps

  3. Video: 360p30 pada 0,7 Mbps, audio: 64 kbps

  4. Video: 160p30 pada 0,27 Mbps, audio: 48 kbps

  5. Audio-only pada 64 kbps

Transcode preset: pengiriman bandwidth terbatas:

  1. Video: Sumber ditranskode pada 1,9 Mbps, audio: 128 kbps

  2. Video: 480p30 pada 0,8 Mbps, audio: 128 kbps

  3. Video: 360p30 pada 0,4 Mbps, audio: 64 kbps

  4. Video: 160p30 pada 0,22 Mbps, audio: 48 kbps

  5. Audio-only pada 64 kbps

480p30/60 pada 8,5 Mbps

Transcode preset: pengiriman bandwidth yang lebih tinggi (default):

  1. Video: 480p30 pada 1,3 Mbps, audio: 128 kbps

  2. Video: 360p30 pada 0,7 Mbps, audio: 64 kbps

  3. Video: 160p30 pada 0,27 Mbps, audio: 48 kbps

  4. Audio-only pada 64 kbps

Transcode preset: pengiriman bandwidth terbatas:

  1. Video: 480p30 pada 0,8 Mbps, audio: 128 kbps

  2. Video: 360p30 pada 0,4 Mbps, audio: 64 kbps

  3. Video: 160p30 pada 0,22 Mbps, audio: 48 kbps

  4. Audio-only pada 64 kbps

ADVANCED-SD Saluran

ADVANCED_SDSaluran ditranscoding. Rendisi yang tersedia dibatasi pada kualitas input, tanpa konversi naik.

  • Preset transkode: Ada dua tangga preset transkode yang dapat dipilih.

  • Audio: Audio ditranskode.

Resolusi Input dan Bitrate Maksimum Rincian Tangga

480p30/60 hingga 1080p30/60, pada 8,5 Mbps

Transcode preset: pengiriman bandwidth yang lebih tinggi (default):

  1. Video: 480p30 pada 1,3 Mbps, audio: 128 kbps

  2. Video: 360p30 pada 0,7 Mbps, audio: 64 kbps

  3. Video: 160p30 pada 0,27 Mbps, audio: 48 kbps

  4. Audio-only pada 64 kbps

Transcode preset: pengiriman bandwidth terbatas:

  1. Video: 480p30 pada 0,8 Mbps, audio: 128 kbps

  2. Video: 360p30 pada 0,4 Mbps, audio: 64 kbps

  3. Video: 160p30 pada 0,22 Mbps, audio: 48 kbps

  4. Audio-only pada 64 kbps

Saluran DASAR

BASICsaluran ditransmusikan. Satu rendisi diproduksi.

  • Transcode preset: NA

  • Audio: Audio sumber dilewatkan.

Resolusi Input dan Bitrate Maksimum Rincian Tangga

Lebih besar dari 480p30/60 dan kurang dari atau sama dengan 1080p30/60, pada 3,5 Mbps

Parameter pengkodean sumber (tidak ada tangga)

480p30/60 pada 1,5 Mbps

Parameter pengkodean sumber (tidak ada tangga)

Pengaturan Video

Kami merekomendasikan pengaturan berikut. Mereka tersedia untuk sebagian besar perangkat lunak H.264 pengkodean video atau API perangkat keras.

  • Pada encoder video, atur IDR/Keyframe ke interval 2 detik (atau 1 detik, untuk latensi ujung ke ujung yang lebih rendah).

  • H.264 tingkat: Utama

  • Perubahan adegan: Mati (lebih disukai)

  • Subsampel kroma: YUV420P

  • CABAC: Lebih disukai

  • ColorSpace: BT.709 (direkomendasikan untuk kompatibilitas maksimum di HDTV dan layar komputer). Transcoding video Amazon IVS mendukung ColorSpace pass-through; pengguna tingkat lanjut dapat menggunakan ColorSpace video lain dan video rentang penuh.

Pengaturan Audio

Kami mendukung pengaturan berikut:

  • Kodek: AAC (LC)

  • Bitrate: 96 Kbps hingga 320 Kbps

  • Tingkat sampel: 44.1 Khz atau 48 Khz (yang terbaik adalah mencocokkan aliran audio produksi Anda)

  • Saluran: Maksimum 2 - Stereo (1: mono atau 2: dukungan saluran audio stereo)

Gunakan CBR, Bukan VBR

Selalu gunakan CBR (Constant BitRate), bukan VBR (Variable BitRate), sebagai metode kontrol laju untuk encoder. CBR lebih cocok untuk sifat bandwidth tetap jaringan, dan menghasilkan pemutaran video yang lebih dapat diprediksi dan stabil untuk perangkat klien. Dengan bitrate yang konsisten, mudah bagi pemirsa untuk memilih tingkat kualitas yang dapat ditangani koneksi mereka dari waktu ke waktu.

Tergantung pada kompleksitas adegan, VBR dapat mengakibatkan lonjakan bitrate, yang dapat menyebabkan penurunan frame sebelum video mencapai and/or buffering Amazon IVS di pemutar klien.

Kami sangat menyarankan Anda hanya menggunakan CBR. Jika Anda menggunakan VBR, streaming Anda akan lebih tunduk pada buffering dan pemutaran yang tidak lancar.

Gunakan Sinyal Progresif

Gunakan aliran sinyal progresif; hindari video yang saling terkait dalam pengkodean aliran and/or produksi. Sinyal aliran progresif menghasilkan kualitas pemutaran yang jauh lebih baik menampilkan seluruh bingkai pada satu waktu, menghindari artifaktasi gerakan yang dihasilkan saat menampilkan sinyal yang saling terkait.

Persyaratan Jaringan

Anda harus memiliki koneksi internet yang stabil yang dapat mempertahankan aliran unggahan yang memadai dan konstan. Koneksi internet yang tidak stabil dapat mengakibatkan aliran gagap dan tertinggal bagi pemirsa Anda.

Gunakan koneksi kabel. WiFi dan koneksi LTE bisa berbintik-bintik atau mengalami gangguan atau latensi karena prioritas yang buruk QoS/packet-queue. Jika memungkinkan, andalkan koneksi kabel untuk streaming.

Rencanakan untuk mengalokasikan bandwidth 50% lebih banyak dari minimum yang diperlukan. Overhead ditambahkan untuk mengkompensasi fluktuasi bitrate dalam pengkodean bitstream video.

Gunakan VLAN Internet khusus untuk pengkodean mesin. Menjaga encoder pada jaringan terpisah mencegah efek yang berpotensi mengganggu, termasuk: polusi oleh lalu lintas, kemacetan bandwidth, dan faktor keamanan yang merugikan.

Teks Tertutup

IVS mendukung teks tertutup. Sebagai streamer, jika Anda ingin menawarkan teks kepada audiens Anda, Anda harus mengirimkan data keterangan dalam format yang diterima, baik yang disematkan dalam streaming Anda atau di samping streaming Anda, melalui encoder video Anda.

Amazon IVS menerima teks dalam CEA-708/EIA-608 format baris 21 (juga disebut sebagai 608 di atas 708). Anda dapat mengirimkan teks menggunakan salah satu metode berikut:

  • CEA-708/EIA-608 tertanam dalam aliran dasar video, seperti yang dijelaskan dalam ATSC A/72 (SEI user_data). Format ini umum di antara encoder siaran televisi.

  • CEA-708/EIA-608 ditransmisikan melalui RTMPS pada CaptionInfo script/AMF0 tag. Format ini umum di antara encoder siaran Internet dan server media seperti Elemental Technologies dan Wowza. Amazon IVS Player SDK mendukung satu bahasa; mereka tidak mendukung pemutaran teks multi-track.

Catatan: Amazon IVS Player SDK mendukung data keterangan hanya di bidang CC1 NTSC 1. Mereka tidak mendukung pemutaran teks multi-track.

Saat mentransmisikan melalui RTMPS, payload harus berisi array ECMA dengan dua pasangan elemen:

  • Sebuah string bernama type yang berisi karakter708.

  • Sebuah string bernama data yang berisi payload yang dikodekan base64 CEA-708/EIA-608 .

Contoh:

00000000 12 00 00 69 00 00 00 00 00 00 00 02 00 0d 6f 6e |...i..........on| 00000010 43 61 70 74 69 6f 6e 49 6e 66 6f 08 00 00 00 02 |CaptionInfo.....| 00000020 00 04 74 79 70 65 02 00 03 37 30 38 00 04 64 61 |..type...708..da| 00000030 74 61 02 00 3c 74 51 41 78 52 30 45 35 4e 41 4e |ta..<tQAxR0E5NAN| 00000040 4c 41 50 79 55 72 76 79 55 49 50 79 52 51 50 7a |LAPyUrvyUIPyRQPz| 00000050 49 35 66 7a 73 37 50 7a 76 4c 50 77 67 56 50 7a |I5fzs7PzvLPwgVPz| 00000060 33 36 66 7a 30 34 2f 78 6f 67 50 79 55 4c 2f 38 |36fz04/xogPyUL/8| 00000070 3d 00 00 09 00 00 00 74 |=......t|

Jika Anda menggunakan encoder video Elemental, atur sebagai berikut:

  • Setel caption embed ke “capture 608 Field 1.”

  • Sematkan teks dengan on CaptionInfo sebagai tag RTMPS di grup keluaran.

Untuk informasi selengkapnya, lihat posting blog Men ambahkan Teks Tertutup ke Streaming Langsung Amazon IVS.

Streaming dengan FFmpeg

FFmpeg adalah proyek sumber terbuka gratis yang terdiri dari serangkaian pustaka perangkat lunak yang luas untuk menangani video, audio, dan file dan aliran multimedia lainnya. Ini dapat digunakan dengan banyak sistem operasi dan perangkat.

Lihat situs web FFmpeg untuk instalasi dan informasi lain tentang FFmpeg. Gunakan build statis terbaru (jangan dikompilasi).

Setelah menginstal, pilih sumber audio/video input untuk FFmpeg. Anda dapat mencari apa yang tersedia, sebagai berikut:

ffmpeg -list_devices true -f dshow -i dummy.

Untuk informasi lebih lanjut, lihat di sini. Bergantung pada apa yang tersedia dan metode penangkapan apa yang ditargetkan, Anda harus dapat menangkap video/audio (tertanam) langsung dari perangkat yang Anda pilih dan menyandikan sinyal dengan FFmpeg. Contoh:

  • Webcam — Untuk menangkap output dari webcam Logitech C920:

    ffmpeg -f dshow -video_size 1920x1080 -framerate 30 -i video="HD Pro Webcam C920":audio="Microphone (HD Pro Webcam C920)" -c:v libx264 -b:v 6000K -maxrate 6000K -pix_fmt yuv420p -r 30 -s 1920x1080 -profile:v main -preset veryfast -g 120 -x264opts "nal-hrd=cbr:no-scenecut” -acodec aac -ab 160k -ar 44100 -f flv rtmps://<IVS-ingest-server>/<IVS-stream-key>
  • File video - FFmpeg bekerja dengan banyak format file video dan kartu tangkapan. Berikut adalah contoh streaming berdasarkan input MP4:

    ffmpeg -re -i input.mp4 -c:v libx264 -b:v 6000K -maxrate 6000K -pix_fmt yuv420p -s 1920x1080 -profile:v main -preset veryfast -force_key_frames expr:gte(t,n_forced*2) -x264opts "nal-hrd=cbr:no-scenecut” -acodec aac -ab 160k -ar 44100 -f flv rtmps://<IVS-ingest-server>/app/<IVS-stream-key>

Untuk informasi selengkapnya tentang apa yang harus <IVS-ingest-server> dimasukkan dan<IVS-stream-key>, lihat informasi tentang menyiapkan perangkat lunak streaming langsung diMemulai dengan IVS Streaming Low-Latency. Contoh:

  • Menelan server: rtmps://jds34ksdg3las.global-contribute.live-video.net/app/

  • Kunci Streaming: sk_us-west-2_abcd1234efgh5678ijkl

Pengambilalihan Streaming

Pengambilalihan aliran memungkinkan pengguna mengganti aliran yang sedang berlangsung di saluran yang mereka miliki dengan aliran baru. Selama proses ini, aliran sebelumnya tidak pernah terputus, itu hanya digantikan oleh aliran baru. Hal ini memungkinkan pengguna untuk terhubung dengan mulus ke aliran baru tanpa harus menunggu sampai aliran yang sedang berlangsung terputus sepenuhnya.

Proses pengambilalihan aliran memperpanjang sesi streaming yang sedang berlangsung tetapi tidak memulai yang baru. Ini mempertahankan kontinuitas streaming tanpa mengharuskan pemirsa untuk menyegarkan pemutar, meskipun mereka mungkin mengalami status buffering singkat. Tidak ada diskontinuitas dalam rekaman sesi streaming di mana pengambilalihan aliran terjadi.

Untuk memulai pengambilalihan aliran, tambahkan parameter priority URL ke kunci aliran pengguna. Kunci aliran menjadi<IVS-stream-key>?priority=<priority>, di mana <priority> adalah bilangan bulat positif antara 1 dan 2.147.483.647.

Sintaks URI untuk menggunakan pengambilalihan aliran dengan protokol RTMPS adalah:

rtmps://<uri>/<streamkey>?priority=N

Untuk SRT ingest, sintaks URI untuk pengambilalihan aliran adalah:

srt://<uri>?streamid=#!::u=<streamkey>,priority=N&passphrase=foobar

Pengambilalihan berhasil jika integer prioritas yang disediakan untuk aliran baru lebih besar dari integer prioritas untuk aliran yang sedang berlangsung, atau jika tidak ada integer prioritas sebelumnya yang ditetapkan. Selain itu, aliran lama dan baru harus berbagi resolusi, codec video, codec audio, dan jumlah trek yang sama.

Secara default, hingga 100 pengambilalihan dapat dilakukan dalam satu aliran, selama integer prioritas yang lebih besar digunakan untuk setiap pengambilalihan berturut-turut. Jumlah maksimum pengambilalihan aliran dapat disesuaikan per AWS akun (lihat Kuota Layanan). Setelah streaming selesai, saluran tidak menyimpan memori dari bilangan bulat prioritas sebelumnya atau berapa banyak pengambilalihan yang dilakukan, sehingga bilangan bulat prioritas apa pun dapat digunakan kembali di aliran mendatang. Selain itu, jika pengaturan encoder diubah untuk pengambilalihan aliran, sesi streaming tidak menyimpan memori pengaturan encoder sebelumnya, hanya menampilkan pengaturan terbaru.

Jika fitur sambungkan kembali otomatis diaktifkan, SDK siaran seluler IVS menggunakan pengambilalihan aliran untuk menyambung kembali secara otomatis saat penyiar beralih jaringan (misalnya, dari ke seluler). WiFi Untuk mengaktifkan koneksi ulang otomatis:

  • Di iOS, atur config.autoReconnect.enabled = true pada IVSBroadcastConfiguration objek Anda.

  • Di Android, atur config.autoReconnect.setEnabled(true) pada BroadcastConfiguration objek Anda.

Pertimbangan untuk Menggunakan Auto-Reconnect dan Aliran Pengambilalihan Bersama

Ketika pelanggan SDK siaran seluler mengaktifkan koneksi ulang otomatis seperti yang dijelaskan di atas, streamer yang sedang berlangsung (Broadcaster A) akan mencoba menyambung kembali hingga 5 kali setelah gangguan jaringan, dimulai dengan priority=1 dan meningkatkan prioritas dengan setiap upaya menyambung kembali. Proses ini memungkinkan siaran pulih secara otomatis pada jaringan yang tidak stabil dengan secara bertahap meningkatkan prioritas dengan setiap koneksi kembali yang berhasil.

Namun, karena sifat inkremental dari perilaku koneksi ulang otomatis, menjadi tantangan bagi penyiar lain (Broadcaster B) untuk berhasil menggunakan pengambilalihan aliran ketika penyiar asli menggunakan koneksi ulang otomatis. Nilai prioritas yang diperlukan untuk memastikan pengambilalihan yang berhasil tidak dapat diprediksi, karena upaya menyambung kembali oleh Penyiar A meningkatkan nilai prioritas dengan setiap percobaan ulang selama durasi streaming.

Catatan: Kami tidak menyarankan menggunakan pengambilalihan aliran untuk mengganti aliran dari SDK siaran seluler saat koneksi ulang otomatis diaktifkan, karena Anda perlu mengelola atau menyimpan catatan prioritas yang diperlukan untuk pengambilalihan. Meskipun menetapkan nilai prioritas besar mungkin berhasil pada awalnya, itu dapat menciptakan tantangan jika pengambilalihan lain diperlukan nanti. Sebaiknya pertahankan koneksi ulang otomatis untuk Penyiar A selama ketidakstabilan jaringan dan pengambilalihan aliran oleh Penyiar B sebagai kasus penggunaan yang berbeda.

Streaming dengan Amazon IVS Broadcast SDK

Amazon IVS broadcast SDK adalah untuk pengembang yang sedang membangun aplikasi Android, iOS, atau Web dengan Amazon IVS. Lihat dokumentasi SDK siaran di Panduan Pengguna Amazon IVS, mulai dari sini. Ada subhalaman dengan panduan untuk Android, iOS, dan streaming Web. SDK siaran memungkinkan Anda untuk menyesuaikan bitrate, frame rate, dan resolusi.

Menguji Stream

Selalu verifikasi bahwa streaming Anda berfungsi.

Arahkan ke streaming video di konsol Amazon IVS, untuk menonton apa yang sedang dialirkan dan mengelola streaming langsung.