netcat を使用できます。
cat /dev/video0 | nc -l 1234
これにより、ポート 1234
でリッスンしている 1 つのホストでサーバーが開きます /dev/video0
からの非圧縮および非暗号化データの送信 接続するすべてのクライアントに。以下を呼び出すことにより、他のホストでデータを受信できます:
nc videohost 1234 | mplayer tv://device=/dev/stdin
どこで videohost
/dev/video0
からデータを送信するホストです .
netcat ソリューションはうまくいきませんでした。パイプエラー、または cat
のいずれかを示しています 報告 Invalid input
.
これは私のために働いた唯一の解決策です:
ssh [email protected] "ffmpeg -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle
これにはエンコードされるという利点があるため、ボーナスとして帯域幅を節約できます。
Tee と組み合わせると、視聴と録画を同時に行うことができます:
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
これにより、ライブ ストリーミング用に mplayer が開き、同時に現在の日時を含むファイルに保存されます (ファイル名の例:2018-11-22_01-22-10_recording.mkv
).
-f matroska
を置き換えます -f avi
で より圧縮された avi 形式を使用します。これにより、ソースの CPU リソースが大幅に節約され、帯域幅が大幅に節約され、ラグのない体験が得られます。
これに対して真剣にアドバイスします。最近、ssh:// ファイル アクセスを介して avi ビデオをストリーミングしようとしましたが、それは苦痛でした。このプロセスでは、ビデオが暗号化されてから復号化されることを覚えておく必要があります。
お使いのコンピュータがストリームの圧縮を処理できない場合、ストリームの暗号化は確実に処理できません。
本当に、生データを tcp トンネルしたいだけです:
http://www.vakuumverpackt.de/tcptunnel/