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

# exploreHD GStreamer 가이드

> 고성능 비디오 스트리밍 및 캡처를 위해 exploreHD 카메라에서 GStreamer를 사용하는 방법에 대한 가이드.

## 개요

GStreamer는 효율적인 비디오 스트리밍 및 처리를 가능하게 하는 강력한 멀티미디어 프레임워크입니다. exploreHD는 하드웨어 가속 **H.264**, **MJPEG**, 원시 **YUYV** 등 여러 압축 형식을 지원합니다.

## 요구 사항

이를 위해서는 Linux 컴퓨터에 GStreamer가 설치되어 있어야 합니다. 다음 설치 명령을 사용하여 필요한 패키지를 가져올 수 있습니다.

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

## 장치 노드 식별

exploreHD 카메라를 연결하면 Linux 커널은 (V4L2를 통해) 일반적으로 네 개의 장치 노드(예: `/dev/video0` \~ `/dev/video3`)를 생성합니다.

* **MJPEG / YUYV:** 일반적으로 그룹의 첫 번째 노드(예: `/dev/video0`)에 있습니다.
* **하드웨어 H.264:** 일반적으로 그룹의 세 번째 노드(예: `/dev/video2`)에 있습니다.

`v4l2-ctl`을 사용하여 장치 노드를 확인할 수 있습니다:

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

exploreHD에 해당하는 항목을 찾으세요. 해당 카메라와 연결된 경로 목록이 표시됩니다.

## 하드웨어 H.264 모드

exploreHD는 내장 하드웨어 H.264 인코딩을 지원하여 낮은 비트레이트에서 최소한의 CPU 부하로 고품질 비디오를 제공합니다.

### 로컬 미리보기

H.264 스트림을 로컬에서 보려면 (`/dev/video2`가 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
```

### UDP 네트워크 스트림

H.264 피드를 다른 장치(예: IP `192.168.1.50`, 포트 `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
```

다른 컴퓨터에서 스트림을 수신하려면 다음을 사용할 수 있습니다:

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

## MJPEG 모드

MJPEG 모드는 호환성이 매우 높으며 낮은 지연 시간으로 우수한 품질을 제공합니다.

### 로컬 미리보기

`/dev/video0`가 MJPEG 노드라고 가정:

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

### UDP 네트워크 스트림

MJPEG를 네트워크를 통해 스트리밍하려면:

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

## YUYV 모드

USB 대역폭 제한으로 인해 YUYV는 일반적으로 높은 해상도에서 더 낮은 프레임 속도로 제한됩니다.

### 로컬 미리보기

`/dev/video0`가 해당 노드라고 가정:

```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>
  YUYV 모드에서 지원되는 해상도 및 프레임 속도 조합은 [exploreHD 기술 사양](/ko/exploreHD/specs/exploreHD#지원되는-해상도-및-프레임-속도)을 참조하세요. 1080p에서 YUYV는 5 FPS로 제한됩니다.
</Note>

## 고급 비트레이트 제어

H.264 모드를 사용할 때 파이프라인이 실행되는 동안 V4L2 컨트롤을 통해 비트레이트와 기타 인코더 매개변수를 조정할 수 있습니다.

```bash theme={null}
# 예: 비트레이트를 5Mbps로 설정
v4l2-ctl -d /dev/video2 --set-ctrl=video_bitrate=5000000
```
