영상인식

GStreamer

728x90

GStreamer 란?

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

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

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

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

크로스 플랫폼이 고려되어, Linux, OS X, iOS, MS Windows, Android 등 다양한 플랫폼에서 작동하고, 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://minddoodle.tistory.com/6

 

GStreamer 란?

GStreamer 란? GStreamer는 스트리밍 미디어 애플리케이션을 만드는 프레임워크입니다. 조금 더 부연하자면 GObject 기반 자료형 체계와 C 프로그래밍 언어로 만들어진 파이프라인 기반 멀티미디어 프

minddoodle.tistory.com

 

참고 -

https://www.youtube.com/watch?v=HDY8pf-b1nA 

 

728x90

'영상인식' 카테고리의 다른 글

SDK란?  (0) 2021.07.05
Jetson nano와 같은 Edge device를 사용하는 이유  (0) 2021.07.05
CUDA(쿠다)  (0) 2021.07.01
YOLO 두바이 운전 영상 객체인식  (0) 2021.05.15
TensorFlow Object Detection 환경구축  (0) 2021.05.15