오디오
이 가이드는 기본 오디오 제어(음소거/볼륨), 고급 오디오 제어(밸런스, 동기화 오프셋, 모니터링, 다중 트랙 라우팅, 특수 입력), 그리고 음성 활동 감지에 사용되는 실시간 볼륨 미터를 다룹니다.
오디오 제어
| 함수 | 설명 |
|---|---|
SetInputMute(Name, Muted) | 입력을 음소거 / 음소거 해제합니다 |
ToggleInputMute(Name) | 음소거 상태를 토글합니다 |
GetInputMute(Name) | 현재 음소거 상태를 가져옵니다 |
SetInputVolume(Name, VolumeDb) | 볼륨을 데시벨 단위로 설정합니다 |
SetInputVolumeMultiplier(Name, VolumeMul) | 볼륨을 배율로 설정합니다 (0.0 ~ 1.0 이상) |
GetInputVolume(Name) | 현재 볼륨을 가져옵니다 |
AdjustInputVolume(Name, DeltaDb) | 볼륨을 상대적으로 조정합니다 |
GetInputList() | OBS에서 입력 목록을 새로 고침합니다 |
GetCachedInputs() | 로컬에 캐시된 입력 목록을 가져옵니다 |
고급 오디오 제어
| 함수 | 설명 |
|---|---|
GetInputAudioBalance(Name) | 스테레오 밸런스를 가져옵니다 (비동기) |
SetInputAudioBalance(Name, Balance) | 스테레오 패닝을 설정합니다 (0.0=왼쪽, 0.5=가운데, 1.0=오른쪽) |
GetInputAudioSyncOffset(Name) | 동기화 오프셋을 ms 단위로 가져옵니다 (비동기) |
SetInputAudioSyncOffset(Name, OffsetMs) | 동기화 오프셋을 설정합니다 (-950 ~ 20000ms) |
GetInputAudioMonitorType(Name) | 모니터링 유형을 가져옵니다 (비동기) |
SetInputAudioMonitorType(Name, Type) | 모니터링 유형을 설정합니다 |
GetInputAudioTracks(Name) | 오디오 트랙 라우팅 상태를 가져옵니다 (비동기) |
SetInputAudioTracks(Name, Tracks) | 모든 오디오 트랙 상태를 설정합니다 (1~6) |
SetInputAudioTrack(Name, Track, Enabled) | 단일 오디오 트랙 상태를 설정합니다 |
GetSpecialInputs() | 기본 오디오 장치(특수 입력)를 가져옵니다 |
GetCachedSpecialInputs() | 캐시된 특수 입력을 가져옵니다 |
RefreshAllAdvancedAudioInfo() | 캐시된 입력의 모든 고급 오디오 정보를 가져옵니다 |
오디오 밸런스:
0.0= 완전 왼쪽0.5= 가운데 (기본값)1.0= 완전 오른쪽
동기화 오프셋:
- 범위:
-950~20000ms - 음수 값 = 오디오가 더 일찍 재생됨 (처리 지연 보정)
모니터링 유형 (EOBSMonitorType):
| 값 | 설명 |
|---|---|
None | 모니터링 없음 (기본값) |
MonitorOnly | OBS에서는 들리지만 방송/녹화에는 포함되지 않음 |
MonitorAndOutput | OBS에서도 들리고 방송/녹화에도 포함됨 |
오디오 트랙:
- 트랙 1~6을 각각 독립적으로 활성화/비활성화할 수 있습니다.
- 다중 트랙 녹화에 사용됩니다 (게임 오디오/마이크/Discord 오디오 분리).
- OBS 설정 → 출력 → 녹화에서 출력 트랙을 구성하세요.
볼륨 미터 및 음성 활동
입력별 실시간 오디오 레벨입니다. 이는 고빈도 이벤트이며 기본적으로 비활성화되어 있으므로, 필요할 때만 옵트인하세요.
| 함수 / 이벤트 | 설명 |
|---|---|
SetVolumeMetersEnabled(bEnable) | InputVolumeMeters 이벤트를 구독합니다 (입력별, 다채널 레벨) |
OnInputVolumeMeters | 입력마다 FOBSInputVolumeMeter를 포함하여 발생하며, 선형 배율과 파생된 dB 값, 그리고 가장 큰 채널 피크를 편의상 함께 제공합니다 |
GetClient()->GetAudio()->GetLastVolumeMeters() | 이벤트를 바인딩하는 대신 가장 최근 미터 프레임을 폴링합니다 |
SetInputActiveStateEventsEnabled(bEnable) + OnInputActiveStateChanged | 입력의 비디오 활성 상태가 변경되었습니다 |
이 미터를 기반으로 구현된 발화 중 / 대기 감지 기능에 대해서는 음성 활동 감지를 참조하세요.
참고: OBS는 음소거된 입력에 대해 빈 레벨을 보고합니다.
오디오 / 입력 이벤트
OnInputMuteStateChanged(InputName, bMuted): 입력 음소거 상태가 변경되었습니다OnInputVolumeChanged(InputName, VolumeDb, VolumeMul): 볼륨이 변경되었습니다OnInputAudioBalanceChanged(InputName, InputUuid, Balance): 스테레오 밸런스가 변경되었습니다OnInputAudioSyncOffsetChanged(InputName, InputUuid, SyncOffsetMs): 동기화 오프셋이 변경되었습니다OnInputAudioTracksChanged(InputName, InputUuid, AudioTracks): 오디오 트랙 라우팅이 변경되었습니다OnInputAudioMonitorTypeChanged(InputName, InputUuid, MonitorType): 모니터링 유형이 변경되었습니다OnSpecialInputsReceived(SpecialInputs): 기본 오디오 장치를 가져왔습니다OnInputSettingsChanged(InputName, InputUuid): 입력 설정이 수정되었습니다 (알림만)OnInputSettingsReceived(InputName, InputKind, Settings): 입력 설정 데이터를 가져왔습니다 (전체 데이터 포함)OnInputListUpdated: 입력 목록이 새로 고침되었습니다OnInputCreated(InputName, InputUuid, InputKind, UnversionedInputKind): 새 입력이 생성되었습니다OnInputRemoved(InputName, InputUuid): 입력이 제거되었습니다OnInputNameChanged(InputUuid, OldInputName, NewInputName): 입력 이름이 변경되었습니다OnInputKindListReceived(InputKinds): 사용 가능한 입력 종류 목록을 가져왔습니다
모든 OBS 도메인에 걸친 이벤트 전체 목록은 이벤트 레퍼런스를 참조하세요.