--- a/trunk/tubetutor/ffmpeg.py +++ b/trunk/tubetutor/ffmpeg.py @@ -78,7 +78,7 @@ if platform.system() == "Linux": proc_ffmpeg = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, preexec_fn=os.setsid) else: - proc_ffmpeg = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) + proc_ffmpeg = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=False) def record(filename, resolution=""): if resolution != "": @@ -90,17 +90,16 @@ global proc_ffmpeg # Kill remaining ffmpeg instances if proc_ffmpeg: - try: + if platform.system() != "Linux": ctypes.windll.kernel32.TerminateProcess(int(proc_ffmpeg._handle), -1) - finally: - pass - proc_ffmpeg.kill() - if hasattr(os, "killpg"): - os.killpg(os.getpgid(proc_ffmpeg.pid), signal.SIGTERM) - os.killpg(os.getpgid(proc_ffmpeg.pid), signal.SIGKILL) - if hasattr(os, "kill"): - os.kill(proc_ffmpeg.pid, signal.CTRL_C_EVENT) - + proc_ffmpeg.kill() + else: + proc_ffmpeg.kill() + if hasattr(os, "killpg"): + os.killpg(os.getpgid(proc_ffmpeg.pid), signal.SIGTERM) + os.killpg(os.getpgid(proc_ffmpeg.pid), signal.SIGKILL) + if hasattr(os, "kill"): + os.kill(proc_ffmpeg.pid, signal.CTRL_C_EVENT) proc_ffmpeg=None def video_duration(filename):