a/trunk/tubetutor/ffmpeg.py | b/trunk/tubetutor/ffmpeg.py | ||
---|---|---|---|
... |
... |
||
76 | print ("====================================================") |
76 | print ("====================================================") |
77 | print ("cmd: %s" % cmd) |
77 | print ("cmd: %s" % cmd) |
78 | if platform.system() == "Linux": |
78 | if platform.system() == "Linux": |
79 | proc_ffmpeg = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, preexec_fn=os.setsid) |
79 | proc_ffmpeg = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, preexec_fn=os.setsid) |
80 | else: |
80 | else: |
81 | proc_ffmpeg = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) |
81 | proc_ffmpeg = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=False) |
82 | 82 | ||
83 | def record(filename, resolution=""): |
83 | def record(filename, resolution=""): |
84 | if resolution != "": |
84 | if resolution != "": |
85 | start(filename, " %s -y -vf scale=%s -v:q 1" % (grabber, resolution)) |
85 | start(filename, " %s -y -vf scale=%s -v:q 1" % (grabber, resolution)) |
86 | else: |
86 | else: |
... |
... |
||
88 | 88 | ||
89 | def stop(): |
89 | def stop(): |
90 | global proc_ffmpeg |
90 | global proc_ffmpeg |
91 | # Kill remaining ffmpeg instances |
91 | # Kill remaining ffmpeg instances |
92 | if proc_ffmpeg: |
92 | if proc_ffmpeg: |
93 | try: |
93 | if platform.system() != "Linux": |
94 | ctypes.windll.kernel32.TerminateProcess(int(proc_ffmpeg._handle), -1) |
94 | ctypes.windll.kernel32.TerminateProcess(int(proc_ffmpeg._handle), -1) |
95 | finally: |
95 | proc_ffmpeg.kill() |
96 | pass |
96 | else: |
97 | proc_ffmpeg.kill() |
97 | proc_ffmpeg.kill() |
98 | if hasattr(os, "killpg"): |
98 | if hasattr(os, "killpg"): |
99 | os.killpg(os.getpgid(proc_ffmpeg.pid), signal.SIGTERM) |
99 | os.killpg(os.getpgid(proc_ffmpeg.pid), signal.SIGTERM) |
100 | os.killpg(os.getpgid(proc_ffmpeg.pid), signal.SIGKILL) |
100 | os.killpg(os.getpgid(proc_ffmpeg.pid), signal.SIGKILL) |
101 | if hasattr(os, "kill"): |
101 | if hasattr(os, "kill"): |
102 | os.kill(proc_ffmpeg.pid, signal.CTRL_C_EVENT) |
102 | os.kill(proc_ffmpeg.pid, signal.CTRL_C_EVENT) |
103 | |||
104 | proc_ffmpeg=None |
103 | proc_ffmpeg=None |
105 | 104 | ||
106 | def video_duration(filename): |
105 | def video_duration(filename): |
107 | cmd = get_cmd_ffprobe() |
106 | cmd = get_cmd_ffprobe() |
108 | cmd += " -i %s" % filename |
107 | cmd += " -i %s" % filename |