python - 用subprocess terminate沒法結(jié)束進(jìn)程 求教
問題描述
我想用python采集視頻,打算用ffmpeng.exe 進(jìn)行視頻錄制,然后定時(shí)自動(dòng)結(jié)束,我是個(gè)小白,命令不復(fù)雜,就是用subprocess.Popen 啟動(dòng)ffmpeng命令,進(jìn)行視頻采集,保存為mp4,我在cmd下面已經(jīng)測(cè)試好了,命令無問題,并且用python里面測(cè)試也可以錄制,問題就是沒法結(jié)束。。我用subprocess.kill結(jié)束了進(jìn)程,但僅僅是結(jié)束了cmd進(jìn)行,cmd開啟的ffmpeg還是在繼續(xù)工作,我不知道改怎么結(jié)束他產(chǎn)生的進(jì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é)束進(jìn)程,只能結(jié)束subprocess.Popen產(chǎn)生的cmd進(jìn)程,cmd執(zhí)行命令產(chǎn)生的ffmpeg1.exe進(jìn)程沒法停止,如果有仿ctrl+c的終止方法也行,求大神幫忙看看,我后來測(cè)試了ping 127.0.0.1 ,同樣cmd可以結(jié)束,ping.exe無法結(jié)束
問題解答
回答1:其實(shí)你自身都已經(jīng)得出結(jié)果, 當(dāng)你殺掉subprocess.Popen只能殺死cmd, 卻不能殺死ffmpeg1, 所以試下直接用windows的命令去殺死吧
kill_command = ’taskkill -f ffmpeg1.exe’cc=subprocess.Popen(kill_command ,shell=True)....(自己補(bǔ)充)
相關(guān)文章:
1. lucene - java web 現(xiàn)在做搜索功能,用什么比較好呢2. vue.js - npm run dev報(bào)錯(cuò)了,不知道是不是node.js或者npm installed的版本問題3. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過段時(shí)間會(huì)消失是什么情況?4. PHP類屬性聲明?5. javascript - vue引入微信jssdk 配置在哪個(gè)生命周期調(diào)取接口配置?6. javascript - 這種效果是輪播的效果嗎??沒有思路,求解釋。謝謝大家7. objective-c - ios百度地圖定位問題8. 跟著課件一模一樣的操作使用tp6,出現(xiàn)了錯(cuò)誤9. php laravel框架模型作用域10. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)
