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.
sumber
Jawaban:
Itu mungkin bukan yang Anda inginkan dari jawaban, tapi saya tidak merekomendasikan streaming VLC sama sekali ..
Untuk proyek sekolah, saya mencoba beberapa opsi streaming (di RPi juga!):
Menggunakan VLC dan MJPEG (dan beberapa lainnya yang kurang dikenal), saya memiliki latensi antara 3 dan 5 detik ..
Menggunakan GStreamer, NO LATENCY dan dengan resolusi terbaik (dan banyak opsi lainnya)!
Jika Anda tertarik, Anda bisa memeriksanya di sini .
Dan jika Anda akan menggunakannya, inilah pipa saya:
sumber
Beberapa orang telah bekerja keras dalam hal ini sejak saya pertama kali menanyakan pertanyaan ini, dan saat ini ada beberapa pilihan (aneh bahwa belum ada yang menjawab pertanyaan ini). Saya telah mencoba RaspberrIPCam dan berhasil, namun sepertinya paket rtsp memiliki TTL yang sangat pendek atau sesuatu. Setelah Pi terhubung langsung ke router di sebelah PC saya, itu akan bekerja dengan sempurna. Tetapi segera setelah saya menginstal cam di tempat yang saya inginkan, dan mencoba mengakses aliran dengan dua router di antaranya, tidak ada gambar yang akan tiba. Saya memeriksa kode sumber dan menemukan TTL diatur ke maksimum. Saya tidak pernah menemukan jawabannya sepenuhnya.
Saat ini saya akan merekomendasikan RaspberryIPCamera yang memiliki antarmuka pengguna yang bagus (lihat screenshot ) dan bahkan ada gambar SD-card yang sudah jadi untuk itu. Saya sudah mencoba SD-card, tetapi kembali melakukan instalasi manual seperti yang dijelaskan di sini dengan sangat sukses (setup saya saat ini). Instruksi untuk menghubungkannya ke Synology DiskStation juga tersedia dan bekerja dengan baik pada sistem saya. Masalah dengan gambar kartu SD adalah bahwa saya tidak dapat memperluas sistem file ke tingkat penuh dari kartu SD (saya juga ingin menjalankan beberapa hal lain di atasnya untuk mengontrol beberapa relay melalui pin GPIO).
Solusi di atas menggunakan komponen proyek UV4L. Dokumentasi proyek UV4L pada halaman ini juga menyebutkan:
Saya belum mencobanya meskipun begitu (karena saya tidak ingin mengacaukan pengaturan saya saat ini).
sumber