Transmisión de vídeo con la cámara Raspberry Pi

La Raspberry Pi ha revolucionado la forma en que podemos crear proyectos de tecnología de bajo costo y alto rendimiento. Una de las funciones más interesantes de esta mini computadora es la capacidad de transmitir vídeo en tiempo real a través de su cámara integrada. En este artículo, exploraremos cómo aprovechar esta función y llevar la transmisión de vídeo a un nuevo nivel con la Raspberry Pi. ¡Sigue leyendo para descubrir todo lo que necesitas saber para comenzar a transmitir vídeo con tu Raspberry Pi!

En esta publicación, le mostraremos cómo transmitir video usando una Raspberry Pi y una cámara Raspberry Pi: cómo transmitir video en vivo a una página web a la que puede acceder desde cualquier dispositivo que tenga un navegador y la misma red que el Pi. está conectado. Esto resulta útil, por ejemplo, para utilizarlo con una cámara de vigilancia doméstica.

Transmisión de vídeo con la cámara Raspberry Pi

Requisitos:

  • ya los conoces Frambuesa Pi Tablero: lea Introducción a Raspberry Pi
  • Tu Raspberry Pi debe tener instalado el sistema operativo Raspbian o Raspbian Lite
  • Esta publicación proporciona una introducción al módulo Raspberry Pi Camera V2.

Activar el módulo de cámara Rasperry Pi

si tu el Módulo de cámara Raspberry Pinecesitas activar el software de la cámara en tu Raspberry Pi para usarlo. Ir al entorno de escritorio Configuración de frambuesa pi ventana debajo del Ajustes abre eso Interfaces y activarlo cámara como se muestra en la siguiente figura.

Transmisión de vídeo con la cámara Raspberry Pi

o en Terminal En la ventana, ingrese el siguiente comando:

pi@raspberry:~ $ sudo raspi-config

Deberías ver la herramienta de configuración del software Raspberry Pi. Elige el Opciones de interfaz:

Transmisión de vídeo con la cámara Raspberry Pi

Habilite la cámara y reinicie su Pi:

Transmisión de vídeo con la cámara Raspberry Pi

Encuentra la dirección IP de la Raspberry Pi

Para acceder a su servidor web de transmisión de video, necesita conocer la dirección IP de su Raspberry Pi. Para hacer esto, use el siguiente comando:

pi@raspberry:~ $ ifconfig

Recibirá una gran cantidad de información, incluida su dirección IP de Raspberry Pi. En mi caso la dirección IP de RPi es 192.168.1.112.

Transmisión de vídeo con la cámara Raspberry Pi

Conectando la cámara

Conectar el módulo de cámara Raspberry Pi es fácil. Con el Pi apagado, conecte la cámara al puerto Pi CSI como se muestra en la siguiente imagen. Asegúrese de que la cámara esté conectada en la orientación correcta, de modo que las letras azules de la correa queden hacia arriba, como se muestra en la siguiente imagen.

Transmisión de vídeo con la cámara Raspberry Pi

Escribe el guión

El guión para la transmisión de video se muestra a continuación. Puedes encontrar este script en el paquete oficial de PiCamera. documentación.

Crea un nuevo archivo llamado rpi_camera_surveillance_system.py:

pi@raspberrypi:~ $ nano rpi_camera_surveillance_system.py

Copie el siguiente código en su archivo recién creado:

# Web streaming example
# Source code from the official PiCamera package
# http://picamera.readthedocs.io/en/latest/recipes2.html#web-streaming

import io
import picamera
import logging
import socketserver
from threading import Condition
from http import server

PAGE="""
<html>
<head>
<title>Raspberry Pi - Surveillance Camera</title>
</head>
<body>
<center><h1>Raspberry Pi - Surveillance Camera</h1></center>
<center><img src="stream.mjpg" width="640" height="480"></center>
</body>
</html>
"""

class StreamingOutput(object):
    def __init__(self):
        self.frame = None
        self.buffer = io.BytesIO()
        self.condition = Condition()

    def write(self, buf):
        if buf.startswith(b'xffxd8'):
            # New frame, copy the existing buffer's content and notify all
            # clients it's available
            self.buffer.truncate()
            with self.condition:
                self.frame = self.buffer.getvalue()
                self.condition.notify_all()
            self.buffer.seek(0)
        return self.buffer.write(buf)

class StreamingHandler(server.BaseHTTPRequestHandler):
    def do_GET(self):
        if self.path == '/':
            self.send_response(301)
            self.send_header('Location', '/index.html')
            self.end_headers()
        elif self.path == '/index.html':
            content = PAGE.encode('utf-8')
            self.send_response(200)
            self.send_header('Content-Type', 'text/html')
            self.send_header('Content-Length', len(content))
            self.end_headers()
            self.wfile.write(content)
        elif self.path == '/stream.mjpg':
            self.send_response(200)
            self.send_header('Age', 0)
            self.send_header('Cache-Control', 'no-cache, private')
            self.send_header('Pragma', 'no-cache')
            self.send_header('Content-Type', 'multipart/x-mixed-replace; boundary=FRAME')
            self.end_headers()
            try:
                while True:
                    with output.condition:
                        output.condition.wait()
                        frame = output.frame
                    self.wfile.write(b'--FRAMErn')
                    self.send_header('Content-Type', 'image/jpeg')
                    self.send_header('Content-Length', len(frame))
                    self.end_headers()
                    self.wfile.write(frame)
                    self.wfile.write(b'rn')
            except Exception as e:
                logging.warning(
                    'Removed streaming client %s: %s',
                    self.client_address, str(e))
        else:
            self.send_error(404)
            self.end_headers()

class StreamingServer(socketserver.ThreadingMixIn, server.HTTPServer):
    allow_reuse_address = True
    daemon_threads = True

with picamera.PiCamera(resolution='640x480', framerate=24) as camera:
    output = StreamingOutput()
    #Uncomment the next line to change your Pi's Camera rotation (in degrees)
    #camera.rotation = 90
    camera.start_recording(output, format="mjpeg")
    try:
        address = ('', 8000)
        server = StreamingServer(address, StreamingHandler)
        server.serve_forever()
    finally:
        camera.stop_recording()

Ver código sin formato

Para guardar su archivo, presione Ctrl+X, escriba Y y presione Entrar.

Acceso a transmisión de vídeo

Después de escribir el script, puedes ejecutarlo usando Python 3. Ejecute el siguiente comando:

pi@raspberrypi:~ $ python3 rpi_camera_surveillance_system.py

Una vez que se ejecuta el script, puede acceder a su servidor web de transmisión de video en: http://:8000. En mi caso, reemplácela con su propia dirección IP de Raspberry Pi http://192.168.1.112:8000.

Puede acceder a la transmisión de video a través de cualquier dispositivo que tenga un navegador y esté conectado a la misma red que su Pi.

Puedes usar tu Pi para monitorear tu hogar como una cámara de seguridad:

Transmisión de vídeo con la cámara Raspberry Pi

Envolver

¡Espero que este proyecto haya sido útil! Puede actualizar fácilmente este dispositivo de vigilancia del hogar para grabar videos o alertarlo cuando se detecte movimiento.

También tenemos un proyecto para construir un sistema CCTV completo con Raspberry Pi usando MotionEyeOS. Siéntete libre de echar un vistazo.

¿Te gusta la domótica? Obtenga más información sobre Node-RED, Raspberry Pi, ESP8266 y Arduino con mi curso: Construya un sistema de automatización del hogar por 0.

¿Tiene usted alguna pregunta? ¡Deja un comentario a continuación!

Gracias por leer. Si te gusta esta publicación, probablemente también te gustarán las siguientes. Así que por favor apóyame suscribiéndote a mi blog.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Preguntas Frecuentes sobre la Transmisión de Vídeo con la Cámara Raspberry Pi

¿Qué necesito para transmitir video con mi Raspberry Pi?

  1. Se requiere tener conocimiento previo sobre el funcionamiento de la placa Raspberry Pi.
  2. Es necesario tener instalado en tu Raspberry Pi el sistema operativo Raspbian o Raspbian Lite.
  3. Debes disponer del módulo de cámara Raspberry Pi Camera V2.

¿Cómo habilito el módulo de cámara en mi Raspberry Pi?

Para habilitar el software de la cámara en tu Raspberry Pi, sigue los siguientes pasos:

  1. En el entorno de escritorio, ve a la ventana de Configuración de Raspberry Pi en el menú de Preferencias, abre la pestaña Interfaces y habilita la Cámara.
  2. En la ventana de Terminal, escribe el siguiente comando: sudo raspi-config.

¿Cómo encuentro la dirección IP de mi Raspberry Pi?

Para acceder al servidor de streaming de video, necesitas conocer la dirección IP de tu Raspberry Pi. Utiliza el siguiente comando en la Terminal: ifconfig.

¿Cómo conecto la cámara a mi Raspberry Pi?

Conecta el módulo de cámara Raspberry Pi a través del puerto CSI con el Pi apagado. Asegúrate de que la cámara esté conectada en la orientación correcta.

¿Cómo ejecuto el script para la transmisión de video?

Crea un nuevo archivo llamado rpi_camera_surveillance_system.py y copia el código proporcionado en el post. Luego, ejecuta el script utilizando Python 3.

¿Cómo accedo a la transmisión de video desde mi navegador?

Una vez que el script está en funcionamiento, puedes acceder al servidor de streaming de video en la dirección: http://<Tu_Dirección_IP_Raspberry_Pi>:8000.

¿Puedo utilizar mi Raspberry Pi como una cámara de vigilancia en casa?

Sí, puedes utilizar tu Raspberry Pi como una cámara de vigilancia en casa para monitorear su entorno.

¿Cómo puedo mejorar este proyecto de cámara de vigilancia?

Puedes considerar mejorar este proyecto para grabar video o recibir notificaciones cuando se detecte movimiento.

¿Dónde puedo encontrar más información sobre sistemas de vigilancia con Raspberry Pi?

Tienes disponible el curso «Build a Home Automation System for $100», donde puedes aprender más sobre Raspberry Pi, ESP8266, Arduino y Node-RED.

¡Esperamos que esta información te haya sido útil para crear tu propio sistema de transmisión de video con tu Raspberry Pi! Si tienes más preguntas, no dudes en dejar un comentario.

1 comentario en «Transmisión de vídeo con la cámara Raspberry Pi»

Deja un comentario