python - 用subprocess terminate沒法結(jié)束進程 求教
問題描述
我想用python采集視頻,打算用ffmpeng.exe 進行視頻錄制,然后定時自動結(jié)束,我是個小白,命令不復雜,就是用subprocess.Popen 啟動ffmpeng命令,進行視頻采集,保存為mp4,我在cmd下面已經(jīng)測試好了,命令無問題,并且用python里面測試也可以錄制,問題就是沒法結(jié)束。。我用subprocess.kill結(jié)束了進程,但僅僅是結(jié)束了cmd進行,cmd開啟的ffmpeg還是在繼續(xù)工作,我不知道改怎么結(jié)束他產(chǎn)生的進程。。
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()
用terminat 或者kill都沒法結(jié)束進程,只能結(jié)束subprocess.Popen產(chǎn)生的cmd進程,cmd執(zhí)行命令產(chǎn)生的ffmpeg1.exe進程沒法停止,如果有仿ctrl+c的終止方法也行,求大神幫忙看看,我后來測試了ping 127.0.0.1 ,同樣cmd可以結(jié)束,ping.exe無法結(jié)束
問題解答
回答1:其實你自身都已經(jīng)得出結(jié)果, 當你殺掉subprocess.Popen只能殺死cmd, 卻不能殺死ffmpeg1, 所以試下直接用windows的命令去殺死吧
kill_command = ’taskkill -f ffmpeg1.exe’cc=subprocess.Popen(kill_command ,shell=True)....(自己補充)
相關(guān)文章:
1. mac OSX10.12.4 (16E195)下Mysql 5.7.18找不到配置文件my.cnf2. mysql - 數(shù)據(jù)庫表中,兩個表互為外鍵參考如何解決3. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現(xiàn)存在即更新應該使用哪個標簽?4. mysql - 數(shù)據(jù)庫建字段,默認值空和empty string有什么區(qū)別 1105. mysql儲存json錯誤6. sql語句 - 如何在mysql中批量添加用戶?7. mysql - 表名稱前綴到底有啥用?8. php - 公眾號文章底部的小程序二維碼如何統(tǒng)計?9. Navicat for mysql 中以json格式儲存的數(shù)據(jù)存在大量反斜杠,如何去除?10. mysql - 怎么生成這個sql表?
