μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

NVIDIA Jetson Orin 기반 DeepStream 닀채널 RTSP μ§€λŠ₯ν˜• κ΄€μ œ νŒŒμ΄ν”„λΌμΈ μ§€μ—° 및 GStreamer 버퍼 병λͺ© μ΅œμ ν™” κ°€μ΄λ“œ

κ²Œμž„κ΅μˆ˜ 2026. 10. 19. 04:02
λ°˜μ‘ν˜•

🌐 English Abstract

This article provides a comprehensive troubleshooting guide for resolving GStreamer buffer bottlenecks and latency accumulation in multi-channel RTSP intelligent surveillance systems using NVIDIA Jetson Orin and DeepStream SDK. It covers architectural optimizations for NVMM Zero-Copy memory handling, TensorRT engine quantization (INT8/FP16), dynamic batching, and custom pipeline queue properties. Implementing these low-level performance tuning strategies ensures stable real-time AI inference and minimizes frame drops across high-density IP camera streams.

슀마트 μ‹œν‹°, κ΄€μ œ μ„Όν„° 및 μ‚°μ—… ν˜„μž₯μ—μ„œ μ—”λ“œν¬μΈνŠΈ μ—£μ§€ λ””λ°”μ΄μŠ€(Edge Device)λ₯Ό ν™œμš©ν•œ 닀채널 μ‹€μ‹œκ°„ μ˜μƒ 뢄석 μ‹œμŠ€ν…œ ꡬ좕 μˆ˜μš”κ°€ κΈ‰μ¦ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 특히 NVIDIA Jetson Orin μ‹œλ¦¬μ¦ˆμ™€ DeepStream SDK의 쑰합은 κ³ μ„±λŠ₯ AI μΆ”λ‘  λͺ¨λΈκ³Ό λ―Έλ””μ–΄ νŒŒμ΄ν”„λΌμΈ 처리λ₯Ό 단일 μ—£μ§€ μ‹œμŠ€ν…œμ—μ„œ κ°€λŠ₯ν•˜κ²Œ λ§Œλ“œλŠ” μ΅œμ„ μ˜ μ„ νƒμ§€λ‘œ ν‰κ°€λ°›μŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ μ‹€μ œ ν˜„μž₯에 닀채널(16채널 이상) RTSP(Real-Time Streaming Protocol) 카메라 μŠ€νŠΈλ¦Όμ„ 연동해보면, μ‹œμŠ€ν…œ 운영 μ‹œκ°„μ΄ 지남에 따라 μ˜μƒ μ§€μ—°(Latency Accumulation)이 점점 μ‹¬κ°œν•΄μ§€κ±°λ‚˜ νŠΉμ • μ±„λ„μ—μ„œ ν”„λ ˆμž„ λˆ„λ½(Frame Drop), 심지어 νŒŒμ΄ν”„λΌμΈμ΄ λ©ˆμΆ”λŠ”(Pipeline Stall) νŠΈλŸ¬λΈ”μŠˆνŒ… 상황에 자주 μ§λ©΄ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 문제의 κ·Όλ³Έ 원인은 λŒ€λΆ€λΆ„ GStreamer 버퍼 관리(Buffer Management) λΆˆκ· ν˜•, λ©”λͺ¨λ¦¬ 볡사 λΉ„μš©(Memory Copy Overhead), 그리고 λ”₯λŸ¬λ‹ μΆ”λ‘  엔진인 TensorRT 배치 처리(Batching) λ―Έμ΅œμ ν™”μ—μ„œ λ°œμƒν•©λ‹ˆλ‹€.

λ³Έ ν¬μŠ€νŒ…μ—μ„œλŠ” NVIDIA Jetson Orin μ•„ν‚€ν…μ²˜ ν™˜κ²½μ—μ„œ DeepStream 기반 닀채널 RTSP κ΄€μ œ μ‹œμŠ€ν…œμ„ μš΄μš©ν•  λ•Œ λ°œμƒν•˜λŠ” μ§€μ—° 병λͺ© ν˜„μƒμ„ μ²΄κ³„μ μœΌλ‘œ λΆ„μ„ν•˜κ³ , 이λ₯Ό 근본적으둜 ν•΄κ²°ν•˜κΈ° μœ„ν•œ NVMM Zero-Copy μ΅œμ ν™”, GStreamer 큐(Queue) 버퍼 μ œμ–΄, 그리고 TensorRT μΆ”λ‘  μ—”μ§„ νŠœλ‹ 방법을 싀무 κ΄€μ μ—μ„œ μƒμ„Ένžˆ κΈ°μˆ ν•©λ‹ˆλ‹€.



1. GStreamer νŒŒμ΄ν”„λΌμΈ 버퍼 병λͺ© 및 μ§€μ—° λ°œμƒ 원인 뢄석

닀채널 RTSP λΉ„λ””μ˜€ μŠ€νŠΈλ¦¬λ°μ„ μ²˜λ¦¬ν•  λ•Œ νŒŒμ΄ν”„λΌμΈ λ‚΄λΆ€μ—μ„œ 지연이 μŒ“μ΄λŠ” μ£Όμš” 원인은 비동기 λ„€νŠΈμ›Œν¬ μˆ˜μ‹  속도와 λ””μ½”λ”© 및 AI μΆ”λ‘  속도 κ°„μ˜ λΆˆκ· ν˜•(Speed Mismatch) λ•Œλ¬Έμž…λ‹ˆλ‹€. GStreamer νŒŒμ΄ν”„λΌμΈμ€ μ—¬λŸ¬ μš”μ†Œ(Elements)κ°€ μ—°κ²°λ˜μ–΄ 데이터λ₯Ό μ „λ‹¬ν•˜λŠ” ꡬ쑰인데, νŠΉμ • κ΅¬κ°„μ—μ„œ μ²˜λ¦¬κ°€ λŠ¦μ–΄μ§€λ©΄ μ•žμ„  버퍼가 λ‚΄λΆ€ 큐(Queue)에 μŒ“μ΄κ²Œ λ©λ‹ˆλ‹€.

κ°€. RTSP μˆ˜μ‹ λΆ€μ™€ 디코더 ν•˜λ“œμ›¨μ–΄ 가속 병λͺ©

κΈ°λ³Έ rtspsrc ν”ŒλŸ¬κ·ΈμΈμ€ λ„€νŠΈμ›Œν¬ νŒ¨ν‚· 손싀 μ‹œ μž¬μ „μ†‘ μš”μ²­(RTCP) 및 μ§€ν„° 버퍼(Jitter Buffer)λ₯Ό ν™œμ„±ν™”ν•©λ‹ˆλ‹€. 이 κ³Όμ •μ—μ„œ λ„€νŠΈμ›Œν¬ 동기화 지연이 λ°œμƒν•˜λ©΄ 디코더(nvv4l2decoder)둜 μž…λ ₯λ˜λŠ” λΉ„λ””μ˜€ ν”„λ ˆμž„μ΄ μΌμ‹œμ μœΌλ‘œ μ§€μ—°λ©λ‹ˆλ‹€. 이후 ν•œκΊΌλ²ˆμ— λ°€λ € λ“€μ–΄μ˜€λŠ” 버퍼(Burst Traffic)λ₯Ό 디코더가 μ œλ•Œ μ†ŒλΉ„ν•˜μ§€ λͺ»ν•˜λ©΄, λ‚΄λΆ€ λ©”λͺ¨λ¦¬ ν• λ‹Ή μ œν•œμœΌλ‘œ 인해 전체 νŒŒμ΄ν”„λΌμΈ μŠ€λ ˆλ“œκ°€ λΈ”λ‘œν‚Ή(Blocking) μƒνƒœμ— λΉ μ§‘λ‹ˆλ‹€.

λ‚˜. GStreamer 큐(Queue) μ„€μ • 미흑으둜 μΈν•œ μ§€μ—° λˆ„μ 

νŒŒμ΄ν”„λΌμΈ 각 μŠ€λ ˆλ“œ κ°„ μ™„μΆ© μž‘μš©μ„ ν•˜λŠ” queue μš”μ†Œμ˜ κΈ°λ³Έ 섀정값은 버퍼 개수(max-size-buffers=200) λ˜λŠ” μ‹œκ°„(max-size-time=1000000000) 기반으둜 크게 μž‘ν˜€ μžˆλŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€. μ‹€μ‹œκ°„ κ°μ‹œ μ‹œμŠ€ν…œμ—μ„œ 백둜그(Backlog) 버퍼λ₯Ό λ¬΄μ œν•œμœΌλ‘œ μŒ“μ•„λ‘κ²Œ 되면, ν˜„μž¬ μ‹€μ‹œκ°„ 화면보닀 μˆ˜μ΄ˆμ—μ„œ μˆ˜μ‹­μ΄ˆ 뒀쳐진 κ³Όκ±° ν”„λ ˆμž„μ„ λ’€λŠ¦κ²Œ μΆ”λ‘ ν•˜κ²Œ λ˜λŠ” μ‹€μ‹œκ°„μ„± 상싀 ν˜„μƒμ΄ λ°œμƒν•©λ‹ˆλ‹€.

  • λ„€νŠΈμ›Œν¬ μ§€ν„°(Network Jitter): RTSP νŒ¨ν‚· 도달 μ‹œκ°„μ˜ λΆˆκ·œμΉ™μ„±μœΌλ‘œ μΈν•œ 디코더 버퍼링 λ°œμƒ
  • λ””μ½”λ”© μŠ€λ ˆλ“œ 병λͺ©: NVDEC(NVIDIA Hardware Decoder)의 멀티채널 가속 ν•œκ³„ 초과 및 λ©”λͺ¨λ¦¬ λŒ€μ—­ν­ λΆ€μ‘±
  • 큐 버퍼 μ˜€λ²„ν”Œλ‘œμš°: λˆ„μ λœ μ˜› ν”„λ ˆμž„ 버퍼가 GPU λ©”λͺ¨λ¦¬λ₯Ό μ „μœ ν•˜μ—¬ 전체 μ‹œμŠ€ν…œ 응닡성 μ €ν•˜


2. NVMM Zero-Copy λ©”λͺ¨λ¦¬ μ•„ν‚€ν…μ²˜ μ΅œμ ν™”

NVIDIA Jetson μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜λŠ” CPU(Host System RAM)와 GPU(Device RAM)κ°€ 물리적으둜 λ™μΌν•œ SoC λ‚΄μ˜ DRAM을 κ³΅μœ ν•˜λŠ” 톡합 λ©”λͺ¨λ¦¬ ꡬ쑰(Unified Memory Architecture)λ₯Ό κ°€μ§‘λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ†Œν”„νŠΈμ›¨μ–΄ κ³„μΈ΅μ—μ„œ 이λ₯Ό μ œλŒ€λ‘œ ν™œμš©ν•˜μ§€ μ•ŠμœΌλ©΄ CPU와 GPU κ°„ λΆˆν•„μš”ν•œ λ©”λͺ¨λ¦¬ 볡사가 반볡적으둜 μΌμ–΄λ‚˜ νŒŒμ΄ν”„λΌμΈ 병λͺ©μ˜ 결정적 원인이 λ©λ‹ˆλ‹€.

κ°€. NVMM(NVIDIA Video Memory Management)의 핡심 κ°œλ…

GStreamer κΈ°λ³Έ νŒŒμ΄ν”„λΌμΈμ€ ν”„λ ˆμž„ 버퍼λ₯Ό μ‹œμŠ€ν…œ λ©”λͺ¨λ¦¬ 곡간(video/x-raw)에 ν• λ‹Ήν•©λ‹ˆλ‹€. 반면 DeepStream ν”ŒλŸ¬κ·ΈμΈλ“€μ€ NVIDIA 고유의 NVMM λ©”λͺ¨λ¦¬(video/x-raw(memory:NVMM)) 포맷을 μ‚¬μš©ν•˜μ—¬ ν”„λ ˆμž„ 데이터λ₯Ό GPU μ „μš© ν•˜λ“œμ›¨μ–΄ 블둝(NVDEC, VIC, NVENC, Tensor Core) μ‚¬μ΄μ—μ„œ λ©”λͺ¨λ¦¬ 볡사 없이 포인터 λ³€κ²½λ§ŒμœΌλ‘œ μ „λ‹¬ν•˜λŠ” 제둜 μΉ΄ν”Ό(Zero-Copy)λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.

λ‚˜. 메인 λ©”λͺ¨λ¦¬ λ³€ν™˜ μ΅œμ†Œν™” μ „λž΅

νŒŒμ΄ν”„λΌμΈ λ‚΄λΆ€ μš”μ†Œ κ°„ 데이터 전달 μ‹œ CapsFilterλ₯Ό μ„€μ •ν•  λ•Œ λ°˜λ“œμ‹œ NVMM λ©”λͺ¨λ¦¬λ₯Ό μœ μ§€ν•˜λ„λ‘ κ°•μ œν•΄μ•Ό ν•©λ‹ˆλ‹€. CPU λ©”λͺ¨λ¦¬λ‘œμ˜ 우회 λ³€ν™˜(Format Conversion)을 μ—†μ• λŠ” 것이 ν•΅μ‹¬μž…λ‹ˆλ‹€.

ꡬ뢄 일반 GStreamer νŒŒμ΄ν”„λΌμΈ DeepStream NVMM Zero-Copy
λ©”λͺ¨λ¦¬ ν• λ‹Ή μœ„μΉ˜ CPU Host System RAM NVMM (Unified Device Memory)
ν”„λ ˆμž„ 전달 방식 CPU-GPU κ°„ 볡사 (cudaMemcpy) ν•˜λ“œμ›¨μ–΄ 포인터 전달 (Zero-Copy)
CPU 점유율 및 Latency 높은 CPU μ‚¬μš©λŸ‰ / μ§€μ—° 급증 μ΅œμ € CPU μ‚¬μš©λŸ‰ / 극단적 μ§€μ—° κ°μ†Œ

C/C++ λ˜λŠ” Python 기반 DeepStream μ‘μš© ν”„λ‘œκ·Έλž¨ 개발 μ‹œ, 메타데이터에 μ ‘κ·Όν•  λ•Œλ„ ν”„λ ˆμž„ 이미지 자체λ₯Ό λ³΅μ‚¬ν•˜λŠ” NvBufSurface λ©”λͺ¨λ¦¬ μ ‘κ·Ό λŒ€μ‹  NvDsBatchMeta 포인터 체인만 μ°Έμ‘°ν•˜λŠ” λ°©μ‹μœΌλ‘œ κ΅¬ν˜„ν•΄μ•Ό CPU 제둜 μΉ΄ν”Ό 원칙이 μœ μ§€λ©λ‹ˆλ‹€.

3. TensorRT μ—”μ§„ 연동 및 닀채널 배치(Batching) μ΅œμ ν™”

Jetson Orin의 Tensor Core μ„±λŠ₯을 100% μ΄λŒμ–΄λ‚΄κΈ° μœ„ν•΄μ„œλŠ” ONNX λͺ¨λΈμ„ Jetson Orin νƒ€κ²Ÿ ν•˜λ“œμ›¨μ–΄μ— 맞좰 TensorRT μ—”μ§„(Plan File)으둜 μ •λ°€ν•˜κ²Œ μ»΄νŒŒμΌν•˜κ³ , DeepStream의 nvstreammux 및 nvinfer λͺ¨λ“ˆμ„ μ‘°ν™”λ‘­κ²Œ μ œμ–΄ν•΄μ•Ό ν•©λ‹ˆλ‹€.

κ°€. INT8 μ–‘μžν™”(Quantization) 및 μΊ˜λ¦¬λΈŒλ ˆμ΄μ…˜

Jetson Orin은 FP32 μ—°μ‚° λŒ€λΉ„ INT8 정밀도 μ‚¬μš© μ‹œ λŒ€ν­ ν–₯μƒλœ TOPS(Trillion Operations Per Second) μ„±λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. nvinfer ꡬ성 파일(Config)μ—μ„œ INT8 μΊ˜λ¦¬λΈŒλ ˆμ΄μ…˜ μΊμ‹œ(Calibration Cache)λ₯Ό μ μš©ν•˜μ—¬ 정밀도 손싀을 μ΅œμ†Œν™”ν•˜λ©΄μ„œ μΆ”λ‘  속도λ₯Ό 2λ°° 이상 λŒμ–΄μ˜¬λ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜. dynamic batching 및 nvstreammux νŠœλ‹

16채널 μŠ€νŠΈλ¦Όμ„ λ…λ¦½μ μœΌλ‘œ μΆ”λ‘ ν•˜λ©΄ GPU 타일링 및 컀널 런칭 μ˜€λ²„ν—€λ“œκ°€ μ»€μ§‘λ‹ˆλ‹€. nvstreammux ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜μ—¬ N개 μ±„λ„μ˜ λΉ„λ””μ˜€ ν”„λ ˆμž„μ„ ν•˜λ‚˜λ‘œ λ¬Άμ–΄(Batch) TensorRT에 곡급해야 ν•©λ‹ˆλ‹€.

  • batch-size: 전체 RTSP 채널 μˆ˜μ™€ λ™μΌν•˜κ²Œ μ„€μ • (예: 16)
  • batched-push-timeout: ν”„λ ˆμž„μ΄ λͺ¨λ‘ λͺ¨μΌ λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦¬λŠ” μ΅œλŒ€ μ‹œκ°„(Microsecond λ‹¨μœ„). λ§Œμ•½ 30fps ν™˜κ²½μ΄λΌλ©΄ 33000(33ms) λ‚΄μ™Έλ‘œ μ„€μ •ν•˜μ—¬ 일뢀 μ±„λ„μ˜ ν”„λ ˆμž„ μž…κ³ κ°€ λŠ¦μ–΄μ§€λ”λΌλ„ μ œν•œ μ‹œκ°„ λ‚΄ λ°”λ‘œ 좔둠을 μ§„ν–‰ν•˜λ„λ‘ κ°•μ œν•¨ (μ§€μ—° λ°©μ§€ 핡심 νŒŒλΌλ―Έν„°)
  • nvbuf-memory: Jetson Orin ν™˜κ²½μ—μ„œλŠ” nvbuf-memory=0 (Default NVMM) λ˜λŠ” nvbuf-memory=4 (Unified) 선택

4. 싀무 νŠΈλŸ¬λΈ”μŠˆνŒ…: μ§€μ—° 제거λ₯Ό μœ„ν•œ νŒŒμ΄ν”„λΌμΈ ꡬ체 μ„€μ •

μ‹€μ œ 닀채널 RTSP κ΄€μ œ νŒŒμ΄ν”„λΌμΈμ—μ„œ 버퍼 λ°€λ¦Ό ν˜„μƒμ„ λ°©μ§€ν•˜λŠ” 핡심 기법은 'μ‹€μ‹œκ°„ 버퍼 λ“œλ‘­ μ „λž΅(Leaky Queue)'κ³Ό 'RTSP λ Œλ”λ§ 동기화 ν•΄μ œ'μž…λ‹ˆλ‹€.

κ°€. Leaky Queue μ μš©μ„ ν†΅ν•œ μ‹€μ‹œκ°„ ν”„λ ˆμž„ μœ μ§€

λ„€νŠΈμ›Œν¬ λΆˆμ•ˆμ •μ΄λ‚˜ μˆœκ°„μ μΈ μΆ”λ‘  병λͺ©μœΌλ‘œ ν”„λ ˆμž„μ΄ μŒ“μΌ λ•Œ, μ˜› ν”„λ ˆμž„μ„ 버리고 κ°€μž₯ 졜근 ν”„λ ˆμž„λ§Œ μœ μ§€ν•˜λ„λ‘ 큐 속성을 λ³€κ²½ν•©λ‹ˆλ‹€.

# GStreamer C/Python API λ˜λŠ” C-Command Line μ˜ˆμ‹œ 속성
queue leaky=2 max-size-buffers=1 max-size-bytes=0 max-size-time=0

μœ„ μ„€μ •μ—μ„œ leaky=2 (downstream/downstream-leaky) λ˜λŠ” leaky=1 (upstream) 속성을 μ§€μ •ν•˜λ©΄ 큐가 가득 찼을 λ•Œ 였래된 버퍼λ₯Ό μ¦‰μ‹œ λ“œλ‘­(Drop)ν•˜μ—¬ μ§€μ—° μœ μž…μ„ 물리적으둜 μ°¨λ‹¨ν•©λ‹ˆλ‹€.

λ‚˜. RTSP μˆ˜μ‹ λΆ€(rtspsrc) μ΅œμ ν™” νŒŒλΌλ―Έν„°

RTSP μ†ŒμŠ€ λ‹¨μ—μ„œλΆ€ν„° 지연을 μ΅œλŒ€λ‘œ 쀄이기 μœ„ν•΄ λ‹€μŒ ν”ŒλŸ¬κ·ΈμΈ 속성 쑰정을 ꢌμž₯ν•©λ‹ˆλ‹€.

  • latency=0: RTSP μ§€ν„° 버퍼 크기λ₯Ό μ΅œμ†Œν™”ν•˜μ—¬ μ‹€μ‹œκ°„ νŒ¨ν‚· 전솑 μˆ˜μ‹ 
  • drop-on-latency=true: μ§€μ •λœ λΌν…μ‹œ 초과 μ‹œ ν”„λ ˆμž„ λ“œλ‘­ ν—ˆμš©
  • protocols=tcp: UDP μˆ˜μ‹  μ‹œ λ°œμƒν•˜λŠ” νŒ¨ν‚· μœ μ‹€λ‘œ μΈν•œ ν™”λ©΄ 깨짐 및 디코더 μž¬λ™κΈ°ν™” μ§€μ—° λ°©μ§€λ₯Ό μœ„ν•΄ μ•ˆμ •μ μΈ TCP 전솑 κ°•μ œ

λ‹€. DeepStream latency μΈ‘μ • 도ꡬ ν™œμš©

μ‹œμŠ€ν…œμ˜ μ •ν™•ν•œ μ§€μ—° 병λͺ© ꡬ간을 μ°ΎκΈ° μœ„ν•΄ DeepStreamμ—μ„œ μ œκ³΅ν•˜λŠ” Latency Measurement APIλ₯Ό ν™œμ„±ν™”ν•©λ‹ˆλ‹€. ν™˜κ²½ λ³€μˆ˜λ‘œ NVDS_ENABLE_LATENCY_MEASUREMENT=1을 수좜(Export)ν•œ ν›„ μ‹€ν–‰ν•˜λ©΄ 각 ν”ŒλŸ¬κ·ΈμΈ μš”μ†Œ(Dec -> Mux -> Infer -> OSD)별 체λ₯˜ μ‹œκ°„μ„ λ°€λ¦¬μ΄ˆ(ms) λ‹¨μœ„λ‘œ μ •ν™•νžˆ λ‘œκΉ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.



5. κ²°λ‘  및 μ΅œμ ν™” μš”μ•½

NVIDIA Jetson Orinκ³Ό DeepStream SDK 기반의 닀채널 RTSP μ‹œμŠ€ν…œ ꡬ좕 μ‹œ λ°œμƒν•˜λŠ” νŒŒμ΄ν”„λΌμΈ μ§€μ—° ν˜„μƒμ€ λ‹¨μˆœνžˆ HW μ„±λŠ₯ λΆ€μ‘± λ•Œλ¬Έμ΄ μ•„λ‹ˆλΌ, μ†Œν”„νŠΈμ›¨μ–΄ λ©”λͺ¨λ¦¬ νŒŒμ΄ν”„λΌμΈμ˜ λΆˆν•„μš”ν•œ Copy 및 버퍼 μ œμ–΄ λ―Έν‘μ—μ„œ λΉ„λ‘―λ˜λŠ” κ²½μš°κ°€ λŒ€λΆ€λΆ„μž…λ‹ˆλ‹€.

  1. NVMM Zero-Copy κ°•μ œ: νŒŒμ΄ν”„λΌμΈ μ „ κ΅¬κ°„μ—μ„œ video/x-raw(memory:NVMM) 포맷을 μœ μ§€ν•˜μ—¬ CPU/GPU λ©”λͺ¨λ¦¬ 볡사 μ΅œμ†Œν™”
  2. Leaky Queue λ„μž…: 디코더 이후 및 Muxer 이전 단계에 leaky=2 max-size-buffers=1 기반 큐λ₯Ό λ°°μΉ˜ν•˜μ—¬ μ‹€μ‹œκ°„ ν”„λ ˆμž„ 동기 μœ μ§€
  3. nvstreammux νƒ€μž„μ•„μ›ƒ μ œμ–΄: batched-push-timeout 속성을 μ‹€μ‹œκ°„ ν”„λ ˆμž„λ ˆμ΄νŠΈμ— 맞좰 μΆ•μ†Œ μ„€μ •ν•˜μ—¬ μΆ”λ‘  λŒ€κΈ° μ§€μ—° λ°©μ§€
  4. TensorRT INT8 μ–‘μžν™”: μ—”μ§„ 정밀도 μ „ν™˜μ„ ν†΅ν•œ μΆ”λ‘  속도 κ·ΉλŒ€ν™”λ‘œ ν•˜λ₯˜(Downstream) 병λͺ© ν•΄μ†Œ

μœ„μ˜ μ•„ν‚€ν…μ²˜ κ°€μ΄λ“œλ₯Ό μ‹œμŠ€ν…œ νŒŒμ΄ν”„λΌμΈ 섀계 및 νŠΈλŸ¬λΈ”μŠˆνŒ… 과정에 μ μš©ν•œλ‹€λ©΄, 16채널 μ΄μƒμ˜ 고밀도 IP 카메라 슀트림 κ΄€μ œ ν™˜κ²½μ—μ„œλ„ ν”„λ ˆμž„ μ§€μ—° μ—†λŠ” μ•ˆμ •μ μΈ μ‹€μ‹œκ°„ AI κ΄€μ œ μ‹œμŠ€ν…œμ„ μ„±κ³΅μ μœΌλ‘œ μš΄μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ°˜μ‘ν˜•