Отключение дочернего процесса для продолжения выполнения программы - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь создать небольшой скрипт на 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 ]

0 голосов
/ 20 мая 2018

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

0 голосов
/ 19 мая 2018

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

есть краткое руководство
...