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

# Guia do GStreamer para o stellarHD

> Um guia para usar o GStreamer com a câmera stellarHD para captura e transmissão de vídeo de alto desempenho.

## Visão geral

O GStreamer é um poderoso framework multimídia que permite transmissão e processamento de vídeo de forma eficiente. O stellarHD suporta os formatos de compressão **MJPEG** e **YUYV** bruto, com suporte a altas taxas de quadros de até 60 FPS.

## Requisitos

Você deve ter o GStreamer instalado em um computador Linux para isso. Você pode usar o comando de instalação a seguir para obter os pacotes necessários.

```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
```

## Identificando os nós de dispositivo

Quando você conecta uma câmera stellarHD, o kernel do Linux (via V4L2) normalmente cria quatro nós de dispositivo (por exemplo, `/dev/video0` a `/dev/video3`).

* **MJPEG / YUYV:** Encontrado no primeiro nó do grupo (por exemplo, `/dev/video0`).

Você pode verificar seus nós de dispositivo usando `v4l2-ctl`:

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

Procure a entrada correspondente ao stellarHD. Ela listará os caminhos associados àquela câmera específica.

## Modo MJPEG

O modo MJPEG é a principal forma de obter altas taxas de quadros (até 60 FPS) no stellarHD.

### Pré-visualização local

Assumindo que `/dev/video0` é o nó MJPEG:

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

### Stream de rede UDP

Para transmitir MJPEG pela rede para outro dispositivo (por exemplo, IP `192.168.1.50` na porta `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 receber o stream em outro computador você pode usar o seguinte:

```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

Observe que o YUYV é limitado a taxas de quadros menores em resoluções mais altas devido à largura de banda do USB.

### Pré-visualização local

Assumindo que `/dev/video0` é o nó:

```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>
  Consulte as [especificações técnicas do stellarHD](/pt/stellarHD/specs/stellarHD#resoluções-e-taxas-de-quadros-suportadas) para ver quais combinações de resolução e taxa de quadros são suportadas no modo YUYV.
</Note>

## Codificação por software (H.264)

Como o stellarHD não possui um codificador H.264 em hardware integrado, você pode usar o GStreamer para realizar codificação por software caso precise transmitir H.264 pela rede.

```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
```
