메인 콘텐츠로 건너뛰기

개요

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

요구 사항

이를 위해서는 Linux 컴퓨터에 GStreamer가 설치되어 있어야 합니다. 다음 설치 명령을 사용하여 필요한 패키지를 가져올 수 있습니다.
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을 사용하여 장치 노드를 확인할 수 있습니다:
v4l2-ctl --list-devices
exploreHD에 해당하는 항목을 찾으세요. 해당 카메라와 연결된 경로 목록이 표시됩니다.

하드웨어 H.264 모드

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

로컬 미리보기

H.264 스트림을 로컬에서 보려면 (/dev/video2가 H.264 노드라고 가정):
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)로 네트워크를 통해 스트리밍하려면:
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
다른 컴퓨터에서 스트림을 수신하려면 다음을 사용할 수 있습니다:
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 노드라고 가정:
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1920,height=1080,framerate=30/1 ! \
    jpegdec ! autovideosink

UDP 네트워크 스트림

MJPEG를 네트워크를 통해 스트리밍하려면:
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가 해당 노드라고 가정:
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    video/x-raw,format=YUY2,width=640,height=480,framerate=30/1 ! \
    videoconvert ! autovideosink
YUYV 모드에서 지원되는 해상도 및 프레임 속도 조합은 exploreHD 기술 사양을 참조하세요. 1080p에서 YUYV는 5 FPS로 제한됩니다.

고급 비트레이트 제어

H.264 모드를 사용할 때 파이프라인이 실행되는 동안 V4L2 컨트롤을 통해 비트레이트와 기타 인코더 매개변수를 조정할 수 있습니다.
# 예: 비트레이트를 5Mbps로 설정
v4l2-ctl -d /dev/video2 --set-ctrl=video_bitrate=5000000