我有一个脚本,显示一个菜单,提供录制和下载livestreams和VOD的选项。菜单设置如下:
Menu
1) Record
2) Download
3) ...
Choose your option: ...
该脚本调用位于不同脚本中的多个函数来请求、解析、记录或下载流。问题是,调用record函数时,subprocess.Popen会锁定我的菜单,直到流结束。我相信这与声明所有标准输入的函数有关?如何防止菜单锁定
我已经尝试使用subprocess选项stdin=open(os.devnull)
。这不会锁定菜单,但会在流完成后导致僵死进程。使用像Thread(target=record.record,args=[json_data,ua_ffmpeg,username,id]).start()
这样的线程都不起作用
菜单.py
import functions.record as record
...
record.record(json_data,ua_ffmpeg,username,id)
...
记录.py
def record(json_data,ua_ffmpeg,username,id):
...
subprocess.Popen('ffmpeg -icy 0 -headers "%s" -i %s -c copy -loglevel quiet videos/%s/livestreams/%s.ts' % (ua_ffmpeg, hls_url, username, id), shell=True)
提前谢谢
目前没有回答
相关问题 更多 >
编程相关推荐