Ste*_*fan 35 ssh video ssh-tunneling
我有两台电脑,我办公室的台式机(连接了网络摄像头)和网络上其他地方的笔记本电脑。
通常我会通过我的网络摄像头通过运行来查看我的办公室
ssh Office -Y "mplayer tv://device=/dev/video0"
Run Code Online (Sandbox Code Playgroud)
从我的笔记本电脑。我不喜欢 Xforwarding mplayer,所以为什么我不能通过/dev/video在我的笔记本电脑上运行它来隧道到我的电脑?
sudo mkfifo /dev/video1
ssh Office 'dd if=/dev/video' | sudo dd of=/dev/video1'
Run Code Online (Sandbox Code Playgroud)
然后观看网络摄像头(在我的笔记本电脑上)
mplayer tv://device=/dev/video1
Run Code Online (Sandbox Code Playgroud)
eri*_*rik 22
如果您的带宽较低,我建议您压缩视频流(在 2020 年仍然有效)。
ffmpeg和mplayerssh USERNAME@REMOTEHOST ffmpeg -an -f video4linux2 -s 640x480 -i /dev/video0 -r 10 -b:v 500k -f matroska - | mplayer - -idle -demuxer matroska
Run Code Online (Sandbox Code Playgroud)
在哪里
-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 KB/s 的比特率您需要在远程主机上安装 ffmpeg 并在本地机器上安装 mplayer。
ffmpeg和mpvssh USERNAME@REMOTEHOST ffmpeg -an -f video4linux2 -s 640x480 -i /dev/video0 -r 10 -b:v 500k -f matroska - | mpv --demuxer=mkv /dev/stdin
Run Code Online (Sandbox Code Playgroud)
ffmpeg和ffplayssh USERNAME@REMOTEHOST ffmpeg -an -f video4linux2 -s 640x480 -i /dev/video0 -r 10 -b:v 500k -f matroska - | ffplay -f matroska /dev/stdin
Run Code Online (Sandbox Code Playgroud)
Mac*_*tka 16
就像是:
dd if=/dev/video0 | mplayer tv://device=/dev/stdin
Run Code Online (Sandbox Code Playgroud)
在本地为我工作(SOA#1)。也是如此:
ssh localhost dd if=/dev/video0 | mplayer tv://device=/dev/stdin
Run Code Online (Sandbox Code Playgroud)
也
mkfifo test
dd if=/dev/video0 of=test &
mplayer tv://device=test
Run Code Online (Sandbox Code Playgroud)
因此:
此外-如何做不工作(显示黑屏,抱怨未知设备等)?
接受的答案对我不起作用。dd根本不会读它。nc如果你不能腾出另一个端口就很糟糕了(无论如何我也根本没有让它工作)。cat也不适合我。
最终对我有用的是在接收端:
ssh user@host "ffmpeg -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle
Run Code Online (Sandbox Code Playgroud)
这样做的好处是它被编码,因此您可以节省带宽。在 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
Run Code Online (Sandbox Code Playgroud)
这将打开 mplayer 进行实时流式传输,并将其同时保存到包含当前日期时间的文件中(示例文件名:2018-11-22_01-22-10_recording.mkv)。
| 归档时间: |
|
| 查看次数: |
36457 次 |
| 最近记录: |