Skenario
ApsaraVideo Live mendorong aliran video Real-Time Messaging Protocol (RTMP) dari klien ingest ke Pusat Siaran Langsung. Klien ingest dapat berupa tool ingest atau Push SDK. Pusat Siaran Langsung adalah URL ingest yang disediakan oleh ApsaraVideo Live, seperti video-center.alivecdn.com. Untuk informasi lebih lanjut mengenai metode ingest, lihat Pengaturan dan operasi ingest. Namun, stream ingest dapat gagal meskipun Anda telah mengikuti petunjuk. Dokumen ini menjelaskan masalah umum terkait stream ingest dan menyediakan langkah-langkah troubleshooting.
Troubleshooting
Incorrect client ingest method
Periksa apakah URL dan Stream Name dalam pengaturan aliran Anda sudah benar.
CatatanPengaturan Open Broadcaster Software (OBS) digunakan sebagai contoh. Pengaturan aktual Anda mungkin berbeda.
URL mencakup pusat siaran langsung dan AppName. Nama aliran mencakup StreamName dan parameter QueryString. Parameter ini mencakup parameter vhost dan, jika otentikasi diaktifkan, parameter auth_key.
Atur Stream Type ke Custom Streaming Server. Di URL, masukkan URL ingest, misalnya,
rtmp://push.aliyunlive.com/app/. Di Stream Name, masukkan nama aliran dengan kunci otentikasi, misalnya,stream?auth_key=xxx.Periksa pengaturan tool ingest klien. Tool ingest umum meliputi OBS, ffmpeg, dan Adobe Flash Media Live Encoder. Anda dapat menggunakan tool ini untuk menguji apakah stream ingest berfungsi dengan benar. Jika stream ingest berhasil, periksa adanya masalah pada metode ingest awal Anda.
CatatanUntuk informasi lebih lanjut mengenai pengaturan ingest OBS, lihat Tool ingest OBS.
Jika tool ingest lain berfungsi dengan baik, masalahnya terletak pada pengaturan klien Anda. Bandingkan pengaturannya, identifikasi perbedaan apa pun, lalu sesuaikan.
Non-compliant audio and video encoding
ApsaraVideo Live mensyaratkan H.264 for video streams dan Advanced Audio Coding (AAC) for audio streams. Pastikan format encoding Anda memenuhi persyaratan ini. Jika tidak, masalah dapat terjadi pada protokol streaming yang berbeda.
Gunakan perintah ffmpeg berikut untuk memeriksa format encoding aliran.
ffmpeg -i rtmp://[$Your_Domain]/[$App_Name]/[$Stream_Name][$Your_Domain]: Domain ingest Anda.
[$App_Name]: AppName dalam URL ingest.
[$Stream_Name]: StreamName dalam URL ingest.
Konfirmasi bahwa format encoding aliran Anda memenuhi persyaratan.
D:\常用工具\ffmpeg\bin>ffmpeg -i rtmp://xxx/AppName/StreamName ffmpeg version N-79143-g8ff0f6a Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.3.0 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --ena ble-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enabl e-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopenc ore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --ena ble-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enabl e-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-l ibvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-lib webp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enab le-libzing --enable-lzma --enable-decklink --enable-zlib libavutil 55. 19.100 / 55. 19.100 libavcodec 57. 30.100 / 57. 30.100 libavformat 57. 29.101 / 57. 29.101 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 40.102 / 6. 40.102 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 Metadata: Server Tengine width 720.00 height 540.00 displayWidth 720.00 displayHeight 540.00 duration 0.00 framerate 24.00 videodatarate 300.00 videocodecid 7.00 audiodatarate 62.00 audiocodecid 10.00 via liveproxy010182174197.eu6,livesource010182170179.eu6,liv esource010182170179.eu6,liveproxy010182169150.eu6,cache13.l2nu17-1[328,75,444,MI SS],cache19.l2nu17-1[444,-1,655,MISS],cache7.cn396[713,52,805,MISS],cache6.cn396 [805,2,1006,MISS] begints 23258.00 alilive_streamid dc xxx.cn/AppName/StreamName videocodecreal 0.00 key_ts: Input #0, flv, from 'rtmp://dc xxx.cn/AppName/StreamName': Metadata: Server : Tengine displayWidth : 720 displayHeight : 540 fps : 24 profile : level : via : liveproxy010182174197.eu6,livesource010182170179.eu6,lives ource010182170179.eu6,liveproxy010182169150.eu6,cache13.l2nu17-1[328,75,444,MISS ],cache19.l2nu17-1[444,-1,655,MISS],cache7.cn396[713,52,805,MISS],cache6.cn396[8 05,2,1006,MISS] begints : 23258 alilive_streamid: dc xxx.cn/AppName/StreamName videocodecreal : 0 Duration: 00:00:00.00, start: 20.843000, bitrate: N/A Stream #0:0: Video: h264 (High), yuv420p, 720x540 [SAR 1:1 DAR 4:3], 307 kb/ s, 24.42 fps, 24 tbr, 1k tbn, 48 tbc Stream #0:1: Audio: aac (LC), 22050 Hz, stereo, fltp, 63 kb/sConcurrent ingest limit reached
Layanan ApsaraVideo Live membatasi jumlah domain siaran langsung untuk setiap pengguna dan jumlah aliran ingest bersamaan untuk satu domain. Satu akun dapat membuat hingga 20 domain siaran langsung. Jika pusat siaran langsung berada di Beijing, Shanghai, atau Shenzhen, setiap nama domain yang dipercepat mendukung hingga 300 aliran siaran langsung original (tidak dikodekan ulang) secara bersamaan secara default. Setiap domain siaran langsung dibatasi hingga 300 aliran ingest bersamaan. Untuk pusat siaran langsung lainnya, setiap nama domain yang dipercepat mendukung hingga 50 aliran siaran langsung original (tidak dikodekan ulang) secara bersamaan secara default. Jika jumlah aliran ingest bersamaan melebihi batas, stream ingest akan gagal.
Selain itu, jika transkoding real-time dikonfigurasi untuk AppName dan pusat siaran langsung berada di Beijing, Shanghai, atau Shenzhen, setiap domain mendukung hingga 300 aliran yang telah dikodekan ulang secara bersamaan. Artinya, satu domain dapat menghasilkan maksimal 300 aliran yang telah dikodekan ulang secara bersamaan. Untuk pusat siaran langsung lainnya, setiap domain mendukung hingga 50 aliran yang telah dikodekan ulang secara bersamaan. Jika jumlah aliran ingest bersamaan melebihi batas ini, stream ingest akan gagal.
Untuk melihat jumlah aliran ingest bersamaan saat ini, lihat Kelola aliran siaran langsung.
CatatanUntuk informasi lebih lanjut mengenai batas stream ingest dan cara menambahkannya, lihat Batas.
Stream Ingest Is Disabled for This Live Stream
ApsaraVideo Live memungkinkan Anda menonaktifkan stream ingest untuk AppName dan StreamName tertentu. Jika URL ingest berada dalam blacklist, stream ingest akan gagal. Jika stream ingest gagal, pastikan URL ingest tidak berada dalam blacklist.
Periksa apakah aliran siaran langsung diblokir di halaman Streams di Konsol. Untuk informasi lebih lanjut, lihat Kelola aliran siaran langsung.
Panggil operasi DescribeLiveStreamsBlockList untuk mengambil informasi mengenai aliran siaran langsung yang diblokir untuk domain tertentu.
Untuk melanjutkan aliran siaran langsung:
Di halaman Streams di Konsol, klik Enable pada baris aliran siaran langsung target.
Panggil operasi ResumeLiveStream untuk melanjutkan aliran siaran langsung.
Authentication failed
Setelah Anda mengaktifkan otentikasi, URL ingest dan URL streaming untuk domain tersebut harus menyertakan parameter auth_key. Jika parameter otentikasi telah kedaluwarsa atau parameter signature salah, stream ingest akan gagal. Untuk informasi lebih lanjut, lihat Otentikasi URL ingest dan streaming.
Network error
Klien ingest mendorong aliran siaran langsung ke pusat siaran langsung melalui RTMP. Masalah pada jalur jaringan ini dapat menyebabkan stream ingest gagal. Periksa dua hal berikut terlebih dahulu:
Di klien ingest,
pingURL ingest untuk menguji kehilangan paket. Jika terjadi kehilangan paket, hubungi ISP Anda untuk investigasi lebih lanjut.Di klien ingest, gunakan perintah
telnetuntuk menguji apakah Anda dapat terhubung ke Port 1935 domain ingest. Jika koneksi gagal, coba uji dari lingkungan jaringan yang berbeda untuk menentukan apakah masalah berasal dari jaringan lokal Anda.
Ingest timestamp uses an extension field
Ingest klien menambahkan dua timestamp ke setiap frame video dan audio: presentation timestamp (pkt_pts) dan decoding timestamp (pkt_dts). Gunakan perintah
ffprobeuntuk melihatnya. Contohnya:ffprobe -show_frames rtmp://live.zhibotest.com/AppName/StreamName. Hasil contoh ditampilkan sebagai berikut:Jika timestamp
pkt_ptsataupkt_dts(dalam milidetik) melebihi 31 bit saat dikonversi ke biner, masalah ketidakcocokan klien dapat terjadi.widthdanheightmenunjukkan resolusi video.pict_typemenunjukkan jenis frame (frame video diklasifikasikan sebagai frame B, P, atau I; hanya frame video yang memiliki properti ini).[/FRAME] [FRAME] media_type=video stream_index=1 key_frame=0 pkt_pts=100766 pkt_pts_time=100.766000 pkt_dts=100766 pkt_dts_time=100.766000 best_effort_timestamp=100766 best_effort_timestamp_time=100.766000 pkt_duration=33 pkt_duration_time=0.033000 pkt_pos=255797 pkt_size=10406 width=1280 height=720 pix_fmt=yuv420p sample_aspect_ratio=N/A pict_type=B coded_picture_number=23 display_picture_number=0 interlaced_frame=0 top_field_first=0 repeat_pict=0 color_range=unknown color_space=unknown color_primaries=unknown color_transfer=unknown chroma_location=left [/FRAME] [FRAME] media_type=audioTimestamp dapat dikonversi ke nilai biner. Jika timestamp lebih besar dari 24 bit, periksa di klien ingest apakah frame video melebihi ukuran maksimum dan berisi beberapa chunk. Jika iya, modifikasi klien ingest untuk add the timestamp to each chunk. Atau, Anda dapat mengatasi masalah ini dengan memaksa nilai pts yang lebih kecil.
Other issues
Jika metode sebelumnya tidak menyelesaikan masalah, ajukan tiket. Untuk informasi cara mengajukan tiket, lihat Hubungi kami. Berikan informasi berikut agar insinyur dukungan teknis kami dapat membantu Anda menyelesaikan masalah:
URL ingest dan URL streaming.
Metode ingest, termasuk tool yang digunakan dan prosedurnya.
Pesan kesalahan yang muncul di klien ingest saat stream ingest gagal.
Cuplikan layar hasil ping ke alamat IP domain ingest.
Cuplikan layar hasil penggunaan telnet untuk terhubung ke Port 1935 domain ingest.