Я не могу одновременно передавать поток с камеры моего RBP3 и одновременно записывать в файл, используя python - PullRequest
0 голосов
/ 24 сентября 2018

Я знаю, как сохранить в файл, используя приведенный ниже код (и отметку времени канала), и я знаю, как выполнять потоковую передачу с помощью uv4l, но я слишком плох, чтобы сделать это одновременно.

import time
time.sleep(60)
import picamera
import datetime as dt

camera = picamera.PiCamera()
camera.resolution = (640, 480)
#camera.vflip = True
camera.led = False

x = 0

while True:


    bideoname = "/media/pi/cam/" + dt.datetime.now().strftime('%Y-%m-%d-%H') + ".h264"
    camera.annotate_background = picamera.Color('black')
    camera.annotate_text = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    #camera.start_preview()
    camera.start_recording(bideoname)
    start = dt.datetime.now()
    while (dt.datetime.now() - start).seconds < 3600:
        camera.annotate_text = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        camera.wait_recording(0.2) 


    camera.stop_recording()
    x = x+1

Iпредставьте, что я использовал бы колбу для создания локального веб-сайта для потоковой передачи.

Я просмотрел интернет-сайты вверх и вниз, и этот пример, похоже, является самым близким решением Дейва Джонса, но я не могу, если сокет можетсвязаться с браузером:

https://raspberrypi.stackexchange.com/questions/27041/record-and-stream-video-from-camera-simultaneously

Также есть этот код, который передает поток с камеры на страницу, но не упоминает о том, как одновременно выполнять запись:

from flask import Flask, render_template, Response

# Raspberry Pi camera module (requires picamera package, developed by Miguel Grinberg)
from camera_pi import Camera

app = Flask(__name__)

@app.route('/')

def index():
    """Video streaming home page."""
    return render_template('index.html')

def gen(camera):
    """Video streaming generator function."""
    while True:
        frame = camera.get_frame()
        yield (b'--frame\r\n'
               b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')

@app.route('/video_feed')
def video_feed():
    """Video streaming route. Put this in the src attribute of an img tag."""
    return Response(gen(Camera()),
                    mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port =80, debug=True, threaded=True)

А может, это все неправильно, и есть более простое решение?

Спасибо за помощь.

...