← 블로그로 돌아가기

Chrome 브라우저에서 라이브 스트림 녹화하기 (OBS 불필요)

Chrome에서 HLS 라이브 방송을 직접 녹화하는 3가지 방법 — 화면 녹화 없이, 화질 손상 없이.

Chrome에서 라이브 스트림을 녹화한다고 해서 OBS를 띄우고 Window Capture를 설정하고 수 시간의 영상을 재인코딩하면서 CPU를 불태워야 하는 것은 아닙니다. 라이브 스트림이 HLS라면 — 2026년의 대부분의 라이브 스트림이 그렇습니다 — 직접 스트림 복사로 비트 단위 정확도를 유지하면서, 재인코딩 없이, 화면 녹화 오버헤드 없이 녹화할 수 있습니다.

이 가이드는 화면 녹화와 스트림 녹화의 차이점, 직접 HLS 녹화가 항상 더 나은 이유, 그리고 Chrome에서 그것을 수행하는 3가지 방법을 설명합니다.

화면 녹화 vs 스트림 녹화

온라인의 대부분의 “라이브 스트림을 녹화하기” 튜토리얼은 화면 녹화 도구 — OBS, Loom, Screencastify 또는 OS의 기본 제공 화면 캡처를 사용하도록 안내합니다. 이러한 도구는 화면에 표시되는 것을 캡처하므로:

  • 영상이 레코더의 코덱 설정으로 재인코딩됩니다 (일반적으로 레코더의 비트레이트를 사용한 손실 H.264)
  • 오디오는 OS 오디오 루프백을 통해 캡처되며, 출처가 44.1 kHz였을 때 종종 48 kHz로 처리됩니다
  • 해상도는 화면 해상도 이하로만 제한됩니다 — 1080p 화면은 4K 출처를 녹화할 수 없습니다
  • 녹화 중에 화면에 나타나는 모든 것 (알림, 마우스 커서)이 파일에 포함됩니다
  • CPU와 GPU는 스트림이 실행되는 전체 시간 동안 바쁜 상태를 유지합니다

스트림 녹화는 CDN에서 도착하는 HLS 세그먼트를 캡처합니다. 최종적으로 얻게 되는 파일은 플레이어가 다운로드한 데이터와 비트 단위로 동일합니다. 재인코딩 없음, 오디오 루프백 없음, 출처 이하의 해상도 제한 없음, 그리고 네트워크에서 디스크로 바이트를 복사하는 작업만 하면 되므로 최소한의 CPU 사용량입니다.

출처가 4K이고 화면이 1080p라면, 스트림 녹화는 4K를 얻습니다. 화면 녹화는 1080p를 얻습니다.

HLS 라이브 스트림의 작동 방식

라이브 HLS 방송은 몇 초마다 업데이트되는 m3u8 매니페스트입니다. 전체 영상을 미리 나열하는 VOD 매니페스트와 달리, 라이브 매니페스트는 가장 최근 ~30-60초 세그먼트의 슬라이딩 윈도우입니다. 플레이어는 매니페스트를 폴링하고, 새로운 세그먼트가 나타나면 다운로드하고, 버퍼에서 오래된 것들을 버립니다.

라이브 스트림을 녹화하려면 도구가 다음을 수행해야 합니다:

  1. 마스터 재생 목록 URL 식별
  2. 원하는 품질의 미디어 재생 목록으로 확인
  3. 매니페스트를 반복적으로 가져오기 (세그먼트 지속 시간에 따라 2-10초마다)
  4. 나타나는 각각의 새로운 세그먼트 다운로드
  5. 순서대로 세그먼트를 출력 파일에 추가
  6. 매니페스트가 업데이트되지 않을 때까지 (스트림 종료) 또는 사용자가 녹화를 중지할 때까지 계속
  7. 오디오와 영상이 별도의 매니페스트에 있으면 위의 모든 것을 병렬로 두 번 수행하고 병합

이는 처음부터 “끝”을 찾을 수 없기 때문에 VOD 다운로드와 근본적으로 다릅니다 — 레코더는 중지하라는 지시가 나올 때까지 계속 폴링해야 합니다.

방법 1: 라이브 녹화 기능이 있는 Chrome 확장 프로그램

브라우저 확장 프로그램은 브라우저의 세션 (쿠키, 헤더, 서명된 URL)을 상속받고 탭을 열어두는 동안 계속 실행되므로 가장 간단한 경로입니다.

Video Downloader One-for-All은 다음의 구체적인 사항으로 라이브 HLS 녹화를 처리합니다:

  1. Chrome에서 라이브 스트림 열기
  2. 재생이 시작될 때까지 대기 (몇 초)
  3. 확장 프로그램 아이콘 클릭 — 도구 모음 배지가 파란색으로 변하고 드롭다운에 사용 가능한 품질이 표시됩니다
  4. 품질을 선택하고 “Start Recording” 클릭 (VOD에 사용되는 일반 “Download” 버튼 대신)
  5. 녹화가 실행되는 동안 탭을 열어두기
  6. 스트림이 종료되거나 중지하고 싶을 때 “Stop Recording” 클릭
  7. 확장 프로그램이 진행 중인 세그먼트를 마치고, FFmpeg.wasm을 실행하여 오디오 + 영상을 먹스하고, MP4를 저장합니다

MP4는 라이브 방송의 데이터와 비트 단위로 동일합니다. 재인코딩 손실 없음.

HLS가 이런 식으로 구조화되는 이유와 매니페스트가 어떻게 보이는지에 대한 기술적 배경은 HLS 가이드에서 프로토콜의 기초부터 다룹니다. 전체 기능 범위는 라이브 스트림 레코더 페이지를 참조하세요.

방법 2: --live-from-start를 사용한 yt-dlp

yt-dlp는 주의 사항과 함께 라이브 HLS를 녹화할 수 있습니다:

# 수동 중지 또는 스트림 종료까지 지금부터 녹화
yt-dlp "https://www.example.com/livestream"

# 라이브 스트림의 시작부터 녹화 (매니페스트에 여전히 초기 세그먼트가 있는 경우)
yt-dlp --live-from-start "https://www.example.com/livestream"

# 특정 시간으로 제한
yt-dlp --download-sections "*0:00:00-1:00:00" "https://www.example.com/livestream"

주의 사항:

  • --live-from-start는 매니페스트에 여전히 초기 세그먼트가 있는 경우에만 작동합니다 (라이브 윈도우는 일반적으로 30-60초이므로 시작하기 전 마지막 분 이상을 캡처하는 경우는 거의 없습니다)
  • yt-dlp의 라이브 HLS 안정성은 변합니다. 일부 스트림은 매니페스트가 yt-dlp의 폴링보다 빠르게 회전할 때 갭을 생성합니다
  • 구독 전용 또는 인증 필요 라이브 스트림은 --cookies-from-browser chrome 필요

명백한 공개 라이브 스트림의 경우 yt-dlp가 작동합니다. 인증 뒤에 있거나 공격적인 토큰 회전이 있는 모든 것의 경우 브라우저 확장 프로그램 경로가 더 안정적입니다. 왜냐하면 브라우저의 세션 처리를 다시 구현할 필요가 없기 때문입니다.

방법 3: 라이브 HLS 플래그를 사용한 FFmpeg

FFmpeg는 올바른 플래그를 사용하여 라이브 HLS를 녹화할 수 있습니다:

ffmpeg \
  -live_start_index -1 \
  -i "https://example.com/master.m3u8" \
  -c copy \
  -t 02:00:00 \
  output.mp4

-live_start_index -1은 FFmpeg에 사용 가능한 가장 최근 세그먼트부터 시작하도록 지시합니다. -t 02:00:00은 녹화를 2시간으로 제한합니다. -t 없이 FFmpeg는 스트림이 종료되거나 Ctrl+C를 입력할 때까지 녹화합니다.

별도의 오디오/영상 매니페스트의 경우:

ffmpeg \
  -i "https://example.com/video.m3u8" \
  -i "https://example.com/audio.m3u8" \
  -c copy \
  -t 02:00:00 \
  output.mp4

FFmpeg 접근 방식은 작동하지만 다음에 취약합니다:

  • 마스터 재생 목록 URL 만료 (대부분의 라이브 스트림은 몇 분 내에 만료되는 서명된 URL)
  • 세그먼트 가져오기에 실패하는 네트워크 히프 (FFmpeg는 재시도하도록 설정할 수 있지만 기본값은 보수적)
  • CDN이 FFmpeg가 자동으로 설정하지 않는 Referer 헤더를 요구하는 라이브 스트림

화면 녹화가 여전히 가끔은 올바른 답인 이유

화면 녹화가 스트림 녹화를 능가하는 몇 가지 경우가 있습니다:

  1. DRM 보호 라이브 스트림 — Netflix, Disney+, HBO Max, Amazon Prime Video 및 유사한 서비스는 Widevine 또는 PlayReady DRM을 사용합니다. HLS 녹화 방법 중 어느 것도 작동하지 않습니다. 암호화된 세그먼트는 DRM 키 없이 재생할 수 없습니다. 화면 녹화는 플레이어가 화면에 디코딩한 것을 캡처하며, 이 시점에서는 보호되지 않습니다. (이것이 귀하의 관할권에서 합법적인지 여부는 별개의 질문입니다.)

  2. 다중 소스 레이아웃 — 스트림과 함께 채팅 패널을 옆에, 웹캠 오버레이를 녹화하려면 화면 녹화는 단일 복합으로 캡처하는 유일한 방법입니다.

  3. 극단적으로 DRM에 인접한 플랫폼 — 일부 플랫폼은 HLS 다운로드 시도를 감지하고 다른 (종종 저하되거나 차단된) 매니페스트를 제공합니다. 화면 녹화는 그 감지를 우회합니다.

95%의 공개 라이브 스트림의 경우 스트림 녹화가 더 빠르고, 깔끔하고, 더 높은 품질입니다. 화면 녹화는 스트림 녹화 경로가 차단될 때의 폴백입니다.

일반적인 라이브 스트림 함정

라이브 매니페스트 URL이 60초마다 만료됩니다

대부분의 라이브 HLS 매니페스트는 60-300초 내에 만료되는 서명된 URL입니다. 매니페스트 URL을 복사하고 10분 후에 시도하면 403이 나옵니다. 해결 방법: 브라우저 컨텍스트 (확장 프로그램)에서 실행되는 도구를 사용하여 항상 새로운 URL을 확보합니다.

오디오가 긴 녹화 후 동기화되지 않습니다

라이브 오디오와 영상 매니페스트는 타임스탬프 기반에서 드릴 수 있습니다. 몇 시간 후 순진한 연결은 음성 드리프트를 생성합니다. 우리의 확장 프로그램은 최대 ~500ms의 드리프트를 자동으로 수정합니다. FFmpeg의 -fflags +genpts는 도움이 되지만 매우 긴 녹화에는 완벽하지 않습니다.

스트림이 녹화 중에 시작하고 중지됩니다

일부 라이브 스트림은 일시 중지되었다가 재개됩니다 (광고 브레이크, 기술적 문제). HLS 매니페스트는 일시적으로 새로운 세그먼트를 가지지 않을 수 있습니다. 확장 프로그램과 yt-dlp는 모두 무제한으로 폴링하여 이를 처리합니다. 기본 플래그가 있는 FFmpeg는 조기에 종료될 수 있습니다 — FFmpeg가 재시도하도록 -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 10을 전달합니다.

녹화 중에 컴퓨터가 절전 모드로 들어갑니다

시스템이 절전 모드로 들어가면 녹화가 중지됩니다. 긴 녹화 중에 절전을 방지하도록 전원 설정을 확인하거나 이것이 문제가 되지 않는 데스크톱을 사용합니다.

다른 일을 하면서 녹화할 수 있나요?

네 — 녹화는 백그라운드 탭에서 발생하며 매우 적은 CPU를 사용합니다 (네트워크 I/O가 병목이지, 인코딩이 아닙니다). 다른 사이트를 탐색하고 다른 탭에서 일하고, Chrome을 닫았다가 다시 열 수 있습니다 (확장 프로그램은 녹화 상태를 유지합니다).

비교: 어느 방법을 언제

상황최선의 방법
Twitch 라이브 스트림브라우저 확장 프로그램 또는 나중에 VOD 다운로드
공개 방송 (뉴스, 스포츠)브라우저 확장 프로그램
인증을 사용한 구독 전용 라이브브라우저 확장 프로그램 (세션 상속)
헤드리스 서버 / 무인 스크립트yt-dlp 또는 FFmpeg
긴 녹화 (> 4시간)브라우저 확장 프로그램 또는 재연결 플래그가 있는 FFmpeg
DRM 보호 라이브화면 녹화가 유일한 합법적 경로입니다. 귀하의 관할권을 확인하세요

결론

라이브 스트림이 HLS라면 — 대부분이 그렇습니다 — OBS 없이, 재인코딩 없이, 화면 녹화 오버헤드 없이 직접 스트림 복사로 녹화할 수 있습니다. 가장 간단한 경로는 플레이어와 동일한 탭에서 실행되는 브라우저 확장 프로그램입니다. yt-dlp와 FFmpeg는 헤드리스 또는 스크립트 사용의 좋은 폴백입니다.

Video Downloader One-for-All 설치하면 라이브 녹화 워크플로우는 두 번의 클릭입니다: 시작, 중지. 출력은 방송된 내용의 비트 단위 MP4입니다.