#python #subprocess #pipe
Вопрос:
Я создал скрипт на python, который использует прямые трансляции по потоковой ссылке и передает их с помощью ffmpeg для потоковой передачи в другие места назначения. Однако из-за колебаний сети или других факторов иногда один из двух подпроцессов завершается сбоем, и канал прерывается, но перезапуск его вручную решит проблему.
Интересно, есть ли способ, с помощью которого скрипт может автоматически обнаружить сломанный канал и перезапустить его автоматически? Это и есть код
import subprocess
_streamlink_process = subprocess.Popen(('C:/Program Files (x86)/Streamlink/bin/streamlink.exe', SomeArgs), stdout=subprocess.PIPE)
_ffmpeg_process = subprocess.Popen(('ffmpeg/ffmpeg.exe', SomeOtherArgs ),stdin=_streamlink_process.stdout)
Я пытался запускать поток каждые 5 секунд, но это приводит к тому, что результирующий поток имеет скачки задержки.
Чего я хочу достичь:
While True:
if (pipe is broken!!!):
restart the subprocesses!
Комментарии:
1. знаете ли вы функцию
try/except
в Python?