#!/usr/bin/env python3 import subprocess, os, sys from constants import * pid_path = os.path.join("/tmp", PIDFILE) if os.path.exists(pid_path): with open(pid_path, "r") as pid_file: check_pid = pid_file.read().strip() try: os.kill(int(check_pid), 0) print(f"ffmpeg is already running. Delete {pid_path} if it actually isn't.") sys.exit(0) # apparently ffmpeg is running, just quit and do nothing except OSError: pass proc = subprocess.Popen([ "/usr/bin/ffmpeg", "-i", WEBCAM_STREAM_URL, "-video_size", "1280x720", "-an", "-f", "flv", "-c:v", "libx264", "-b:v", "500k", "-preset", "veryfast", "-bufsize", "1M", "-maxrate", "500k", TWITCH_SERVER ], stderr=open(os.devnull, "w")) # write pid into pidfile so we can kill the process later with open(pid_path, "w") as pid_file: pid_file.write(str(proc.pid)) print(f"Wrote PID {proc.pid} into pidfile")