Mind Doodle

GStreamer 란? 본문

IT/GStreamer

GStreamer 란?

Mind Doodle 2020. 6. 4. 16:31

GStreamer 란?

GStreamer는 스트리밍 미디어 애플리케이션을 만드는 프레임워크입니다.

조금 더 부연하자면 GObject 기반 자료형 체계와 C 프로그래밍 언어로 만들어진 파이프라인 기반 멀티미디어 프레임워크입니다.

오픈 소스 소프트웨어이며 단순 오디오 및 비디오 재생, 저장, 스트리밍 및 다양한 멀티미디어 처리를 프로그래머가 관리 구성 요소를 만들 수 있습니다.

프레임워크의 기본적인 디자인은 파이프라인을 디자인하여 다양한 플러그인 기능을 사용합니다.

또한 크로스 플랫폼이 고려되어, Linux, OS X, iOS, MS Windows, Android 등 다양한 플랫폼에서 작동합니다.

또한 GStreamer는 LGPL 라이선스를 따르고 있습니다.

 

GStreamer 특징

GStreamer 프레임워크는 오디오와 비디오에 대한 처리를 쉽게 설계할 수 있도록 도와두며 그 이외의 다양한 종류의 데이터 흐름 또한 처리할 수 있습니다.

 

GStreamer 프레임워크는 파이프라인 디자인을 통하여 다양한 유형의 멀티미디어 응용프로그램을 만들 수 있습니다.

파이프라인 설계는 적용된 필터가 유도하는 것 이상으로 오버헤드가 거의 없도록 만들어져 있습니다. 이런 특징이 GStreamer를 지연시간에 높은 요구를 하는 고성능 오디오 애플리케이션을 디자인하기에 좋은 프레임워크로 만들어 줍니다.


GStreamer 프레임워크는 다양한 코덱과 다른 기능을 제공할 플러그인에 기초합니다.

플러그인은 파이프라인에 연결되고 배열될 수 있고 파이프라인은 데이터의 흐름을 정의합니다.

파이프라인도 GUI 편집기로 편집해 XML로 저장하여 파이프라인 라이브러리를 만들 수 있습니다.

 

GStreamer는 미디어 플레이어를 만들기에 굉장히 적합한 구조입니다.

MP3, Ogg/Vorbis, MPEG-1/2, AVI, Quicktime, mod 등 매우 다양한 포맷을 지원할 수 있는 미디어 플레이어 제작을 위한 컴포넌트와 다양한 코덱을 포함하고 있습니다.

플러그형 구성요소를 혼합해 임의의 파이프라인에 매칭해 본격적인 동영상이나 오디오 편집 애플리케이션을 작성할 수 있는 것이 주요 장점입니다.

 

GStreamer 핵심 기능을 요약하자면 파이프라인 디자인, 플러그인, 다양한 미디어 유형 처리가 가능한 프레임워크를 제공하는 것입니다.

추가적으로 다양한 플러그인을 활용해 애플리케이션을 작성하는 API도 제공합니다.

다만 플러그인을 새로 제작하여 GStreamer 프레임워크에 적용하기에 유연하게 작업할 수 있지만 빌드 환경 구성 및 GStreamer과 GObjec에 대한 충분한 이해가 있어야 가능하여 플러그인 제작에 대한 진입장벽이 높은 편입니다.

 

< GStreamer 제공 기능 >

- 멀티미디어 애플리케이션 API

- 플러그인 아키텍처
- 파이프라인 아키텍처
- 미디어 유형 메커니즘
- 동기화 메커니즘
- 1000개 이상의 요소를 제공하는 250개 이상의 플러그인

- 프레임워크 도구들

 

< GStreamer 플러그인 분류 >

- 프로토콜 처리
- 소스(sources) : 오디오 및 비디오용(프로토콜 플러그인)
- 포맷(formats) : parsers, formaters, muxer, demuxer, metadata, subtitles
- 코덱(codecs) : encoders & decoders
- 필터(filters) : converts, mixers, effects,...
- 싱크(sinks) : 오디오 및 비디오용(프로토콜 플러그인)

 

 

 

 

< GStreamer package 종류 >

- gstreamer : the core package

- gst-plugins-base : an essential exemplary set of elements

- gst-plugins-good : a set of good-quality plug-ins under LGPL

- gst-plugins-ugly : a set of good-quality plug-ins that might pose distribution problems

- gst-plugins-bad : a set of plug-ins that need more quality

- gst-libav : a set of plug-ins that wrap libav for decoding and encoding a few others packages

 

 

<참조>

웹사이트 : https://gstreamer.freedesktop.org/

 

GStreamer: open source multimedia framework

A new version of the GStreamer Rust bindings, 0.15.0, was released. As usual this release follows the latest gtk-rs release, and a new version of the GStreamer plugins written in Rust was also released. This new version features a lot of newly bound API fo

gstreamer.freedesktop.org

위키백과 : https://ko.wikipedia.org/wiki/GStreamer

 

GStreamer - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. GStreamer는 GObject 기반 자료형 체계와 더불어 C 프로그래밍 언어로 작성한 파이프라인 기반 멀티미디어 프레임워크이다. GStreamer는 단순 오디오 재생, 오디오 및 �

ko.wikipedia.org

GNOME 웹사이트 : https://developer.gnome.org/

 

그놈 개발 센터

개발자용 그놈 플랫폼 및 라이브러리 안내서입니다. GTK+로 효율적인 인터페이스를 설계할 때의 조언과 지침입니다. 늘어나고 있는 개발 부분 내용은 일반적인 주제로 안내합니다. GTK+와 같은 그

developer.gnome.org

 

 

* 잘못된 부분이 있을 경우 해당 내용에 대해서 댓글로 부탁드리며 검토 후 수정하겠습니다.

 

 

Comments