在Bash脚本中将文件输出重新路由到标准输出

在Bash脚本中将文件输出重新路由到标准输出,bash,shell,scripting,webcam,stdout,Bash,Shell,Scripting,Webcam,Stdout,我有一个脚本,wacaw,它将视频从我的网络摄像头输出到一个文件中。我试图将其基本流式传输到某种显示器上,如vlc、quicktime等,以获得镜像效果 除了修改wacaw的源代码外,还有什么方法可以强制脚本的文件输出到stdout,这样我就可以通过管道将它传输到类似vlc的东西?甚至可以像那样流式传输视频吗 谢谢你的帮助 更新:只是澄清一下: 运行wacaw脚本的格式如下: ./wacaw --video --duration 5 --VGA myFile 并输出一个文件myFile.avi

我有一个脚本,wacaw,它将视频从我的网络摄像头输出到一个文件中。我试图将其基本流式传输到某种显示器上,如vlc、quicktime等,以获得镜像效果

除了修改wacaw的源代码外,还有什么方法可以强制脚本的文件输出到stdout,这样我就可以通过管道将它传输到类似vlc的东西?甚至可以像那样流式传输视频吗

谢谢你的帮助

更新:只是澄清一下:

运行wacaw脚本的格式如下:

./wacaw --video --duration 5 --VGA myFile
并输出一个文件myFile.avi。如果我尝试执行命名管道:

mkfifo pipe
./wacaw --video --duration 5 --VGA pipe

它输出一个文件pipe.avi

您可以使用命名管道。使用mkfifo创建管道,将该文件名交给写入进程,然后使用另一个进程从该文件中读取。我不知道视频是否会以这种方式工作,但其他很多事情都是这样。

您可以使用命名管道。使用mkfifo创建管道,将该文件名交给写入进程,然后使用另一个进程从该文件中读取。我不知道视频是否会以这种方式工作,但许多其他事情都会这样做。

至少在bash中,您可以这样做:

原始命令:

write-to-file-command -f my-file -c
更新的命令:

write-to-file-command -f >(pipe-to-command) -c
写入文件命令将认为>管道到命令是一个只写文件,管道命令将在其标准输入上接收文件数据

如果您只想将输出设为标准输出,您可以这样做

write-to-file-command >(cat)

至少在bash中,您可以这样做:

原始命令:

write-to-file-command -f my-file -c
更新的命令:

write-to-file-command -f >(pipe-to-command) -c
写入文件命令将认为>管道到命令是一个只写文件,管道命令将在其标准输入上接收文件数据

如果您只想将输出设为标准输出,您可以这样做

write-to-file-command >(cat)

您也可以尝试使用tail-F myFile.avi:

您也可以尝试使用tail-F myFile.avi:


我尝试了这个,并更新了我的原始描述。这不太管用,但我真的很高兴我学会了。非常有用!哦,看起来wacaw想要创建一个具有给定名称的文件。啊。也许如果你能用mkfifo pipe.avi?但我打赌不是。它可能会生成一个名为pipe.avi.avi的文件。我尝试了这个,并更新了我的原始描述。这不太管用,但我真的很高兴我学会了。非常有用!哦,看起来wacaw想要创建一个具有给定名称的文件。啊。也许如果你能用mkfifo pipe.avi?但我打赌不是。它可能会生成一个名为pipe.avi.avi的文件。