FFmpeg boleh menerbitkan sumber ujian RTMP ke titik akhir yang ditetapkan, tetapi arahan yang selesai bukanlah hasil penerimaan. Gunakan input yang diketahui, lindungi URL dan kunci, kemudian sahkan aktiviti penerbit, media yang dinyahkodkan dan laluan penerima yang dipilih.
Pilih mod akses terlebih dahulu
Dalam mod terkawal, Penerbit dan Penerima ialah peranan berasingan pada nama strim yang sama dan telah dikonfigurasikan, serta boleh menggunakan URL RTMP yang sama. Dalam mod Tetamu, buka titik akhir dengan sengaja dan gunakan nama strim yang tidak kosong; penerima mesti menggunakan nama yang sama.
Sebelum menerbitkan
Dapatkan URL penerbitan RTMP dan kunci strim daripada penggunaan. Jangan tampal kunci sebenar ke dalam sejarah shell, tiket atau artikel. Sahkan binaan FFmpeg anda menyediakan sokongan RTMP: dokumentasi protokol FFmpeg menerangkan pilihan protokol; dokumentasi formatnya merangkumi tingkah laku muxer.
ffmpeg -protocols | grep rtmp
Hasil yang dijangka: arahan menyenaraikan varian protokol RTMP yang disokong oleh binaan itu. Jika tidak, sesuaikan ujian dengan binaan yang dipasang dan jangan andaikan pakej tersebut menyertakan protokol itu.
Terbitkan fail pada kadar masa nyata
ffmpeg -re -stream_loop -1 -i input.mp4 -c copy -f flv "rtmp://INGEST_HOST:PORT/APP/STREAM_NAME_OR_KEY"
Hasil yang dijangka: FFmpeg terus melaporkan kemajuan bingkai dan bukannya menghantar fail sepantas yang dibenarkan storan. -re membaca fail pada kadar asalnya untuk ujian terhad ini. Gantikan pemegang tempat dengan nilai yang dikeluarkan untuk pendengar; jangan ubah laluan aplikasi atau kunci.
Transkod apabila kontrak output memerlukannya
ffmpeg -re -stream_loop -1 -i input.mov -c:v libx264 -pix_fmt yuv420p -g 60 -c:a aac -ar 48000 -b:a 128k -f flv "rtmp://INGEST_HOST:PORT/APP/STREAM_NAME_OR_KEY"
Hasil yang dijangka: penerima melihat penerbit berterusan dengan video dan audio yang boleh dinyahkodkan. Ini ialah contoh, bukannya saranan pengekodan sejagat: pilih kadar bingkai, selang GOP/bingkai utama, kadar bit, resolusi dan parameter audio mengikut penerima sebenar serta aliran kerja penghantaran.
Sahkan di pelayan, kemudian pada hasil yang dimaksudkan
- Sahkan RTMP Server melaporkan penerbit yang dijangka dan kadar bit masuk.
- Periksa gambar dan audio daripada penerima atau titik pemantauan yang dikonfigurasikan.
- Uji satu output hiliran yang dimaksudkan: rakaman, laluan atau pemain pelayar.
- Hentikan proses sekali dan sahkan keadaan penerima serta pelan pemulihan.
Untuk peranti tangkapan langsung, gantikan input fail dengan sintaks input FFmpeg yang didokumenkan dan kekalkan semakan penerimaan di bahagian pelayan yang sama. Elakkan gelung sambung semula automatik sehingga anda tahu cara pendengar mengendalikan sesi pendua; gelung boleh mengaburkan ralat berguna yang pertama.
Pilih protokol titik akhir yang dibekalkan
Gunakan protokol titik akhir yang dibekalkan untuk tugasan ini. Callaba RTMP Server menyediakan pendengar, peraturan akses dan paparan aktiviti; tontonan pelayar menggunakan output yang dikonfigurasikan secara berasingan.
Konfigurasi berkaitan
Konfigurasikan pendengar dalam Callaba RTMP Server, gunakan panduan pengendali untuk semakan akses dan status, atau ikuti RTMP ke HLS apabila hasil yang dikehendaki ialah penghantaran pelayar.
Penghantar dan penerima diagnostik tempatan
ffmpeg -re -f lavfi -i testsrc2=size=1280x720:rate=30 -f lavfi -i sine=frequency=1000:sample_rate=48000 -c:v libx264 -pix_fmt yuv420p -g 60 -c:a aac -b:a 128k -f flv "rtmp://INGEST_HOST:PORT/APP/STREAM_NAME_OR_KEY"
Hasil yang dijangka: FFmpeg melaporkan bingkai video pada kira-kira 30 fps dan satu strim audio; Callaba melaporkan kadar bit input. Nilai GOP 60 menghasilkan bingkai utama setiap dua saat pada 30 fps, titik mula yang praktikal untuk aliran kerja segmen dua saat—bukan tetapan pelayan yang wajib.
Salin hanya selepas memeriksa input: ffprobe -v error -show_entries stream=codec_name,codec_type -of default=nw=1 input.mp4. Gunakan output ini untuk membandingkan codec input dan butiran audio dengan kontrak penerima yang didokumenkan. Penyalinan munasabah hanya selepas kedua-duanya sepadan. Untuk penerima diagnostik, ffplay -fflags nobuffer "rtmp://RECEIVER_HOST:PORT/APP/STREAM_NAME_OR_KEY" sepatutnya membuka gambar dan nada selepas penerima bersambung. Rujuk sumber penapis FFmpeg untuk testsrc2 dan sine.
Langkah seterusnya
Konfigurasikan pendengar dalam Callaba RTMP Server, kemudian sahkan akses dan aktiviti dalam panduan pengendali.