Отключение дочернего процесса для продолжения выполнения программы

Я пытаюсь сделать небольшой скрипт на Python для потоковой передачи с GoPro на ПК

from selenium import webdriver
from subprocess import call
import subprocess, sys
import time
import urllib
import urllib2

pid = subprocess.Popen([sys.executable, "Sel.py"])
call(["ffplay", "-fflags", "nobuffer", "udp://:8554"])
driver = webdriver.Firefox(executable_path='/usr/bin/geckodriver')

while True:
    time.sleep(10)
    driver.get("http://10.5.5.9/gp/gpControl/execute?p1=gpStream&a1=proto_v2&c1=restart") 

Я не очень знаком с Python, и моя цель - открыть ffplay с этими параметрами, а затем выполнить оставшуюся часть программы (перезагрузка страницы каждые 10 секунд). Теперь, когда я запускаю скрипт, он постоянно делает этот системный вызов. Есть ли способ отсоединить выполнение ffplay от выполнения кода на python?

2 ответа

Не следует повторно вызывать команду stream http, вместо этого используйте магическую команду keep alive: http://github.com/konradit/goprostream

"Call" всегда будет ждать завершения вызываемого процесса. Я думаю, вам нужно использовать Popen для обеих операций, так как он вернет управление вашему коду. На https://pythonspot.com/python-subprocess/ есть краткое руководство

Другие вопросы по тегам