코딩 연습

OBS에서 화면 일부 녹화시 녹화 영역 표시하기 (Mac) 본문

잡다한 것들

OBS에서 화면 일부 녹화시 녹화 영역 표시하기 (Mac)

코딩아저씨 2025. 10. 1. 09:10
반응형

OBS 에서 화면의 일부분만 녹화할 경우, 녹화 영역이 표시 되지 않아 불편하다.

인공지능에게 물어봐도 그런 기능은 OBS 자체내에서는 제공하지 않는다고만 하고, 그럼 그런 기능을 갖는 플러그인이라도 찾아달라고 했는데 제대로 찾아주질 못했다.

이런 저런 검색 후에 알아낸 방법이 hammerspoon 을 이용하는 방법인데 아주 딱 마음에 든다.

 

일단 hammerspoon 을 설치한다. (https://www.hammerspoon.org)

 

~/.hammerspoon/init.lua 에 다음 코드를 추가한다.

 

 -- OBS 녹화 영역 표시를 위한 Hammerspoon 스크립트
 
 -- 1. OBS 녹화 영역의 좌표 및 크기 설정 (이 값을 OBS 설정에 맞춰 변경하세요!)
 local OBS_X = 100       -- OBS 녹화 영역의 시작 X 좌표
 local OBS_Y = 50        -- OBS 녹화 영역의 시작 Y 좌표
 local OBS_WIDTH = 1280  -- OBS 녹화 영역의 너비
 local OBS_HEIGHT = 720  -- OBS 녹화 영역의 높이
 
 local BORDER_THICKNESS = 4 -- 테두리 두께 (픽셀)
 local BORDER_COLOR = {red = 1, green = 0, blue = 0, alpha = 0.8} -- 테두리 색상 (빨간색, 투명도 80%)
 
 -- 2. hs.canvas 객체 생성
 local obsBorderCanvas = nil
 
 -- 3. 테두리를 그리는 함수
 local function drawObsBorder()
     if obsBorderCanvas then
         obsBorderCanvas:delete() -- 기존 캔버스 삭제 (업데이트 시)
     end
 
     -- 캔버스 생성 및 위치/크기 설정
     obsBorderCanvas = hs.canvas.new(hs.geometry.rect(OBS_X, OBS_Y, OBS_WIDTH, OBS_HEIGHT))
 
     -- 캔버스에 테두리 그리기
     obsBorderCanvas[1] = {
         type = "rectangle",
         frame = {x = 0, y = 0, w = OBS_WIDTH, h = OBS_HEIGHT}, -- 캔버스 내에서의 위치
         fillColor = {red = 0, green = 0, blue = 0, alpha = 0}, -- 채우기 색상 (투명)
         strokeColor = BORDER_COLOR, -- 테두리 색상
         strokeWidth = BORDER_THICKNESS -- 테두리 두께
     }
 
     obsBorderCanvas:show() -- 캔버스 표시
     obsBorderCanvas:setLevel(hs.canvas.windowLevels.overlay) -- 다른 창 위에 항상 표시되도록 레벨 설정
 end
 
 -- 4. 테두리를 숨기는 함수
 local function hideObsBorder()
     if obsBorderCanvas then
         obsBorderCanvas:hide()
     end
 end
 
 -- 5. 테두리 표시/숨기기를 토글하는 핫키 설정
 -- 예시: `Ctrl + Option + R` 키를 누르면 테두리가 토글됩니다.
 hs.hotkey.bind({"ctrl", "alt"}, "R", function()
     if obsBorderCanvas and obsBorderCanvas:isVisible() then
         hideObsBorder()
         hs.notify.show("Hammerspoon", "", "OBS 녹화 영역 표시: 숨김")
     else
         drawObsBorder()
         hs.notify.show("Hammerspoon", "", "OBS 녹화 영역 표시: 활성화")
     end
 end)
 
 -- Hammerspoon이 시작될 때 알림
 hs.notify.show("Hammerspoon", "", "OBS 녹화 영역 스크립트 로드됨. Ctrl+Alt+R로 토글.")
 
 -- (선택 사항) Hammerspoon 설정이 변경될 때마다 스크립트 다시 로드
 -- hs.reload.set=true

 

 -- 1. OBS 녹화 영역의 좌표 및 크기 설정 (이 값을 OBS 설정에 맞춰 변경하세요!)

이 부분을 본인의 상황에 맞게 변경한다. (CMD-SHIFT-4 를 눌러서 녹화하고자 하는 영역을 선택할 때, 시작점 클리시 나오는 좌표, 드래그시 나오는 좌표들을 보면 된다.)

 

저장한 다음 hammerspoon 을 상단바에서 찾아서 클릭한다음 Reload Config 를 선택한다.

 

이제 OPT-CTRL-R 키를 누르면 빨간색 테두리가 나오는 것을 볼 수 있다. 

다시 한 번 OPT-CTRL-R 키를 누르면 테두리는 사라진다.

반응형


Comments