
목차
- Gstreamer란 무엇인가?
- DeepStream이란 무엇인가?
- Gstreamer와 DeepStream의 관계
1. Gstreamer란 무엇인가?
Gstreamer 개요
- Gstreamer는 스트리밍 미디어 애플리케이션을 만들기 위한 강력한 프레임워크이다.
주요 특징
- 다양한 포맷 지원: MP3, Ogg/Vorbis, MPEG-1/2, AVI, Quicktime 등
- 유연한 파이프라인 구조: 플러그인 기반으로 자유롭게 조합 가능
- 폭 넓은 활용: 오디오/비디오 스트리밍부터 복잡한 편집까지
- XML 기반 파이프라인 정의: 저장 및 재사용 가능
사용하는 이유
- 실시간 스트리밍
- RTSP, WebRTC 등 프로토콜 지원
- 네트워크 스트리밍에 최적화
- 낮은 레이턴시
- 파이프라인 아키텍처
- 복잡한 미디어 처리를 모듈식으로 구성
- 디코딩 -> 처리 -> 인코딩 -> 전송을 효율적으로 연결
- 하드웨어 가속
- GPU 디코딩/인코딩 지원
- CPU 부하 감소
- 다양한 포맷/코덱 지원
- 수백 가지 플러그인
- 복잡한 미디어 파이프라인
핵심 구성 요소
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 |
댓글