> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dwe.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Guía de GStreamer para stellarHD

> Una guía para usar GStreamer con la cámara stellarHD para streaming y captura de video de alto rendimiento.

## Descripción general

GStreamer es un potente framework multimedia que permite el streaming y procesamiento de video eficientes. La stellarHD admite los formatos de compresión **MJPEG** y **YUYV** en bruto, con soporte de alta frecuencia de imagen de hasta 60 FPS.

## Requisitos

Debes tener GStreamer instalado en una computadora con Linux. Puedes usar el siguiente comando de instalación para obtener los paquetes necesarios.

```bash theme={null}
sudo apt install v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-plugins-ugly
```

## Identificación de los nodos del dispositivo

Cuando conectas una cámara stellarHD, el kernel de Linux (a través de V4L2) normalmente crea cuatro nodos de dispositivo (por ejemplo, `/dev/video0` a `/dev/video3`).

* **MJPEG / YUYV:** se encuentra en el primer nodo del grupo (por ejemplo, `/dev/video0`).

Puedes verificar los nodos de dispositivo con `v4l2-ctl`:

```bash theme={null}
v4l2-ctl --list-devices
```

Busca la entrada correspondiente a la stellarHD. Enumerará las rutas asociadas a esa cámara específica.

## Modo MJPEG

El modo MJPEG es la forma principal de lograr frecuencias de imagen altas (hasta 60 FPS) en la stellarHD.

### Vista previa local

Suponiendo que `/dev/video0` sea el nodo MJPEG:

```bash theme={null}
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1600,height=1200,framerate=60/1 ! \
    jpegdec ! autovideosink
```

### Flujo de red UDP

Para transmitir MJPEG por la red a otro dispositivo (por ejemplo, IP `192.168.1.50` en el puerto `5600`):

```bash theme={null}
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1600,height=1200,framerate=60/1 ! \
    rtpjpegpay ! udpsink host=192.168.1.50 port=5600
```

Para recibir el flujo en otra computadora puedes usar lo siguiente:

```bash theme={null}
gst-launch-1.0 -v udpsrc port=5600 ! \
    "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)26" ! \
    rtpjpegdepay ! jpegdec ! videoconvert ! autovideosink
```

## Modo YUYV

Ten en cuenta que YUYV está limitado a frecuencias de imagen más bajas en resoluciones altas debido al ancho de banda USB.

### Vista previa local

Suponiendo que `/dev/video0` sea el nodo:

```bash theme={null}
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    video/x-raw,format=YUY2,width=640,height=480,framerate=5/1 ! \
    videoconvert ! autovideosink
```

<Note>
  Consulta las [especificaciones técnicas de stellarHD](/es/stellarHD/specs/stellarHD#resoluciones-y-frecuencias-de-imagen-compatibles) para ver qué combinaciones de resolución y frecuencia de imagen son compatibles en modo YUYV.
</Note>

## Codificación por software (H.264)

Como la stellarHD no cuenta con un codificador H.264 por hardware integrado, puedes usar GStreamer para realizar codificación por software si necesitas transmitir H.264 por la red.

```bash theme={null}
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1280,height=720,framerate=60/1 ! \
    jpegdec ! queue ! x264enc tune=zerolatency bitrate=4000 speed-preset=ultrafast ! \
    h264parse ! rtph264pay config-interval=10 pt=96 ! \
    udpsink host=192.168.1.50 port=5600
```
