필터
OBS의 필터는 장면이나 입력 등 모든 소스에 연결되어 해당 소스의 모양이나 소리를 변경합니다. 색상 보정, 크로마 키, 노이즈 억제 등이 그 예입니다. 이 플러그인은 OBS 필터 API 전체를 제공합니다. 사용 가능한 필터 종류 목록 조회, 소스별 필터 체인 읽기 및 쓰기, 그리고 이벤트를 통한 필터 변경 반응이 모두 지원됩니다.
함수
| 함수 | 설명 |
|---|---|
GetSourceFilterKindList() | 사용 가능한 필터 종류 목록 새로 고침 |
GetCachedFilterKinds() | 로컬에 캐시된 필터 종류 목록 가져오기 |
GetSourceFilterList(SourceName) | 소스에 있는 모든 필터 가져오기 |
GetCachedFiltersForSource(SourceName) | 소스의 로컬 캐시된 필터 가져오기 |
HasCachedFiltersForSource(SourceName) | 소스의 필터 데이터가 캐시되어 있는지 확인 |
CreateSourceFilter(Source, Name, Kind, Settings) | 소스에 새 필터 추가 |
RemoveSourceFilter(Source, FilterName) | 소스에서 필터 제거 |
SetSourceFilterEnabled(Source, Filter, Enabled) | 필터 활성화 또는 비활성화 |
SetSourceFilterName(Source, OldName, NewName) | 필터 이름 변경 |
SetSourceFilterIndex(Source, Filter, Index) | 체인에서 필터 위치 변경 (0 = 맨 위) |
SetSourceFilterSettings(Source, Filter, Settings, Overlay) | 필터 구성 업데이트 |
GetSourceFilter(Source, Filter) | 특정 필터 세부 정보 가져오기 |
GetSourceFilterDefaultSettings(Kind) | 필터 종류의 기본 설정 가져오기 |
참고: 필터는 SourceName + FilterName 쌍으로 식별됩니다 (UUID 없음). 필터 인덱스
0은 처리 체인에서 맨 위에 있는 필터입니다.
이벤트
필터 변경에 반응하려면 다음 이벤트를 구독하세요.
OnSourceFilterCreated(SourceName, FilterName, FilterKind, FilterIndex, bEnabled): 소스에 필터가 추가됨OnSourceFilterRemoved(SourceName, FilterName): 소스에서 필터가 제거됨OnSourceFilterNameChanged(SourceName, OldName, NewName): 필터 이름이 변경됨OnSourceFilterSettingsChanged(SourceName, FilterName): 필터 설정이 수정됨OnSourceFilterEnableStateChanged(SourceName, FilterName, bEnabled): 필터가 활성화/비활성화됨OnSourceFilterListReindexed(SourceName): 소스의 필터 순서가 변경됨
예제
// Add a color correction filter to a source, then disable it.
Subsystem->CreateSourceFilter(
TEXT("Webcam"),
TEXT("Warmth"),
TEXT("color_filter_v2"),
Settings);
Subsystem->SetSourceFilterEnabled(TEXT("Webcam"), TEXT("Warmth"), false);
// Move a filter to the top of the chain.
Subsystem->SetSourceFilterIndex(TEXT("Webcam"), TEXT("Warmth"), 0);