> ## 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 exploreHD

> Una guía para usar GStreamer con la cámara exploreHD 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 exploreHD admite múltiples formatos de compresión, incluidos **H.264** acelerado por hardware, **MJPEG** y **YUYV** en bruto.

## 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 exploreHD, el kernel de Linux (a través de V4L2) normalmente crea cuatro nodos de dispositivo (por ejemplo, `/dev/video0` a `/dev/video3`).

* **MJPEG / YUYV:** generalmente se encuentra en el primer nodo del grupo (por ejemplo, `/dev/video0`).
* **H.264 por hardware:** generalmente se encuentra en el tercer nodo del grupo (por ejemplo, `/dev/video2`).

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

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

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

## Modo H.264 por hardware

La exploreHD incorpora codificación H.264 por hardware, que ofrece video de alta calidad a bajas tasas de bits con una carga mínima de CPU.

### Vista previa local

Para ver el flujo H.264 localmente (suponiendo que `/dev/video2` sea el nodo H.264):

```bash theme={null}
gst-launch-1.0 v4l2src device=/dev/video2 ! \
    video/x-h264,width=1920,height=1080,framerate=30/1 ! \
    h264parse ! avdec_h264 ! autovideosink
```

### Flujo de red UDP

Para transmitir el flujo H.264 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/video2 ! \
    video/x-h264,width=1920,height=1080,framerate=30/1 ! \
    h264parse ! queue ! rtph264pay config-interval=10 pt=96 ! \
    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)H264, payload=(int)96" ! \
    rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosink
```

## Modo MJPEG

El modo MJPEG es ampliamente compatible y ofrece buena calidad con baja latencia.

### 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=1920,height=1080,framerate=30/1 ! \
    jpegdec ! autovideosink
```

### Flujo de red UDP

Para transmitir MJPEG por la red:

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

## Modo YUYV

Ten en cuenta que, debido a las limitaciones de ancho de banda USB, YUYV suele estar limitado a frecuencias de imagen más bajas en altas resoluciones.

### 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=30/1 ! \
    videoconvert ! autovideosink
```

<Note>
  Consulta las [especificaciones técnicas de exploreHD](/es/exploreHD/specs/exploreHD#resoluciones-y-frecuencias-de-imagen-compatibles) para ver qué combinaciones de resolución y frecuencia de imagen son compatibles en modo YUYV. En 1080p, YUYV está limitado a 5 FPS.
</Note>

## Control avanzado de la tasa de bits

En modo H.264, puedes ajustar la tasa de bits y otros parámetros del codificador mediante los controles V4L2 mientras el pipeline se está ejecutando.

```bash theme={null}
# Ejemplo: establecer la tasa de bits en 5 Mbps
v4l2-ctl -d /dev/video2 --set-ctrl=video_bitrate=5000000
```
