Sementara saya mengembangkan DVR untuk tujuan tertentu, saya melakukan banyak tes streaming H264 terutama menggunakan ffmpeg sebagai server dan VLC sebagai pemain. Tujuannya agak berbeda, karena saya hanya perlu cara untuk melihat pratinjau empat kamera ( perangkat v4l2 ) secara realtime, jadi saya akhirnya streaming video h264 langsung melalui UDP, tetapi dalam proses penelitian saya juga menggunakan VLC sebagai server, jadi mungkin itu bisa berfungsi sebagai titik awal untuk testbench Anda.
Dengan asumsi Anda menggunakan Linux sebagai platform server Anda, baris perintah di bawah ini menggunakan klien baris perintah VLC ( cvlc ) untuk mendapatkan video mentah dari perangkat v4l2 (webcam atau input kartu video), menyandikannya dalam h264 dan kemudian mengiklankan aliran untuk klien RTSP untuk mendapatkan:
cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=mp4v,vb=2048}:rtp{sdp=rtsp://@:8554/video.sdp}'
Jika Anda juga menggunakan VLC sebagai klien, Anda dapat melihat streaming dengan ini ( server akan menjadi nama server atau alamat IP):
vlc rtsp://server:8554/video.sdp
Karena Anda perlu melakukan streaming video ke banyak klien, akan lebih baik menggunakan multicast , sehingga server Anda tidak perlu mengirimkan aliran baru untuk setiap klien yang terhubung. Misalkan alamat multicast Anda adalah 239.255.1.1, Anda hanya perlu menentukannya di bagian RTP:
cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=mp4v,vb=2048}:rtp{sdp=rtsp://@:8554/video.sdp, dst=239.255.1.1}'
Karena file video.sdp dibuat oleh VLC sendiri, Anda cukup menghubungkan dengan cara yang sama seperti sebelumnya, tetapi klien Anda akan mendapatkan aliran dari alamat multicast:
vlc rtsp://server:8554/video.sdp