Ssh 有没有一种方法可以通过管道将stdout/stdin传递到命令中?

Ssh 有没有一种方法可以通过管道将stdout/stdin传递到命令中?,ssh,stream,pipe,webcam,vlc,Ssh,Stream,Pipe,Webcam,Vlc,或者更具体地说,有没有一种方法可以从一个命令获取stdout,运行另一个命令,然后将stdout用作下一个命令的stdin? 例如 cat file.txt |运行|命令| grep“foo” 这可能会让人困惑,为什么会有人想这样做。以下是我试图做的: 我将另一台计算机(远程)上的网络摄像头通过 sshuser@remoteffmpeg-b 100k-an-f video4linux2-s 320x280-r10-i/dev/video0-b 100k-f ogg-vlc- 我正试图做相反的事情

或者更具体地说,有没有一种方法可以从一个命令获取stdout,运行另一个命令,然后将stdout用作下一个命令的stdin? 例如 cat file.txt |运行|命令| grep“foo”

这可能会让人困惑,为什么会有人想这样做。以下是我试图做的:

我将另一台计算机(远程)上的网络摄像头通过 sshuser@remoteffmpeg-b 100k-an-f video4linux2-s 320x280-r10-i/dev/video0-b 100k-f ogg-vlc-

我正试图做相反的事情。因此,从我的网络摄像头(本地)发送一个提要以显示在远程机器上。 它试图: ffmpeg-b 100k-an-f video4linux2-s 320x280-r10-i/dev/video0-b 100k-f ogg-sshuser@remotevlc-

这不起作用,因为在启动vlc之前,我必须在远程机器上“export DISPLAY=:0.0”。因此,在导出ssh“会话”的显示变量后,我试图在远程计算机上获取从ffmpeg到vlc的输出。
另外,如果有其他方法可以做到这一点(除了在远程机器上使用ssh来使用第一个命令之外),我很乐意尝试。(如果有一种方法可以做同样的事情,而且不会太滞后,我将非常感谢您提供的信息,尽管这与问题并不相关)提前谢谢。:)

若要将
的输出作为输入传递到
接收器
,则在您的情况下
run\u命令
必须在运行
sink
之前结束:

source | { run_command &>/dev/null; sink; }

您可以尝试在设置
$DISPLAY
的脚本中包装对
vlc
的调用,尽管这些天您可能需要超过
$DISPLAY
的设置才能连接到X服务器。您可以尝试
ffmpeg-b 100k-an-f video4linux2-s 320x280-r 10-i/dev/video0-b 100k-f ogg-ssh吗user@remote“显示器=:0.0 vlc-”
然后看看它是否有效?在我们得到一个明确的答案之前,可能需要使用xauth或其他东西,但请先尝试一下。这很有效!令人惊叹的!非常感谢。我尝试了这个和类似的变体,但我无法通过ssh使其工作。不管怎样,我只是通过:ffmpeg-b 100k-an-f video4linux2-s 320x280-r 10-I/dev/video0-b 100k-f ogg-| ssh获得它user@remote“{export DISPLAY=:0.0&>/dev/null;vlc-;}”对于
ssh
命令,您可以使用。在这种情况下,不需要使用
{}
语法和重定向。我知道。我把这个标记为答案,因为它是作为答案发布的,也是一个有效的答案。我使用的是MarkPlotnic的命令,但我觉得这个命令可能更好地回答了我最初的问题,并且更加通用。