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, pengomposisian 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 khusus audio tidak didukung untuk streaming latensi rendah IVS.
Prasyarat
Ikuti langkah-langkahnyaMemulai Streaming Latensi Rendah IVS, untuk membuat saluran dan mengatur streaming. Dalam prosesnya, saluran ARN (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:
-
Dasar-dasar Amazon IVS: Baca Apa itu Streaming Latensi Rendah IVS dan Memulai Streaming Latensi Rendah IVS
-
Amazon IVS API: Memahami Referensi API Streaming Latensi Rendah IVS.
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 menyiapkan 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 yang lebih rendah end-to-end ).IDR/Keyframe
secara langsung mempengaruhi waktu startup streaming dan latensi EventBridge peristiwa terkait (Stream Start dan Recording Start). JikaIDR/Keyframe
2 detik, latensi mulai aliran akan menjadi sekitar 6-7 detik. JikaIDR/Keyframe
1 detik, latensi stream-start akan menjadi sekitar 3-4 detik. Video Anda akan tersedia untuk pemirsa dan perekaman otomatis ke Amazon S3 hanya setelah periode latensi awal streaming.Interval keyframe 1 detik yang lebih pendek memiliki beberapa pengorbanan QoS. Ini dapat menyebabkan streaming bitrate adaptif Amazon IVS Player (ABR) beralih resolusi lebih sering; ukuran segmen lebih kecil, sehingga pemeriksaan ABR lebih sering terjadi. Buffering dapat meningkat karena peningkatan resolusi-switching dan/atau jika jaringan pemirsa tidak dapat mengunduh segmen dengan cukup cepat. Evaluasi pengorbanan ini saat memutuskan antara interval keyframe 1 atau 2 detik.
Hindari pengaturan
IDR/Keyframe
ke nilai yang lebih tinggi dari 5 detik. Latensi stream-start 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 IDR/Keyframe. Segmen yang tidak dimulai dengan IDR/Keyframe dapat mengakibatkan kesalahan decode atau distorsi visual saat pemirsa memulai pemutaran atau mengubah rendisi. -
Jika tersedia, setel encoder Anda ke penyetelan latensi nol dalam konfigurasi x264.
-
Pastikan ukuran buffer (VBV) tidak melebihi bitrate rata-rata (kilobits-per-second) aliran.
Hindari Layanan Streaming/Penerusan Pihak Ketiga
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, RTMPS, dan Port 443
Codec: Amazon IVS mendukung H.264 untuk video dan AAC (LC) untuk audio.
Amazon IVS mendukung protokol pengambilan aman yang paling umum digunakan dalam perangkat lunak streaming dan perangkat keras, RTMPS (Protokol Pesan Real-Time melalui koneksi TLS/SSL). Streaming dan pemutaran Amazon IVS memerlukan TLS versi 1.2 atau yang lebih baru.
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>
Sebagai 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 lepaskan :443
port. Sebagai contoh:
rtmp://a1b2c3d4e5f6.global-contribute.live-video.net/app/<IVS-stream-key>
Resolusi/Bitrate/FPS
Resolusi aliran sangat menentukan bitrate dan frame rate (frames-per-second, atau FPS). Gunakan panduan 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 Baik (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 keyframe | 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. Peningkatan frame rate dan/atau resolusi meningkatkan kualitas video secara keseluruhan, tetapi ini tentu dibatasi oleh bandwidth.
Amazon IVS mendukung framerate hingga 60 FPS (termasuk European PAL 25 dan 50 frame rate standar). 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 diizinkan, aliran mungkin akan segera terputus.
Ada empat jenis saluran:STANDARD
,ADVANCED_SD
,ADVANCED_HD
, danBASIC
. Saat Anda membuat saluran, tipe defaultnya adalahSTANDARD
.
Tergantung pada jenis saluran, video dapat ditranskode atau ditransmuxed:
Video aktif
STANDARD
danADVANCED
saluran ditranskode: beberapa kualitas dihasilkan dari input asli, untuk secara otomatis memberikan pengalaman terbaik kepada pemirsa untuk perangkat dan kondisi jaringan mereka. Transcoding memungkinkan kualitas pemutaran yang lebih tinggi di berbagai kecepatan unduhan.-
Video di
BASIC
saluran ditransmuxed: Amazon IVS memberikan masukan asli kepada pemirsa.
Semua saluran transkode memiliki preset transkode, yang menentukan rendisi mana yang diproduksi. Anggap ini sebagai tangga ABR. Mereka memungkinkan Anda untuk menukar bandwidth unduhan dan kualitas video yang tersedia, untuk mengoptimalkan pengalaman menonton.
STANDARD
saluran memiliki satu, preset transkode default.-
ADVANCED
saluran 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 dan/atau konten video sederhana (misalnya, kepala bicara).Pengiriman bandwidth yang lebih tinggi menggunakan bitrate yang lebih tinggi untuk setiap tingkat kualitas. Gunakan jika Anda memiliki bandwidth unduhan tinggi dan/atau konten video yang kompleks (misalnya, flash dan perubahan adegan cepat). Ini menjadi opsi default.
Saluran STANDAR
STANDARD
saluran ditranskode. Resolusi video tertinggi yang dihasilkan adalah full HD, 1080p. Ini adalah jenis saluran default.
Transcode preset: Ada satu, standar transcode-preset ladder.
Audio: Untuk rendisi 360p dan di bawahnya, audio ditranskode. Untuk rendisi lainnya, audio asli dilewatkan.
Resolusi Input dan Bitrate Maksimum | Detail Tangga |
---|---|
1080p60 pada 8,5 Mbps |
|
1080p30 pada 8,5 Mbps |
|
Kurang dari 1080p60 dan lebih besar dari 720p60, pada 8,5 Mbps |
|
Kurang dari 1080p30 dan lebih besar dari 720p30, pada 8,5 Mbps |
|
720p60 pada 8,5 Mbps |
|
720p30 pada 8,5 Mbps |
|
Kurang dari 720p30/60 dan lebih besar dari atau sama dengan 480p30/60, pada 8,5 Mbps |
|
Saluran ADVANCED-HD
ADVANCED-HD
saluran ditranskode. Resolusi video tertinggi yang dihasilkan adalah HD, 720p.
Transcode preset: Ada dua, tangga transcode-preset yang dapat dipilih.
Audio: Untuk rendisi 360p dan di bawahnya, audio ditranskode. Untuk rendisi lainnya, audio asli dilewatkan.
Resolusi Input dan Bitrate Maksimum | Detail Tangga |
---|---|
720p60 hingga 1080p60, pada 8,5 Mbps |
Transcode preset: pengiriman bandwidth yang lebih tinggi (default):
Transcode preset: pengiriman bandwidth terbatas:
|
720p30 hingga 1080p30, pada 8,5 Mbps |
Transcode preset: pengiriman bandwidth yang lebih tinggi (default):
Transcode preset: pengiriman bandwidth terbatas:
|
Kurang dari 720p30/60 dan lebih besar dari 480p30/60, pada 8,5 Mbps |
Transcode preset: pengiriman bandwidth yang lebih tinggi (default):
Transcode preset: pengiriman bandwidth terbatas:
|
480p30/60 pada 8,5 Mbps |
Transcode preset: pengiriman bandwidth yang lebih tinggi (default):
Transcode preset: pengiriman bandwidth terbatas:
|
Saluran ADVANCED-SD
ADVANCED-SD
saluran ditranskode. Rendisi yang tersedia dibatasi pada kualitas input, tanpa konversi naik.
Transcode preset: Ada dua, tangga transcode-preset yang dapat dipilih.
Audio: Audio ditranskode.
Resolusi Input dan Bitrate Maksimum | Detail Tangga |
---|---|
480p30/60 hingga 1080p30/60, pada 8,5 Mbps |
Transcode preset: pengiriman bandwidth yang lebih tinggi (default):
Transcode preset: pengiriman bandwidth terbatas:
|
Saluran BASIC
BASIC
saluran ditransmuxed. Sebuah rendisi tunggal diproduksi.
Transcode preset: NA
Audio: Audio ditranskode.
Resolusi Input dan Bitrate Maksimum | Detail Tangga |
---|---|
Lebih besar dari 480p30/60 dan kurang dari atau sama dengan 1080p30/60, pada 3,5 Mbps |
Parameter pengkodean sumber (tanpa tangga) |
480p30/60 pada 1,5 Mbps |
Parameter pengkodean sumber (tanpa tangga) |
Pengaturan Video
Kami merekomendasikan pengaturan berikut. Mereka tersedia untuk sebagian besar perangkat lunak pengkodean video H.264 atau API perangkat keras.
-
Pada encoder video, atur
IDR/Keyframe
ke interval 2 detik (atau 1 detik, untuk latensi yang lebih rendah end-to-end ). -
Tingkat H.264: Utama
-
Perubahan adegan: Mati (lebih disukai)
-
Subsampel kroma: YUV420P
-
CABAC: Lebih disukai
-
ColorSpace: BT.709 (direkomendasikan untuk kompatibilitas maksimum di seluruh HDTV dan layar komputer). Transcoding video Amazon IVS mendukung ColorSpace pass-through; pengguna tingkat lanjut dapat menggunakan ColorSpace video lain dan video full-range.
Pengaturan Audio
Kami mendukung pengaturan berikut:
-
Codec: 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 rate-control untuk encoder. CBR lebih cocok untuk sifat jaringan bandwidth tetap, 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.
Bergantung pada kompleksitas adegan, VBR dapat menghasilkan lonjakan bitrate, yang dapat menyebabkan penurunan bingkai sebelum video mencapai Amazon IVS dan/atau buffering di pemutar klien.
Kami sangat menyarankan Anda hanya menggunakan CBR. Jika Anda menggunakan VBR, aliran Anda akan lebih tunduk pada buffering dan pemutaran yang tidak mulus.
Gunakan Sinyal Progresif
Gunakan aliran sinyal progresif; hindari video yang saling terkait dalam aliran produksi dan/atau pengkodean. Sinyal aliran progresif menghasilkan kualitas pemutaran yang jauh lebih baik yang menampilkan seluruh bingkai sekaligus, menghindari artefak gerakan apa pun 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 menyebabkan aliran tersendat dan tertinggal bagi pemirsa Anda.
Gunakan koneksi kabel. WiFi dan koneksi LTE dapat menjadi jerawatan atau mengalami gangguan atau latensi karena prioritas QoS/antrian paket yang buruk. Bila memungkinkan, andalkan koneksi tertanam untuk streaming.
Rencanakan untuk mengalokasikan bandwidth 50% lebih banyak dari minimum yang dibutuhkan. Overhead ditambahkan untuk mengkompensasi fluktuasi bitrate dalam pengkodean bitstream video.
Gunakan VLAN Internet khusus untuk menyandikan mesin. Menjaga encoder pada jaringan terpisah mencegah efek yang berpotensi mengganggu, termasuk: polusi oleh lalu lintas, hambatan bandwidth dan faktor keamanan yang merugikan.
Keterangan Tertutup
IVS mendukung teks tertutup. Sebagai streamer, jika Anda ingin menawarkan teks kepada audiens Anda, Anda harus mengirimkan data teks dalam format yang diterima, baik yang disematkan di streaming Anda atau di samping streaming Anda, melalui encoder video Anda.
Amazon IVS menerima teks dalam format baris 21 CEA-708/EIA-608 (juga disebut sebagai 608 lebih dari 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 skrip RTMPS/tag AMF0. onCaptionInfo 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 hanya mendukung data teks di bidang CC1 NTSC 1. Mereka tidak mendukung pemutaran teks multi-track.
Saat mentransmisikan melalui RTMPS, muatan harus berisi array ECMA dengan dua pasangan elemen:
-
Sebuah string bernama
type
yang berisi karakter708
. -
Sebuah string bernama
data
yang berisi muatan CEA-708/EIA-608 yang dikodekan base64.
Sebagai 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 embed caption ke “capture 608 Field 1.”
-
Sematkan keterangan dengan onCaptionInfotag RTMPS di grup keluaran.
Untuk informasi selengkapnya, lihat posting blog Menambahkan 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
Setelah menginstal, pilih sumber input audio/video 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
-
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 pengambilan. 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 dimasukkan <IVS-ingest-server>
dan<IVS-stream-key>
, lihat informasi tentang pengaturan perangkat lunak streaming langsung di. Memulai Streaming Latensi Rendah IVS Sebagai contoh:
-
Server tertelan:
rtmps://jds34ksdg3las.global-contribute.live-video.net/app/
-
Kunci aliran:
sk_us-west-2_abcd1234efgh5678ijkl
Streaming dengan Amazon IVS Broadcast SDK
SDK siaran Amazon IVS 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