Wyłączenie procesu ffmpeg.exe.

Wyłączenie procesu ffmpeg.exe.
X3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 310
0
Kopiuj
t = threading.Thread(target=Play())
 t.daemon = True
t.start()
t.join()

def Play():
command = 'ffmpeg.exe  -user-agent "' + UA + '"  -i "' + link + '" -acodec copy -vcodec copy -f mpegts pipe:| "'+ config.player + '"  -'

CREATE_NO_WINDOW = 0x08000000
subprocess.call(command,shell=True,creationflags=CREATE_NO_WINDOW)

ffmpeg działa w ten sposób, że po jamiś czasie uruchamia odtwarzacz. Jak zrobić, aby po wyłączeniu dtwarzacza wyłączyć ffmpeg? A najlepiej cały wątek.

sugar_hiccup
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 176
0
Kopiuj
t.daemon = True
t.start()
t.join()

Ogólnie joinowanie daemonów to nie jest dobra praktyka. Da się, ale cały cel daemonów to właśnie to, że oznaczasz je jako takie, żeby nie martwić się ich joinowaniem, a program jak się kończy, to ubija też daemony.

ffmpeg działa w ten sposób, że po jamiś czasie uruchamia odtwarzacz. Jak zrobić, aby po wyłączeniu dtwarzacza wyłączyć ffmpeg?

Zamiast subprocess.call użyj subprocess.Popen, a potem użyj na otwartym procesie metody .kill().

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.