DeepStream란? with Gstreamer
AI/Vision AI

DeepStream란? with Gstreamer

뉴비뉴 2025. 10. 20.

목차

  1. Gstreamer란 무엇인가?
  2. DeepStream이란 무엇인가?
  3. Gstreamer와 DeepStream의 관계

1. Gstreamer란 무엇인가?

Gstreamer 개요

  • Gstreamer는 스트리밍 미디어 애플리케이션을 만들기 위한 강력한 프레임워크이다.

주요 특징

  • 다양한 포맷 지원: MP3, Ogg/Vorbis, MPEG-1/2, AVI, Quicktime 등
  • 유연한 파이프라인 구조: 플러그인 기반으로 자유롭게 조합 가능
  • 폭 넓은 활용: 오디오/비디오 스트리밍부터 복잡한 편집까지
  • XML 기반 파이프라인 정의: 저장 및 재사용 가능

사용하는 이유

  1. 실시간 스트리밍
    1. RTSP, WebRTC 등 프로토콜 지원
    2. 네트워크 스트리밍에 최적화
    3. 낮은 레이턴시
  2. 파이프라인 아키텍처
    1. 복잡한 미디어 처리를 모듈식으로 구성
    2. 디코딩 -> 처리 -> 인코딩 -> 전송을 효율적으로 연결
  3. 하드웨어 가속
    1. GPU 디코딩/인코딩 지원
    2. CPU 부하 감소
  4. 다양한 포맷/코덱 지원
    1. 수백 가지 플러그인
    2. 복잡한 미디어 파이프라인 

핵심 구성 요소

Element (엘리먼트)

  • 모든 Gstreamer 애플리케이션의 기본 빌딩 블록입니다.

Element의 3가지 유형

  • Source: 데이터를 읽어오는 입력부
    • 예: filesrc(파일), v4l2src(카메라), rtspsrc(네트워크 스트림)
  • Filter: 데이터를 변환/처리
    • 예: decodebin(자동 디코딩), videoconvert(색상 변환)
  • Sink: 데이터를 출력
    • 예: autovideosink(화면 출력), filesink(파일 저장), fakesink(데이터 버림)

Pad(패드)

  • Element의 입출력 포트 역할
  • Source pad: 데이터를 내보내는 출력 포트
  • Sink pad: 데이터를 받아들이는 입력 포트
  • Pad를 연결하여 데이터 흐름을 만듭니다

Pipeline(파이프라인)

  • 여러 Element들을 연결한 데이터 처리 흐름
    • ex) filesrc(읽기) -> decoder -> converter(변환) -> sink(출력)

2. DeepStream이란 무엇인가?

DeepStream 개요

  • NVIDIA DeepStream SDK는 GPU 기반의 실시간 비디오 분석 플랫폼입니다.

핵심 특징

  • GPU 가속: NVIDIA GPU를 활용한 고성능 처리
  • 실시간 AI 추론: TensorRT 엔진 기반
  • 멀티 스트림 처리: 동시에 여러 비디오 스트림 분석 가능
  • 확장 가능: Gstreamer 플러그인 방식으로 유연한 확장

DeepStream이 제공하는 주요 플러그인

플러그인 역할 특징
nvv4l2decoder GPU 하드웨어 디코딩 CPU 대비 10배 이상 빠름
nvstreammux 배치 처리 여러 스트림을 하나로 묶어 효율적 처리
nvinfer AI 추론 엔진 TensorRT 기반, 다양한 모델 지원
nvvideoconvert  GPU 색상 변환 빠른 포맷 변환
nvdsosd 화면 오버레이 바운딩 박스, 텍스트 표시
nvtracker 객체 추적 프레임 간 객체 ID 유지

DeepStream의 성능

  • 처리 속도: 단일 GPU에서 30개 이상의 HD 스트림 동시 처리 가능
  • 지연 시간: 30ms 이하의 낮은 레이턴시
  • 효율성: GPU 메모리에서 제로 카피(데이터가 GPU메모리에만 존재)로 데이터 처리

3. DeepStream 과 Gstreamer 의 결합 구조

  • NVIDIA DeepStream은 Gstreamer 위에 얹어진 확장 계층
  • DeepStream = Gstreamer + NVIDIA 전용 Plugin 세트

파이프라인 구조 분석

1. 전체 파이프라인 개요

2. 주요 엘리먼트 역할 정리

엘리먼트 역할 비고
filesrc (Gstreamer) 영상 파일을 읽어옴 입력 Source
qtdemux (Gstreamer) MP4, MOV 파일의 스트림 분리 비디오/오디오 트랙 분리
h264parse (Gstreamer) 비트스트림 구조 정리 H.264용 Parser
nvv4l2decoder (DeepStream) GPU 기반 H.264 디코딩 CPU 부하 최소화
nvstreammux (DeepStream) 여러 입력을 배치 처리 필수 DeepStream 구성요소
nvinfer (DeepStream) TensorRT 모델 로딩 후 추론 객체 검출 수행
nvvideoconvert (DeepStream) 색상공간/포맷 변환 RGBA 변환 등
nvdsosd (DeepStream) 바운딩박스 시각화 “onscreen display”
tee (Gstreamer) 파이프라인 분기 동시에 파일 저장 + 분석 가능
multifilesink (Gstreamer) 프레임 단위 이미지 저장 파일 출력용

마무리

오늘은 NVIDIA DeepStream 과 Gstreamer 에 대해서 배워봤습니다.

다음 게시글에서는 실시간 객체 검출을 구현해보겠습니다.

 

감사합니다.

Reference

https://github.com/GStreamer/gstreamer?tab=readme-ov-file

 

GitHub - GStreamer/gstreamer: GStreamer open-source multimedia framework

GStreamer open-source multimedia framework. Contribute to GStreamer/gstreamer development by creating an account on GitHub.

github.com

https://studyingdever.tistory.com/1

 

I. GStreamer 소개 : 1장. GStreamer란 무엇인가?

I. GStreamer 소개GStreamer 소개 파트에서는 설명하는 기술에 관한 개괄을 알려줍니다. 1장. GStreamer란 무엇인가?GStreamer는 스트리밍 미디어 애플리케이션을 만들기 위한 프레임워크입니다. GStreamer의

studyingdever.tistory.com

 

 

 

'AI > Vision AI' 카테고리의 다른 글

CUDA란?  (2) 2025.10.27
CLTR 군중 현지화를 위한 종단 간 변환기 모델 - 개념  (2) 2025.05.23

댓글

💲 추천 글