입력 및 미디어
입력은 OBS의 소스(Browser Source, 텍스트, 미디어, 캡처 장치 등)입니다. 이 가이드에서는 입력의 생성 및 관리, 미디어 재생 제어, 입력 설정 편집, 하드웨어 캡처 장치 속성 작업을 다룹니다.
입력 관리 (CRUD)
| 함수 | 설명 |
|---|
CreateInput(Scene, Name, Kind, Settings, Enabled) | 새 입력을 생성하고 장면에 추가 |
CreateInputFromString(Scene, Name, Kind, JsonSettings, Enabled) | Blueprint 친화적 버전 |
RemoveInput(Name) | 입력 제거 (어떤 장면에도 포함되어 있으면 안 됩니다!) |
SetInputName(Name, NewName) | 입력 이름 변경 |
GetInputKindList(bUnversioned) | 사용 가능한 입력 종류(소스 유형) 가져오기 |
GetCachedInputKinds() | 로컬에 캐시된 입력 종류 가져오기 |
주요 입력 종류
| 종류 | 설명 |
|---|
browser_source | 웹 브라우저 |
text_gdiplus_v3 | 텍스트 (GDI+, Windows) |
text_ft2_source_v2 | 텍스트 (FreeType2) |
ffmpeg_source | 미디어 소스 |
image_source | 이미지 |
color_source_v3 | 단색 |
vlc_source | VLC 비디오 |
window_capture | 창 캡처 |
game_capture | 게임 캡처 |
dshow_input | 비디오 캡처 장치 |
wasapi_input_capture | 오디오 입력 |
wasapi_output_capture | 오디오 출력 캡처 |
참고:
CreateInput은 입력을 생성하는 동시에 지정된 장면에 원자적으로 추가합니다.
RemoveInput은 입력이 아직 어떤 장면에서 참조되고 있으면 실패합니다. 먼저 모든 장면 항목을 제거하세요.
- 입력 이름은 OBS 내에서 전역적으로 고유해야 합니다.
- 버전 없는 이름을 사용하려면
GetInputKindList(true)를 사용하세요 (더 간단하며 권장됩니다).
미디어 재생
| 함수 | 설명 |
|---|
PlayMedia(Name) | 재생 시작 |
PauseMedia(Name) | 재생 일시 정지 |
StopMedia(Name) | 재생 중지 |
RestartMedia(Name) | 처음부터 다시 시작 |
NextMedia(Name) | 재생 목록의 다음 항목으로 이동 |
PreviousMedia(Name) | 재생 목록의 이전 항목으로 이동 |
SetMediaInputCursor(Name, Ms) | 밀리초 단위 위치로 탐색 |
OffsetMediaInputCursor(Name, OffsetMs) | 현재 위치를 기준으로 상대 탐색 |
SeekToPercent(Name, Percent) | 전체 재생 시간의 비율로 탐색 (0.0 ~ 1.0) |
GetMediaInputStatus(Name) | 미디어 상태 가져오기 (상태, 재생 시간, 커서) |
GetCachedMediaInputStatus(Name) | 로컬에 캐시된 미디어 상태 가져오기 |
미디어 이벤트
OnMediaInputPlaybackStarted(InputName): 미디어 재생 시작됨
OnMediaInputPlaybackEnded(InputName): 미디어 재생 완료됨
OnMediaInputActionTriggered(InputName, Action): 미디어 동작이 트리거됨
OnMediaInputStatusReceived(Status): 미디어 상태를 수신함
입력 설정
| 함수 | 설명 |
|---|
GetInputSettings(Name) | 입력의 현재 설정 가져오기 (비동기) |
GetInputSettingsByUuid(Uuid) | 입력 UUID로 설정 가져오기 |
SetInputSettings(Name, Settings, Overlay) | 입력 설정 지정 (JSON 오브젝트) |
SetInputSettingsFromString(Name, JsonStr, Overlay) | 입력 설정 지정 (JSON 문자열) |
GetInputDefaultSettings(Kind) | 입력 유형의 기본 설정 가져오기 |
SetTextSourceText(Name, Text) | 텍스트 소스의 텍스트 내용 설정 |
SetBrowserSourceUrl(Name, Url) | Browser Source의 URL 설정 |
SetImageSourceFile(Name, Path) | Image Source의 파일 경로 설정 |
SetMediaSourceFile(Name, Path, Loop) | 미디어 소스의 파일 경로 설정 |
SetColorSourceColor(Name, Color) | 색상 설정 (ABGR int64 형식) |
GetCachedInputSettings(Name) | 로컬에 캐시된 설정 가져오기 (JSON 오브젝트) |
GetCachedInputSettingsString(Name) | 로컬에 캐시된 설정 가져오기 (JSON 문자열) |
HasCachedSettings(Name) | 입력에 대한 설정이 캐시되어 있는지 확인 |
지원되는 입력 유형
| 입력 종류 | 편의 메서드 | 설정 키 |
|---|
text_gdiplus_v3 | SetTextSourceText() | text |
text_ft2_source_v2 | SetTextSourceText() | text |
browser_source | SetBrowserSourceUrl() | url |
image_source | SetImageSourceFile() | file |
ffmpeg_source | SetMediaSourceFile() | local_file, looping |
color_source_v3 | SetColorSourceColor() | color (ABGR) |
참고: bOverlay=true(기본값)를 사용하면 기존 설정과 병합되고, false를 사용하면 모든 설정이 교체됩니다.
장치 속성 (캡처 장치)
하드웨어(캡처 카드, 웹캠, 오디오 장치)로 지원되는 입력의 경우, InputSettings 핸들러를 통해 장치 목록 속성의 옵션을 열거하거나 속성 버튼을 “누를” 수 있습니다. GetClient()->GetInputSettings()를 통해 접근합니다.
| 함수 | 설명 |
|---|
GetInputPropertiesListPropertyItems(Input, Property) | 목록 속성의 항목 열거 (예: video_device_id). 비동기 방식으로 FOBSPropertyItems와 함께 OnInputPropertyItemsReceived를 발생시킵니다. |
PressInputPropertiesButton(Input, Property) | 속성 버튼 “누르기” (예: 활성화/새로 고침 버튼). 중단된 캡처 장치를 복구할 때 유용합니다. |
엔진 내 장치 선택기를 만들거나, 연결이 끊긴 캡처 장치를 다시 활성화하는 데 유용합니다.
// Enumerate the available cameras for a video capture device input.
Subsystem->GetClient()->GetInputSettings()
->GetInputPropertiesListPropertyItems(TEXT("Webcam"), TEXT("video_device_id"));
// Re-activate a stalled capture device.
Subsystem->GetClient()->GetInputSettings()
->PressInputPropertiesButton(TEXT("Webcam"), TEXT("activate"));
참고 항목