GNU/Linux >> Linux の 問題 >  >> Linux

SSH または tcptunnel 経由でビデオ デバイスをパイプしますか?

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/


Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. / dev / stdin、/ dev / stdout、および/ dev / stderrはどの程度移植可能ですか?

  3. / dev/randomと/dev/ urandomをいつ使用するか?

  1. Linux – / dev / xvde1?

  2. /dev/dm-Z デバイスから /dev/sdX および /dev/mapper/mpathY デバイスをマップする方法

  3. /dev/zero から /dev/null への DD ...実際に何が起こるか

  1. カーネル:/dev/kmem と /dev/mem を無効化

  2. Linux が /dev/tty と /dev/tty0 を使用する方法

  3. Linux で /dev/random を /dev/urandom にリンクするのは間違っていますか?