我正在使用Python 3.5。我正在启动ffmpeg来记录一个文件,但我似乎无法杀死这个过程。我试过这个:
import os
import subprocess
pro = subprocess.Popen(recordcommand, shell=True)
...
do some things; wait for a stop command to come in
...
if msg =='STOP':
pro.kill()
我的过程开始很好,但它永远不会停止。我没有得到任何错误。我检查了API并认为我做得对。谁能告诉我哪里出错了?谢谢!
编辑:修复pro.kill到pro.kill()但仍然无法正常工作。这是我发送的命令:
C:/Users/User/Desktop/ffmpeg-20150928-git-235381e-win64-static/bin/ffmpeg.exe -f dshow -crossbar_video_input_pin_number 2 -i video="ATI AVStream Analog Capture" -f mpegts -fs 16777216 -y D:\Media\tvrecordings\SageSlingBox1onlocalhost4510TVTuner-0.mpgbuf 2>NUL
或许还有什么可以阻止它被杀?我忘了提到我的操作系统是Win 7 64位。
答案 0 :(得分:1)
kill是一个函数,因此必须调用它来做任何事情。
尝试将其更改为:
if msg =='STOP':
pro.kill()
答案 1 :(得分:0)
如果你试图杀死一些进程,试试这个:
import subprocess
import sys
proc = subprocess.Popen(
['sudo', 'kill', args], stdin=subprocess.PIPE)
proc.communicate(sys.argv[1])