所以我有一个项目,可以在Python中听按钮输入,并在按下某个按钮后,从相机和外部麦克风录制视频,现在我想停止录制时,我按另一个按钮,然后停止在我的相机和麦克风上录制,然后使用子过程模块致电FFMPEG:
mergeFiles = subprocess.Popen("sudo ffmpeg -i /home/pi/Video/video.mov -i /home/pi/Audio/test.wav -acodec copy -vcodec copy -map 0:v -map 1:a -shortest /media/pi/USB/Output/output.mkv", shell=True)
合并我刚创建的音频和视频文件。
现在,一旦我致电ffmpeg,直到我将过程发送一个从键盘中断的信号后才停止...是否有一种方法可以在合并后立即停止,或者自动终止/一定时间后杀死FFMPEG?
我已经阅读了其他这样的帖子,而解决方案都不适合我。我无法使用PID杀死该过程,因为每次我查找FFMPEG的PID时,它都是不同的ID Mergefiles.kill((对我不起作用。
我认为这样做的原因是因为ffmpeg命令启动了第二个过程,而您没有第二个过程的pid(只是一个猜猜我不是专家(。
我的解决方案是在我想终止FFMPEG时将pkill ffmpeg
称为子过程。(https://en.wikipedia.org/wiki/pkill(。