SSH経由で/ dev / videoを送信できますか?

SSH経由で/ dev / videoを送信できますか?

コンピュータが2台ありますが、1台はデスクトップ私のオフィスに(次がある。カメラ添付)とラップトップウェブの他の場所。

私は通常ウェブカメラの電源を入れてオフィスを見ます。

ssh Office -Y "mplayer tv://device=/dev/video0"

私のラップトップから。私はXforwarding mplayerが好きではありませんが、なぜラップ/dev/videoトップで実行してコンピュータにトンネルすることはできませんか?

sudo mkfifo /dev/video1
ssh Office 'dd if=/dev/video' | sudo dd of=/dev/video1'

それからウェブカメラを見てください(私ラップトップ)

mplayer tv://device=/dev/video1

答え1

帯域幅が低い場合は、ビデオストリームを圧縮することをお勧めします(2020年にも有効です)。

そしてffmpegmplayer

ssh USERNAME@REMOTEHOST ffmpeg -an -f video4linux2 -s 640x480 -i /dev/video0 -r 10 -b:v 500k -f matroska - | mplayer - -idle -demuxer matroska

どこ

  • -anオーディオエンコーディングをオフにします。オーディオが必要な場合は、次のよう-anに置き換えてください-f alsa -ac 1 -i hw:3(ここで、hw:3はhw:0またはhw:1です。...arecord -lデバイスを参照してください)。オーディオのみが必要な場合(ビデオは必要ありません)これを使う)
  • -s 640x480ビデオのxとyの寸法サイズ。
  • -r 10受信したいフレームレートです(フレームレートが低いほど、低いビットレートでより良い画像を提供しますが、より薄暗くなります)。
  • -b:v 500kビットレート 500kbit/s

リモートホストにffmpegをインストールし、ローカルコンピュータにmplayerをインストールする必要があります。

そしてffmpegmpv

ssh USERNAME@REMOTEHOST ffmpeg -an -f video4linux2 -s 640x480 -i /dev/video0 -r 10 -b:v 500k -f matroska - | mpv --demuxer=mkv /dev/stdin

そしてffmpegffplay

ssh USERNAME@REMOTEHOST ffmpeg -an -f video4linux2 -s 640x480 -i /dev/video0 -r 10 -b:v 500k -f matroska - | ffplay -f matroska /dev/stdin

答え2

それは次のとおりです。

dd if=/dev/video0 | mplayer tv://device=/dev/stdin

ローカルで動作します(SOA#1)。また:

ssh localhost dd if=/dev/video0 | mplayer tv://device=/dev/stdin

また

mkfifo test
dd if=/dev/video0 of=test &
mplayer tv://device=test

したがって:

  1. 名前付きパイプを使用しないでください。
  2. 帯域幅の確認

また - 方法いいえ仕事(黒い画面の表示、不明なデバイスに対する苦情など)?

答え3

許可された答えは私には適していません。ddまったく読みません。nc他のポートを確保できない場合は、それはうまくいきません(とにかく動作しませんでした)。cat私にも同じです。

ついに私に役立ったのは受信者側でした。

ssh user@host "ffmpeg  -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle

これの利点は、エンコードされて帯域幅を節約できることです。フォーラム/ウェブサイトの他のどれもDebianコンピュータで私には役に立ちませんでした。


結合するティー視聴と録画を同時に行うことができます:

ssh user@host "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)に保存されます。

答え4

これを行うことができない理由があるかどうかはわかりませんが、実装で見つかった問題の1つは、リモートシステムがそのシステムで/ dev / video1を探しているがユーザーが作成したために見つからないことです。ローカルシステムで確認しました。

やりたいことは次のとおりです。

nc -l 12345 | sudo tee /dev/video > /dev/null &
ssh Office

次に、ローカルシステムのTCPポート12345に移動して、いくつかの操作を試みるように指示します。

関連情報