【发布时间】:2013-12-11 03:14:58
【问题描述】:
或者更具体地说,有没有办法从一个命令中获取标准输出,运行另一个命令,然后使用标准输出作为下一个命令的标准输入? 例如 猫文件.txt|运行命令 | grep "foo"
这似乎让人困惑,为什么有人要这样做。这是我想要做的:
我将另一台计算机(远程)上的网络摄像头通过 ssh user@remote ffmpeg -b 100k -an -f video4linux2 -s 320x280 -r 10 -i /dev/video0 -b 100k -f ogg - | vlc -
我正在尝试做相反的事情。因此,从我的网络摄像头(本地)发送一个提要以显示在远程机器上。 它尝试过: ffmpeg -b 100k -an -f video4linux2 -s 320x280 -r 10 -i /dev/video0 -b 100k -f ogg - | ssh user@remote vlc -
这是行不通的,因为在启动 vlc 之前,我必须在远程机器上“导出 DISPLAY=:0.0”。因此,在为该 ssh“会话”导出 DISPLAY 变量之后,我试图将输出从 ffmpeg 获取到远程计算机上的 vlc。 此外,如果有另一种方法可以做到这一点(除了在远程机器上使用 ssh 来使用第一个命令)我很想尝试一下。(如果有一种方法可以做同样的事情,我将不胜感激这些信息,尽管这与问题并不真正相关)提前致谢。 :)
【问题讨论】:
-
您可以尝试将对
vlc的调用封装在设置$DISPLAY的脚本中,尽管这些天您可能需要设置更多$DISPLAY才能连接到X 服务器。跨度> -
你可以试试
ffmpeg -b 100k -an -f video4linux2 -s 320x280 -r 10 -i /dev/video0 -b 100k -f ogg - | ssh user@remote "DISPLAY=:0.0 vlc -"看看它是否有效?在我们得到明确的答案之前可能需要使用 xauth 或其他东西,但请先尝试一下。 -
成功了!惊人的!非常感谢。
标签: ssh stream pipe webcam vlc