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. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?2. python - Scrapy存在內(nèi)存泄漏的問題。3. python - 在使用Pycharm時(shí)經(jīng)常看到如下的樣式,小括號(hào)里紅色的部分是什么意思呢?4. javascript - js中向下取整5. javascript - 關(guān)于<a>元素與<input>元素的JS事件運(yùn)行問題6. javascript - 移動(dòng)端引入js去控制根元素的font-size,但在頁面初始化時(shí)會(huì)有抖動(dòng)的情況,請(qǐng)問有別的優(yōu)化方法么7. javascript - Express 和 request 如何代理遠(yuǎn)程圖片?8. javascript - windows下如何使用babel,遇到了困惑9. javascript - 你們?cè)鯓訉?shí)現(xiàn)前端分頁的?10. javascript - html5的data屬性怎么指定一個(gè)function函數(shù)呢?
