덕배의 블로그
Gstreamer가 무엇인지 알아보자 본문
반응형
Gstreamer
이번 글은 Gstreamer가 무엇인지 알아보려 한다. Deepstream는 Gstreamer을 기반으로 했기에 deepstream을 알고 싶다면 gstreamer도 아는 게 좋을 듯해서 글을 써보았다.
deepstream을 알고 싶다면 밑에 링크를 통해 알아보자.
엔비디아 NVIDIA Deepstream에 대해서 알아보자
NVIDIA DeepStream이란? 모든 애플리케이션에는 안정적인 실시간 IVA가 필요하다. Intelligent Video Analytics의 보다 손쉬운 개발을 지원하며 개발자들은 deepstream을 사용해 실시간으로 동영상 프레임을 처
kdbeom.com
GStreamer는 스트리밍 미디어 애플리케이션을 만들기 위한 프레임워크이다.
- GStreamer의 개발 프레임워크를 사용하면 모든 유형의 스트리밍 멀티미디어 응용 프로그램의 작성과 오디오나 비디오, 그 밖의 다양한 종류의 데이터 흐름을 처리 가능
- 대기 시간이 많이 요구되는 고급 오디오 응용 프로그램을 설계하기 위한 좋은 프레임워크
- gstreamer 프레임워크는 모든 형태의 스트리밍 미디어 애플리케이션을 개발 가능
- 오디오나 비디오 한 가지 타입만 가능한 것이 아니라 두 가지 타입 모두를 다룰 수 있다.
- 어떤 종류의 데이터 흐름도 구성할 수 있는 파이프라인 구조로 되어있다.
Element
- element는 Gstreamer의 객체들 중 중요한 클래스 각각의 element들을 연결시키고 데이터가 흘러가도록 한다.
- 각각의 element는 하나씩 기능을 가진다. 이러한 element들을 연결시켜서 특정한 task를 위한 pipeline을 만들 수 있다.
- 사용자가 직접 새로운 기능의 element를 생성 가능
Bins and pipelines
- Bin은 element들의 집합을 담고 있는 컨테이너이며 bin은 element의 subclass이기 때문에 bin을 element처럼 간단하게 다룬다.
- element들을 특정 bin에 포함시켜서 상태를 한 번에 변경하거나 특정한 이벤트를 주는 등, 다수의 element들을 간단하게 조작 가능
- pipeline은 가장 최상위 bin
- pipeline은 application의 bus를 제공하고 포함하고 있는 요소들에 대한 동기화를 관리
- pipeline의 상태를 PAUSED나 PLAYING 등으로 조작해 pipeline이 동작하고 데이터 흘러가도록 할 수 있다.
Pads
- pad는 element의 입출력을 담당
- element들을 연결하기 위해서 각각의 입력과 출력 pad를 연결시킨다. pad는 element 간의 연결의 조정과 data 흐름도 맡고 있다. 서로 연결된 element에서의 데이터들이 pad를 통해서 다른 element로 흘러가기 때문
- 각각의 pad는 각각 조작할 수 있는 데이터 capabilities가 있다. element 연결 시에도 해당 pad 간의 capabilities를 비교하여 일치하는 것이 있는 경우에 해당 타입을 capabilities로 pad가 연결된다. pipeline을 흐르는 데이터 타입을 제한
- GStreamer에서 데이터 흐름은 주로 한 방향으로만 흘러간다.
- element의 source pad로부터 그다음 element의 sink pad 방향으로 흘러간다.
더 자세하게 알고 싶다면 밑에 링크를 통해 알기를 바란다.
What is GStreamer?
What is GStreamer? GStreamer is a framework for creating streaming media applications. The fundamental design comes from the video pipeline at Oregon Graduate Institute, as well as some ideas from DirectShow. GStreamer's development framework makes it poss
gstreamer.freedesktop.org
'인공지능' 카테고리의 다른 글
OAK-D PoE 카메라에서 yolov8 커스텀 해보기 (0) | 2023.08.19 |
---|---|
로지스틱 회귀, 시그모이드와 비용함수(크로스 엔트로피)에 대해 알고 파이토치로 실습해보자 (0) | 2023.08.18 |
NVIDIA Jetson Xavier Nx board에 대해서 알아보자 (0) | 2023.08.16 |
파이토치 nn.Module 라이브러리를 이용한 선형 회귀 (0) | 2023.08.13 |
다중 선형 회귀, 벡터 내적에 대해서 알아보고 파이토치로 실습해보기 (0) | 2023.08.12 |