通过隧道将 Netcat 视频流传输至 mplayer

通过隧道将 Netcat 视频流传输至 mplayer

我正在通过网络发送视频流,并且想使用 ssh 对其进行加密。下面这个解决方案有效:

在机器 1 上我运行

./capture | nc 192.168.1.65 5001

在机器2上我运行

netcat -l -p 5001 | mplayer -fps 30 -cache 1024 -

这给了我视频。

然而,尝试让机器 1 监听连接是行不通的:

在机器 1 上我运行

./capture | netcat -l 3333 -vvv

在机器2上我运行

netcat 192.168.1.85 3333 | mplayer -fps 31 -cache 1024 –

mplayer 告诉我:

MPlayer 1.2-4.2.1 (C) 2000-2015 MPlayer 团队

Playing –.
File not found: '–'
Failed to open –.
No bind found for key '0       '.


Exiting... (End of file)
write(stdout): Broken pipe

问题1:为什么反过来就不行

问题 2:我设置了 ssh 密钥,如何通过 ssh 发送视频流?

谢谢

答案1

问题1的答案:

mplayer 抱怨说,File not found: '–'即使它应该读取标准输入。这与 netcat 或网络完全无关。问题在于命令行解释。如果只有一个破折号字符-(十六进制代码 2D),则 mplayer 读取标准输入。但命令行包含字符(十六进制代码96)。这些角色的视觉相似性纯属巧合。

问题2的答案:

这是一个简单的用例,有大量的答案和示例如何通过 ssh 建立隧道。例如ssh隧道解释很好地介绍了如何使用 ssh 进行隧道传输。

相关内容