我正在使用树莓派,需要 2 个本地流。这是我尝试过的:
试图
raspivid <some options> -o - | tee nc localhost 5100 | nc localhost 5000
问题
我可以接收输出5000
但不能接收输出5100
,我遗漏了什么?
raspivid -o -
将流吐出到标准输出。
答案1
好吧,“tee”不接受命令名称——它接受文件名称。您正在将输出的副本写入当前目录中名为nc
、localhost
和 的文件。5100
如果您要运行两个命令,请检查您的 shell 是否允许使用“进程替换” >( ... )
,并自动传递管道作为文件名:
raspivid <etc> | tee >(nc localhost 5100) | nc localhost 5000
或者,pee
从安装更多工具:
raspivid <etc> | pee "nc localhost 5100" | nc localhost 5000
如果上述选项均不可用,请使用mkfifo
创建命名为其中一个“nc”实例设置管道,然后分别运行输出和输入:
mkfifo /tmp/ncpipe
nc localhost 5100 < /tmp/ncpipe &
raspivid <etc> | tee /tmp/ncpipe | nc localhost 5000