私は2台のコンピューターを持っています。私のオフィスにはdesktop(webcamが接続されている)とlaptopネットワーク上の他の場所。
通常私は実行することによって私のウェブカメラを通して私のオフィスを見ます
ssh Office -Y "mplayer tv://device=/dev/video0"
私のラップトップから。 Xforwarding mplayerが好きではないので、なぜトンネルできないのか/dev/video
私のラップトップでこれを実行して私のPCに?
Sudo mkfifo /dev/video1
ssh Office 'dd if=/dev/video' | Sudo dd of=/dev/video1'
そして、ウェブカメラを見る(私のlaptopで)
mplayer tv://device=/dev/video1
何かのようなもの:
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
したがって:
また、notはどのように機能しますか(黒い画面を表示する、不明なデバイスについて不平を言うなど)?
低帯域幅の場合は、ビデオストリームの圧縮をお勧めします。
ssh USER@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
は500キロビット/秒のビットレートですリモートホストにffmpeg、インストールされているローカルマシンにmplayerが必要です。
VideoLAN Project は、大部分はあなたが望んでいることだけを行うために存在します。
私はそのストリーミング機能を使用していませんが、1台のマシンでの使用では、非常に安定していることがわかりました。
受け入れられた答えは私にとってはうまくいきません。 dd
は単にそれを読みません。 nc
は、別のポートを節約できない場合は悪いです(とにかくそれをまったく機能させませんでした)。 cat
も私にとってはうまくいきませんでした。
最終的に私のために働いたのは、受信側のこれです:
ssh user@Host "ffmpeg -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle
これにはエンコードされているという利点があるため、帯域幅を節約できます。 debianマシンでは、フォーラム/ウェブサイトの他の何も私のために働いていませんでした。
tee と組み合わせると、同時に視聴と記録ができます。
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
)。
あなたがそれを行うことができない理由があるかどうかはわかりませんが、あなたの実装で私が見る1つの問題は、リモートシステムがそのシステムで/ dev/video1を探すが、それを見つけることができないということです。ローカルシステムで作成しました。
私がやることは次のようなものです
nc -l 12345 | Sudo tee /dev/video > /dev/null &
ssh Office
ローカルシステムのTCPポート12345に移動するように指示して、何かを試してください。