Můžete použít netcat.
cat /dev/video0 | nc -l 1234
Tím se otevře server na jednom hostiteli naslouchajícím na portu 1234
a odesílání nekomprimovaných a nešifrovaných dat z /dev/video0
na každého klienta, který se připojí. Data můžete přijímat na jiném hostiteli vyvoláním:
nc videohost 1234 | mplayer tv://device=/dev/stdin
kde videohost
je hostitel odesílající data z /dev/video0
.
Řešení netcat mi nefungovalo. Buď ukazuje chybu potrubí, nebo cat
hlášení Invalid input
.
Toto je jediné řešení, které pro mě fungovalo:
ssh [email protected] "ffmpeg -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle
To má tu výhodu, že je kódováno, takže jako bonus ušetříte šířku pásma.
Zkombinujte s tričkem a můžete sledovat a zároveň nahrávat:
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
Tím se otevře mplayer pro živé vysílání a zároveň se uloží do souboru obsahujícího aktuální datum a čas (příklad názvu souboru:2018-11-22_01-22-10_recording.mkv
).
Nahraďte -f matroska
s -f avi
použít více komprimovaný formát avi. Tím ušetříte spoustu zdrojů CPU na zdroji a spoustu šířky pásma pro větší zážitek bez zpoždění.
Vážně bych vám to nedoporučoval. Nedávno jsem zkoušel streamovat avi videa přes přístup k souboru ssh:// a je to bolestivé. Musíte si pamatovat, že video je během tohoto procesu šifrováno a následně dešifrováno.
Pokud váš počítač nezvládne kompresi streamu, pak určitě nebude schopen zvládnout jeho šifrování.
Opravdu chcete mít tcp tunel pro nezpracovaná data:
http://www.vakuumverpackt.de/tcptunnel/