본문 바로가기

개발기술/영상처리

영상처리 인터페이스 및 프로토콜 개략

 Video Source Category


Each category represents a different way of accessing video streams, depending on how the camera or source delivers its data.


Some (like Webcam & Video File) are direct video sources.

  • Others (like ONVIF & IP Camera) use network streaming protocols.
  • Some (like GStreamer) act as advanced video pipelines.

 

Category What It Is How It Works
Webcam A directly connected USB camera or built-in laptop camera. Uses UVC (USB Video Class) to stream video as a standard video device recognized by the OS.
Video File A pre-recorded video file (MP4, AVI, etc.). Loads from storage instead of a live camera feed.
Directory A folder of images (e.g., sequential frames). Loads each image as a frame, useful for time-lapse or batch processing.
ONVIF A standard for network-based IP cameras. Uses RTSP (Real-Time Streaming Protocol) over a network to stream live video.
ScreenCap Captures the computer screen as a video stream. Useful for screen recording or using a desktop as a virtual camera.
IP Camera A generic network camera, not necessarily ONVIF-compliant. Uses RTSP, HTTP, or proprietary protocols to stream video from a remote camera.
GStreamer A multimedia processing framework for handling video/audio streams. Can process and manipulate video before loading it into RT Studio.

 

 

Multimedia frameworks

A multimedia framework is a software library or toolkit that helps developers process, stream, capture, and render various types of media as img, video, audio.

 

A multimedia framework  provides:

Capability Description
📥 Input handling Read video/audio from files, cameras, microphones, streams (e.g., RTSP, HTTP, etc.)
🔄 Processing & Transcoding Compress, decompress, encode, decode, resize, filter, convert formats
📤 Output handling Save to file, stream over the network, render on screen/speaker
🧩 Pipeline or Plugins Chain different operations like filters, encoders, sinks

 

Popular Multimedia Frameworks

Framework Description
FFmpeg Command-line tool and libraries (libav*) to encode/decode/stream/convert
GStreamer Modular, plugin-based framework ideal for live/real-time pipelines
DirectShow Microsoft’s multimedia framework (used in Windows Media)
VLC LibVLC Library from VLC media player (used for playback and streaming)
MediaPipe Google’s framework for ML-based video/audio (face detection, etc.)

 

Comparision of FFmpeg And Gstreamer

Feature FFmpeg GStreamer
Interface CLI (single command) Modular pipeline (element-based)
Use Case Transcode, convert, stream files Live capture, custom workflows
Latency Focus Less low-latency friendly Optimized for real-time use
Extensibility Less modular Highly modular (plugins)
Learning Curve Simpler to get started Steeper but more flexible

 

Streaming Protocol

 

What is HLS (HTTP Live Streaming)?

 

HLS (HTTP Live Streaming) is a media streaming protocol developed by Apple that delivers video/audio content over the internet in real time. It works by breaking video files into small segments (e.g., .ts files) and providing a master playlist file (.m3u8) that tells the client how to play them.

 

Why HLS?

  • Adaptive Streaming: Adjusts video quality based on network speed.
  • Low Latency: Ideal for live video streaming.
  • Cross-Platform: Works on browsers, mobile devices, and smart TVs.

 

Works on browsers 🌍 Supports Chrome, Firefox, Safari, mobile devices
Supports adaptive streaming 📶 Adjusts quality based on network speed
Easier to scale 🔄 Can serve multiple users via CDN

 

RTSP (Real-Time Streaming Protocol)

 

Low latency (~2 sec) ✅ Good for real-time surveillance
Not browser-friendly 🚫 Most browsers don’t support RTSP
Scalability issues 🚫 Hard to handle many users at once

 

 

📌 HLS vs RTSP

 

Feature HLS (HTTP Live Streaming) RTSP (Real-Time Streaming Protocol)
Transport Protocol HTTP RTP (Real-Time Transport Protocol)
Latency High (typically 10-30 sec) Low (typically <2 sec)
Compatibility Works in browsers, mobile, most devices Requires special players (VLC, OBS, etc.)
Usage Live video streaming over the web (e.g., YouTube, Twitch) Surveillance cameras, CCTV, real-time applications
Segments Converts stream into .m3u8 playlist & .ts files Sends continuous real-time stream
Adaptive Streaming Yes, supports multiple bitrates No