Como posso fazer um timeout nesse subprocess?
def gravacao(self, id_camera, rtsp, dir, filename, cameras_running):
try:
cameras_running[id_camera] = subprocess.Popen(
['ffmpeg', '-rtsp_transport', 'tcp', '-i', rtsp, '-acodec', 'copy', '-vcodec', 'copy',
dir + '/' + filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print("Start recording on camera:", id_camera)
except:
return False
Quero que após X minutos esse processo morra. Mas não tô entendendo como usar/fazer o timeout.
Testei com:
try:
cameras_running[id_camera].communicate(timeout=10)
except TimeoutError:
cameras_running[id_camera].kill()
cameras_running[id_camera].communicate()
Mas não funcionou, ele espera 10 segundos e não mata a gravação…
[]'s