linux中cat加管道用法,Linux:python脚本中cat到命名管道

我有一个Java程序,它使用帧抓取卡上的视频。这个程序是通过pythonlauncher.py启动的。在

阅读我发现的视频流的最简单的方法是让Java在一个命名管道上读取,这非常有效。所以我的疗程是:$ mkfifo videopipe

$ cat /dev/video1>videopipe

在第二个终端中(因为cat命令被阻塞):

^{pr2}$

我想自动化这个过程。不幸的是,结果总是一样的:Java应用程序启动(通过Java程序中的print语句确认),但是终端停止运行,没有出现异常或其他情况。在

由于这个过程是手动的,我想我在python程序中做了一些错误的事情。为了简化操作,我隔离了管道部分:from subprocess import call, Popen, PIPE, check_call

BASH_SWITCHTO_WINTV = ['v4l2-ctl', '-d /dev/video1', '-i 2', '--set-standard=4']

BASH_CREATE_FIFO_PIPE = ['mkfifo', 'videopipe']

BASH_PIPE_VIDEO = 'cat /dev/video1>videopipe'

def run():

try:

print('running bash commands...')

call(BASH_SWITCHTO_WINTV)

call(BASH_CREATE_FIFO_PIPE)

Popen(['cat', '/dev/video1'], stdout=open('videopipe', 'w'))

except:

raise RuntimeError('An error occured while piping the video')

if __name__ == '__main__':

run()

运行时输出:running bash commands...

Failed to open /dev/video1: No such file or directory

如果您能提供一点帮助,我们将不胜感激

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值