gpt4 book ai didi

python - 终止子进程的命令执行

转载 作者:行者123 更新时间:2023-12-04 23:09:27 25 4
gpt4 key购买 nike

我有一个 python 脚本,它监听特定的流并像这样记录它:

subprocess.call(['ffmpeg', '-y', '-i', 'udp://streamurl:streamport', '-acodec', 'copy', '-f', 'mp3', 'filename.mp3'])

它还检查端口 7777 上的 tcp 连接(当流处于事件状态时,它连接到我电脑上的此端口)我想在每次端口 7777 上的连接关闭时终止子进程命令。我怎样才能做到这一点?

最佳答案

from subprocess import Popen, STDOUT, PIPE
from time import sleep

def connected(sock):
try:
sock.send(b'')
except:
return False
return True

handle = Popen(['ffmpeg', '-y', '-i', 'udp://streamurl:streamport', '-acodec', 'copy', '-f', 'mp3', 'filename.mp3'], shell=False, stdout=PIPE, stdin=PIPE, stderr=STDOUT)

output = ''
while handle.poll() is None and connected(socket): # No exit code given, ergo command still running
output += handle.stdout.readline()
sleep(0.025)

if not connected(socket):
handle.terminate()

output += handle.stdout.read()
handle.stdout.close()
handle.stdin.close()
print(output)

备注 :我不知道“套接字”是什么,但我假设只是一个普通的套接字。
我想指出,我绝不是一个完美的程序员,但这会让你知道你需要做什么,尽管这并不完美:)

关于python - 终止子进程的命令执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21983375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com