GObject처럼 element를 사용하면 애플리케이션과 element가 상호 작용하는 간단한 방법으로 GObject 속성을 사용할 수 있습니다. 이 방법은 간단한 getter 및 setter에는 충분하지만 더 복잡한 경우에는 실패합니다. 보다 복잡한 사용 사례의 경우 GStreamer는 GObject GTypeInterface 유형을 기반으로 하는 인터페이스를 사용합니다.
이 텍스트는 소개용이며 소스 코드 예제를 포함하지 않습니다. 자세한 내용은 API 참조를 살펴보세요.
The URI Handler interface
지금까지의 예에서는 "filesrc" element를 사용하여 로컬 파일에 대한 지원만 보여주었지만 GStreamer는 더 많은 location source를 지원합니다.
GStreamer는 애플리케이션이 특정 네트워크 source 유형에 대해 어떤 element를 사용해야 하는지와 같은 URI 세부 정보를 알 필요가 없습니다. 이러한 세부 사항은 GstURIHandler 인터페이스에 의해 추상화됩니다.
URI 이름 지정에 대한 엄격한 규칙은 없지만 일반적으로 일반적인 사용 이름 지정 규칙을 따릅니다. 예를 들어 올바른 플러그인이 설치되어 있다고 가정하면 GStreamer는 다음을 지원합니다.
file:///<path>/<file>
http://<host>/<path>/<file>
rtsp://<host>/<path>
dvb://<CHANNEL>
...
특정 URI를 지원하는 source 또는 sink element를 얻으려면 필요한 방향에 따라 GST_URI_SRC 또는 GST_URI_SINK를 GstURIType으로 사용하여 gst_element_make_from_uri()를 사용하세요.
GLib의 g_filename_to_uri() 및 g_uri_to_filename()을 사용하여 파일 이름을 URI로 변환하거나 URI를 파일 이름으로 변환할 수 있습니다.
The Color Balance interface
GstColorBalance 인터페이스는 밝기, 대비 등과 같은 element의 비디오 관련 속성을 제어하는 방법입니다. 이것이 존재하는 유일한 이유는 작성자가 아는 한 GObject를 사용하여 속성을 동적으로 등록할 수 있는 방법이 없기 때문입니다.
Colorbalance 인터페이스는 xvimagesink, glimagesink 및 Video4linux2 element를 포함한 여러 플러그인으로 구현됩니다.
The Video Overlay interface
GstVideoOverlay 인터페이스는 애플리케이션 창에 비디오 스트림을 삽입하는 문제를 해결하기 위해 만들어졌습니다. 애플리케이션은 이 인터페이스를 구현하는 element에 window handle을 제공하는데 그러면 해당 element는 새 최상위 창을 생성하는 대신 이 window handle을 사용하여 그 위에 이미지를 그립니다. 이는 비디오 플레이어에 비디오를 삽입하는 데 유용합니다.
이 인터페이스는 특히 Video4linux2 element와 glimagesink, ximagesink, xvimagesink, 그리고 sdlvideosink에 의해 구현됩니다.
Other interface
GStreamer가 제공하고 일부 element에 의해 구현되는 여러 다른 인터페이스도 많이 있습니다. 그 중에는 아래와 같은 인터페이스들이 있습니다.
- GstChildProxy: 다중 하위 element의 내부 element 속성에 액세스
- GstNavigation: navigation 이벤트 전송 및 parsing
- GstPreset: element presets 처리에 사용
- GstRTSPExtension: RTSP 확장 인터페이스
- GstStreamVolume: 스트림 볼륨 레벨에 액세스하고 제어하는 인터페이스
- GstTagSetter: 미디어 metadata 처리에 사용
- GstTagXmpWriter: XMP serialization를 제공하는 element에 사용
- GstTocSetter: TOC와 유사한 데이터 설정 및 검색에 사용
- GstTuner: RF 튜닝 작업을 제공하는 element에 사용
- GstVideoDirection: 비디오 rotation 및 flipping 제어에 사용
- GstVideoOrientation: 비디오 orientation 제어에 사용
- GstWaylandVideo: Wayland 비디오 인터페이스
'IT와 개발 > GStreamer Study' 카테고리의 다른 글
Buffering (1) | 2024.06.14 |
---|---|
Clocks and synchronization in GStreamer (3) | 2024.06.07 |
Metadata (91) | 2024.05.24 |
Position tracking and seeking (0) | 2024.05.17 |
Your first application (0) | 2024.05.10 |