메인 콘텐츠로 건너뛰기

개요

GStreamer는 효율적인 비디오 스트리밍 및 처리를 가능하게 하는 강력한 멀티미디어 프레임워크입니다. stellarHD는 MJPEG 및 원시 YUYV 압축 형식을 지원하며 최대 60 FPS의 고프레임 속도를 지원합니다.

요구 사항

이를 위해서는 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

장치 노드 식별

stellarHD 카메라를 연결하면 Linux 커널은 (V4L2를 통해) 일반적으로 네 개의 장치 노드(예: /dev/video0 ~ /dev/video3)를 생성합니다.
  • MJPEG / YUYV: 그룹의 첫 번째 노드(예: /dev/video0)에 있습니다.
v4l2-ctl을 사용하여 장치 노드를 확인할 수 있습니다:
v4l2-ctl --list-devices
stellarHD에 해당하는 항목을 찾으세요. 해당 카메라와 연결된 경로 목록이 표시됩니다.

MJPEG 모드

MJPEG 모드는 stellarHD에서 최대 60 FPS의 높은 프레임 속도를 달성하는 주된 방법입니다.

로컬 미리보기

/dev/video0가 MJPEG 노드라고 가정:
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1600,height=1200,framerate=60/1 ! \
    jpegdec ! autovideosink

UDP 네트워크 스트림

MJPEG를 다른 장치(예: IP 192.168.1.50, 포트 5600)로 네트워크를 통해 스트리밍하려면:
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
다른 컴퓨터에서 스트림을 수신하려면 다음을 사용할 수 있습니다:
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

YUYV 모드

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

로컬 미리보기

/dev/video0가 해당 노드라고 가정:
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    video/x-raw,format=YUY2,width=640,height=480,framerate=5/1 ! \
    videoconvert ! autovideosink
YUYV 모드에서 지원되는 해상도 및 프레임 속도 조합은 stellarHD 기술 사양을 참조하세요.

소프트웨어 인코딩 (H.264)

stellarHD에는 내장 하드웨어 H.264 인코더가 없으므로, H.264를 네트워크를 통해 스트리밍해야 하는 경우 GStreamer를 사용하여 소프트웨어 인코딩을 수행할 수 있습니다.
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