GStreamer 란 무엇인가

이 글은 GStreamer org 의 “GStreamer Applicatino Development Manual” 을 번역한 것이다.

원본 링크: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/manual.pdf


GStreamer 란 무엇입니까?

GStreamer는 스트리밍 미디어 응용 프로그램을 만들기위한 프레임 워크입니다.
기본 디자인은 Oregon Graduate Institute의 비디오 파이프 라인과 DirectShow의 아이디어에서 비롯됩니다.

GStreamer의 개발 프레임 워크를 통해 모든 유형의 스트리밍 멀티미디어 응용 프로그램을 작성할 수 있습니다.
GStreamer 프레임 워크는 오디오 또는 비디오 또는 둘 다를 처리하는 응용 프로그램을 쉽게 작성할 수 있도록 설계되었습니다.
오디오 및 비디오에만 국한되지 않고, 어떤 종류의 Data flow 도 처리 할 수 ​​있습니다.
파이프 라인 설계는 적용된 필터가 유발하는 것 이상의 오버헤드가 거의 없도록 만들어졌습니다.
따라서 GStreamer는 latency 를 많이 요구하는 하이엔드 오디오 애플리케이션을 설계하기위한 훌륭한 프레임 워크가됩니다.

GStreamer의 가장 명백한 용도 중 하나는 미디어 플레이어를 만드는 데 사용하는 것입니다. GStreamer에는 MP3, Ogg / Vorbis, MPEG-1 / 2, AVI, Quicktime, mod 등 다양한 형식을 지원할 수있는 미디어 플레이어를 구축하기위한 구성 요소가 이미 포함되어 있습니다.
그러나 GStreamer는 다른 미디어 플레이어 그 이상입니다.
주요 장점은 플러그 가능한 구성 요소를 임의의 파이프 라인에 혼합하여 일치시켜 본격적인 비디오 또는 오디오 편집 응용 프로그램을 작성할 수 있다는 것입니다.

프레임 워크는 다양한 코덱 및 기타 기능을 제공하는 플러그인을 기반으로합니다.
플러그인은 파이프 라인에서 연결 및 배치 될 수 있습니다.
이 파이프 라인은 Data flow 를 정의합니다.
파이프 라인은 GUI 편집기로 편집하고 XML로 저장하여 최소한의 노력으로
파이프 라인 라이브러리를 만들 수 있습니다.

GStreamer 핵심 기능은 플러그인, Data flow 및 미디어 타입 handling / negotiation 을 위한
프레임 워크를 제공하는 것입니다.
또한 다양한 플러그인을 사용하여 애플리케이션을 작성하는 API를 제공합니다.

GStreamer는 아래 항목을 제공합니다.
     – 멀티미디어 애플리케이션을 위한 API
    – 플러그인 아키텍처
     – 파이프 라인 아키텍처
     – 미디어 타입 Handling / Negotiation 을 위한 메커니즘
     – 동기화 메커니즘
     – 1000 개 이상의 요소를 제공하는 250 개가 넘는 플러그인
     – 도구 세트

GStreamer 플러그인은 다음과 같이 분류 될 수 있습니다.
     – 프로토콜 handling
     – sources : 오디오 및 비디오 용 (프로토콜 플러그인 포함)
     – formats : parsers, formaters, muxers, demuxers, metadata, subtitles
     – codecs : 코더 및 디코더
     – filters : converters, mixers, effects, …
     – sinks : 오디오 및 비디오 용 (프로토콜 플러그인 포함)

undefined

GStreamer는 아래와 같이 패키징 되어 있습니다.
     – gstreamer : 핵심 패키지
     – gst-plugins-base : 필수적인 elements 집합
     – gst-plugins-good : LGPL 라이선스의 Good quality 플러그인 집합
     – gst-plugins-ugly : distribution 문제를 일으킬 수있는 Good quality 플러그인 집합
     – gst-plugins-bad : Quality 개선이 이 더 필요한 플러그인 집합
     – gst-libav : 디코딩 및 인코딩을 위해 libav를 래핑하는 플러그인 집합
     – 다른 몇 가지 패키지

댓글 남기기