Ada banyak forum dan utas tentang menyingkirkan latensi 5 detik saat menggunakan Pi bersama dengan PI-Cam sebagai kamera pengintai. Banyak tutorial menunjukkan cara menggunakan vlc untuk menyandikan dan mengalirkan gambar menggunakan protokol RTP yang menghasilkan lag ~ 5 detik.
Menurut saya, alasannya adalah bahwa raspivid menyandikan aliran ke H264, sementara VLC harus mendekodekannya lagi dan menyandikan ulang ke RTP apa pun itu. Baris perintahnya terlihat seperti ini:
raspivid -w 640 -h 480 -o - -t 0 |cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264
Bagian pertama memberitahu raspivid untuk mengalirkan video ke output standar:
raspivid -w 640 -h 480 -o - -t 0
Bagian setelah pipa, memberitahu VLC untuk mengambilnya, dan mendekode menggunakan h264:
cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264
Mux-ing dan demux-ing ini cukup banyak sumber daya!
Saya menemukan sumber raspicam di github, dan saya pikir ada sesuatu yang dapat dilakukan dalam metode encoder_buffer_callback (saat ini di baris 848) untuk melewati penyandian. Namun saya tidak pandai c, dan tidak terbiasa dengan encoding video sama sekali, jadi saya tidak tahu harus mulai dari mana.
Di Github saya bisa melihat 330 fork, tetapi tampaknya tidak khusus untuk raspicam (lebih untuk seluruh proyek pengguna lahan). Saya tersesat mencoba menemukan garpu yang menghapus pengodean atau mengimplementasikan sesuatu yang lebih sederhana seperti mjpeg.
Bisakah seseorang dengan pengetahuan codec video dan membantu saya dan trilyun pengguna lainnya untuk menyingkirkan latensi? Mungkin solusinya sudah ada di luar sana di salah satu persimpangan itu, tetapi saya telah menghabiskan waktu berjam-jam mencarinya tanpa hasil.
ps Saya tidak mencari solusi peramban , tapi saya akhirnya ingin melakukan streaming ke Synology, lebih disukai menggunakan streaming mjpeg (tetapi tidak melalui halaman web, melainkan aliran mjpeg standar yang dibangun di sebagian besar ip-cams komersial). Langkah pertama adalah menyingkirkan h264.