MontesTeam – Cámara Raspberry Pi En Vivo
Categoría: Raspberry Pi / Linux / Python / Hardware
Autor: MontesTeam
Introducción
Al trabajar con cámaras en la Raspberry Pi (como el sensor IMX219 o la Camera Module v2/v3) en las versiones recientes de Raspberry Pi OS, es muy común encontrarse con el siguiente error crítico en la terminal al intentar visualizar la imagen:
Plaintext
[0:06:54.048641557] INFO RPI vc4.cpp:445 Registered camera …
terminate called after throwing an instance of ‘std::runtime_error’
what(): failed to import fd 25
Aborted
Si te ha pasado esto, ¡no te preocupes! Tu cámara no está rota. En este artículo te explicamos por qué ocurre este fallo de memoria gráfica y cómo solucionarlo creando un servidor de streaming web ultraligero con Python y Flask para ver el vídeo en vivo en tu móvil o PC sin depender de monitores.
- ¿Por qué ocurre el error ‘failed to import fd’?
El mensaje de error failed to import fd (File Descriptor) no es un problema del sensor ni del cable flex. Ocurre porque el gestor de memoria gráfica del kernel (dma-buf / DRM) y el servidor de pantalla (Wayland o X11) entran en conflicto al intentar crear la ventana flotante de previsualización.
Para confirmar que tu cámara física está 100% operativa, basta con lanzar una captura desactivando la vista previa mediante el parámetro -n (–nopreview):
Bash
rpicam-still -n -o test.jpg
Si la foto se guarda correctamente en tu Raspberry Pi, confirmamos que el hardware funciona perfectamente.
- La Solución MontesTeam: Streaming Web con Python & Flask
Pelear con las ventanas flotantes del escritorio de la Raspberry Pi no es eficiente para proyectos reales. La mejor alternativa es redirigir el flujo de vídeo hacia un servidor web local (MJPEG).
Paso 1: Instalar los paquetes oficiales
Actualiza la lista de repositorios e instala la librería oficial python3-picamera2 y el framework web python3-flask:
Bash
sudo apt update
sudo apt install -y python3-flask python3-picamera2
⚠️ Nota importante: El paquete en el repositorio oficial debe escribirse como python3-picamera2 (con la palabra camera completa). Si intentas instalar python3-picam2, la terminal te dirá Unable to locate package.
Paso 2: Crear el script web_stream.py
Guarda el siguiente archivo en la carpeta principal de tu usuario (/home/usuario/web_stream.py) para poder ejecutarlo fácilmente sin cambiar de directorio:
Python
import io
from flask import Flask, Response
from picamera2 import Picamera2
app = Flask(name)
Inicializar la cámara IMX219
picam = Picamera2()
config = picam.create_preview_configuration(main={“size”: (1280, 720)})
picam.configure(config)
picam.start()
def generate_frames():
while True:
stream = io.BytesIO()
picam.capture_file(stream, format=’jpeg’)
stream.seek(0)
frame = stream.read()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
@app.route(‘/’)
def index():
return “””
MontesTeam – IMX219 Web Streaming
MontesTeam – Cámara Raspberry Pi En Vivo
@app.route(‘/video_feed’)
def video_feed():
return Response(generate_frames(), mimetype=’multipart/x-mixed-replace; boundary=frame’)
if name == ‘main‘:
app.run(host=’0.0.0.0′, port=5000, threaded=True)
Paso 3: Iniciar el servidor web y acceder
Abre la terminal en tu Raspberry Pi y ejecuta:
Bash
python3 web_stream.py
Abre el navegador web en tu teléfono móvil o PC e introduce la dirección IP de tu Raspberry Pi seguida del puerto :5000:
Plaintext
http://192.168.18.108:5000
(Recuerda que puedes conocer la dirección IP de tu Raspberry Pi ejecutando hostname -I en la terminal).
- Chuleta de comandos rápidos de la cámara
Tomar foto rápida sin vista previa: rpicam-still -n -o foto.jpg
Grabar vídeo de 10 segundos: rpicam-vid -n -t 10000 -o video.mp4
Ver lista de dispositivos de vídeo: rpicam-hello –list-cameras
Conclusión
Montar un servidor de streaming en Python no solo evita los fallos de renderizado y aceleración de hardware DMA en la ventana de terminal, sino que además nos deja el camino preparado para añadir botones de captura, control de motores o procesamiento de visión artificial con OpenCV en MontesTeam.
Etiqueta:cable flex raspberry pi, conectar camara raspberry pi, configuracion camara raspberry pi, instalar camara raspberry pi, modulo camara raspberry pi, montar camara raspberry pi, proyectos raspberry pi camara, puerto csi raspberry pi, raspberry pi camera module, raspi-config camara, robotica raspberry pi, rpicam hello, tutorial raspberry pi camara, vision artificial raspberry pi


