Maison > Questions et réponses > le corps du texte
Je souhaite utiliser Python pour capturer des vidéos. Je prévois d'utiliser ffmpeng.exe pour enregistrer la vidéo, puis la terminer automatiquement à une heure programmée. Je suis novice et la commande n'est pas compliquée. J'utilise simplement subprocess.Popen pour démarrer. la commande ffmpeng pour capturer la vidéo et l'enregistrer au format mp4. Je suis La commande cmd a été testée et il n'y a aucun problème, et le test peut également être enregistré en utilisant python. Le problème est qu'il ne peut pas être terminé. . J'ai utilisé subprocess.kill pour terminer le processus, mais cela n'a mis fin qu'à cmd. ffmpeg démarré par cmd a toujours continué à fonctionner. Je ne sais pas comment terminer le processus qu'il a généré. .
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()
L'utilisation de termat ou kill ne peut pas terminer le processus. Elle ne peut mettre fin qu'au processus cmd généré par subprocess.Popen. Le processus ffmpeg1.exe généré par la commande d'exécution cmd ne peut pas être arrêté
S'il existe une méthode de terminaison qui imite ctrl+c, s'il vous plaît, aidez-moi. S'il vous plaît, aidez-moi,
J'ai ensuite testé ping 127.0.0.1, et le même cmd peut être terminé, mais ping.exe ne peut pas être terminé
女神的闺蜜爱上我2017-06-14 10:53:31
En fait, vous avez déjà atteint le résultat vous-même. Tuez-le simplement lorsqu'on vous ordonne de le tuersubprocess.Popen
只能杀死cmd
, 却不能杀死ffmpeg1
, 所以试下直接用windows
kill_command = 'taskkill -f ffmpeg1.exe'
cc=subprocess.Popen(kill_command ,shell=True)
....(自己补充)