2016-07-02 5 views
-5

с моей веб-камерой, я хочу делать снимки периодически, каждые 5 секунд, при потоковой передаче видео в браузер. Как я могу это сделать в Python, с предпочтительным Flask и Opencv?Снимайте фотографии во время потоковой передачи веб-камеры

+0

не написать это самостоятельно, использовать инструменты как '' motion'' –

ответ

0

В Windows очень легко использовать веб-камеру с pygame.

E.g.

import time 
from VideoCapture import Device 
webCam = Device() 
name = 1 
while(True): # Take pictures forever 
    webCam.saveSnapshot(name + '.jpg') # Take picture 
    time.sleep(5) # Wait 5 seconds 
    name = name+1 # We don't want to write over the same image every time 

В Linux это a bit more complicated, но это по-прежнему тот же самый принцип.

Однако, если вы хотели бы сделать это без задержек, это может работать лучше:

import time 
from VideoCapture import Device 
webCam = Device() 
name = 1 
while(True): #Take pictures forever 
    webCam.saveSnapshot(name + '.jpg') #Take picture 
    start = time.time() 
    while not (time.time() - start > 50): 
     pass 
    name = name+1 #We don't want to write over the same image every time 
+0

проблема с использованием time.sleep что он останавливает потоковое вещание. Я хочу как потокового, так и моментального снимка. Я посмотрел на threading.Timer, но я смутился. – Mostafa

+0

Вы можете сделать это: 'start = time.time() while not (time.time() - start> 5): pass' См. Выше, я отредактировал свой ответ –

+0

If это ответили на ваш вопрос, пожалуйста, отметьте мой ответ как правильный. Однако, если вам все еще нужно разъяснение, пожалуйста, укажите это в комментариях. –