Anda dapat menggunakan netcat.
cat /dev/video0 | nc -l 1234
Ini akan membuka server pada satu host yang mendengarkan pada port 1234
dan mengirim data yang tidak terkompresi dan tidak terenkripsi dari /dev/video0
ke setiap klien yang terhubung. Anda dapat menerima data di host lain dengan mengaktifkan:
nc videohost 1234 | mplayer tv://device=/dev/stdin
di mana videohost
adalah host yang mengirimkan data dari /dev/video0
.
Solusi netcat tidak berhasil untuk saya. Itu menunjukkan kesalahan pipa, atau cat
melaporkan Invalid input
.
Ini adalah satu-satunya solusi yang berhasil untuk saya:
ssh [email protected] "ffmpeg -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle
Ini memiliki keuntungan karena dikodekan, jadi Anda menghemat bandwidth sebagai bonus.
Kombinasikan dengan tee dan Anda dapat menonton dan merekam secara bersamaan:
ssh [email protected] "ffmpeg -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | tee $(date +%Y-%m-%d_%H-%M-%S)_recording.mkv | mplayer - -idle
Ini akan membuka mplayer untuk streaming langsung dan menyimpannya ke file yang berisi waktu saat ini pada waktu yang sama (contoh nama file:2018-11-22_01-22-10_recording.mkv
).
Ganti -f matroska
dengan -f avi
untuk menggunakan format avi yang lebih terkompresi. Ini akan menghemat banyak sumber daya CPU pada sumbernya dan banyak bandwidth untuk pengalaman yang lebih bebas lag.
Saya serius akan menyarankan Anda menentang ini. Saya baru-baru ini mencoba streaming video avi melalui akses file ssh:// dan itu menyakitkan. Anda harus ingat bahwa video sedang dienkripsi dan kemudian didekripsi selama proses ini.
Jika komputer Anda tidak dapat menangani pengompresan aliran, maka tentu tidak akan dapat menangani pengenkripsiannya.
Sungguh, Anda hanya ingin memiliki terowongan tcp untuk data mentah:
http://www.vakuumverpackt.de/tcptunnel/