suchen

Heim  >  Fragen und Antworten  >  Hauptteil

python – Der Prozess kann nicht mit der Funktion „Unterprozess beenden“ beendet werden. Irgendwelche Ratschläge?

Ich möchte Python zum Aufnehmen von Videos verwenden und es dann automatisch zu einem festgelegten Zeitpunkt beenden. Der Befehl ist nicht kompliziert Der Befehl ffmpeng, um das Video aufzunehmen und als mp4 zu speichern, wurde getestet und es gibt kein Problem. Der Test kann auch mit Python aufgezeichnet werden. Das Problem ist, dass er nicht beendet werden kann. . Ich habe subprocess.kill verwendet, um den Prozess zu beenden, aber es beendete nur ffmpeg, das von cmd gestartet wurde, und ich weiß nicht, wie ich den von ihm generierten Prozess beenden soll. .

cmd = '''ffmpeg1.exe -i "rtmp://123.123.123.132/live/tv22 live=1" -acodec libmp3lame -vcodec libx264 -y  3.mkv'''

cc=subprocess.Popen(cmd2,shell=True)


print(cc.pid)
time.sleep(15)
cc.terminate()

Die Verwendung von „Terminat“ oder „Kill“ kann nur den vom Unterprozess generierten Prozess „ffmpeg1.exe“ beenden.
Wenn es eine Beendigungsmethode gibt, die Strg+C imitiert. Bitte helfen Sie mir. Bitte helfen Sie,
Ich habe Ping 127.0.0.1 später getestet und derselbe Befehl kann beendet werden, aber ping.exe kann nicht beendet werden

伊谢尔伦伊谢尔伦2805 Tage vor779

Antworte allen(1)Ich werde antworten

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-14 10:53:31

    其实你自身都已经得出结果, 当你杀掉subprocess.Popen只能杀死cmd, 却不能杀死ffmpeg1, 所以试下直接用windows的命令去杀死吧

    kill_command = 'taskkill -f ffmpeg1.exe'
    cc=subprocess.Popen(kill_command ,shell=True)
    ....(自己补充)

    Antwort
    0
  • StornierenAntwort