/ 개인방송

개인방송/라이브 스트리밍 입문 - (3) 이것만 알면 방송준비 완료! - 스트리밍 기본 지식

실시간으로 방송을 송출하려면 방송 플랫폼방송 소프트웨어 크게 두 요소가 필요합니다.

  • 방송 플랫폼: 실시간 방송을 중계할 때 사용할 플랫폼으로, 시청자들이 방송을 보고 참여할 때에도 사용합니다.
    • 예: YouTube, Twitch, 아프리카 TV 등
  • 방송 소프트웨어: 방송 신호를 송출 플랫폼에 실시간으로 전달 (스트림)할 때 사용합니다.

방송 소프트웨어가 생성해주는 신호는 압축되지 않은 신호입니다. 즉, 압축된 신호 대비 많은 용량을 차지하므로 이를 송출하려면 고성능의 컴퓨터와 빠른 인터넷 환경이 필요합니다.

이러한 부담을 줄이기 위해 방송 소프트웨어는 인코딩 (Encoding) 과정을 통해 실시간 전송 환경에 적합한 형태로 방송 신호를 압축하여 전달하며, 이 때 사용하는 요소를 인코더 (Encoder)라 부릅니다.

인코더 설정

방송 소프트웨어 및 컴퓨터 환경에 따라 설정하는 내용이 약간 달라지기도 하지만, 반드시 설정하게 되는 인코더 설정 항목은 다음과 같습니다.

  • 동영상 해상도
  • 프레임 속도 (Frame rate)
  • 비트레이트 (Bitrate)

동영상 해상도

Video resolution

방송 송출에 사용할 영상 해상도를 설정하며, FHD (1080p, 1920x1080 픽셀) 해상도를 가장 많이 사용합니다.

해상도가 높을수록 화질이 좋아지지만, 그와 비례하여 필요한 컴퓨터 자원 및 인터넷 연결 속도 또한 증가하므로 필요 이상으로 해상도를 높이 설정하지 않는 것이 좋습니다.

프레임 속도

FPS

동영상은 사실 여러 장의 연속된 이미지로 구성되어 있는데, 이를 빠르게 재생하면 이미지가 움직이는 것처럼 보이게 됩니다.

이 때, 단위 시간 (1초)에 재생되는 이미지의 수가 많을수록 부드러운 영상을 만들어 낼 수 있으며, 단위 시간 내 재생되는 이미지의 수를 프레임 속도, 프레임 레이트, 혹은 FPS (Frames per second)라 부릅니다.

동영상 해상도와 마찬가지로, 프레임 속도가 높을수록 단위 시간당 포함되는 이미지의 수가 많아지므로 더 높은 처리 성능과 빠른 인터넷 연결 속도가 필요합니다. 초당 30프레임 (30fps) 정도로 설정하는 것이 일반적이며, 게임 방송과 같이 컨텐츠 화면이 빠르게 움직이는 경우 초당 60프레임 (60fps)으로 설정하기도 합니다.

비트레이트

비트레이트 (Bitrate)는 기준 시간 (1초)당 처리하는 데이터의 크기를 의미하며, 비디오에서는 1초당 차지하는 대략적인 용량으로 간주할 수 있습니다.

비트레이트가 크면 클수록 1초당 더 많은 정보를 담을 수 있게 됩니다. 따라서 압축을 그만큼 덜 해도 되므로 영상 품질을 올릴 수 있습니다. (즉, 이미지가 뿌옇게 되는 현상이나 깍두기 현상이 현저히 줄어들게 됩니다)

다만, 인터넷 속도 대비 비트레이트을 너무 높게 설정하면 중계 서버에 데이터가 제 시간에 도달하지 않아 방송이 끊기는 현상이 발생할 수 있습니다. 따라서 해상도, 프레임 속도, 인터넷 환경에 적절한 옵션을 설정해야 합니다.

다음은 해상도와 프레임 속도별 권장 비트레이트를 보여줍니다.

해상도 프레임 속도 권장 비트레이트
1280x720 (720p) 30fps 1.5 ~ 4Mbps
1280x720 (720p) 60fps 2.25 ~ 6Mbps
1920x1080 (1080p) 30fps 3 ~ 6Mbps
1920x1080 (1080p) 60fps 4.5 ~ 9Mbps
2560x1440 (1440p) 30fps 6 ~ 13Mbps
2560x1440 (1440p) 60fps 9 ~ 18Mbps
3840x2160 (2160p, 4K) 30fps 13 ~ 34Mbps
3840x2160 (2160p, 4K) 60fps 20 ~ 51Mbps

비트레이트는 고정 비트레이트 (CBR; Constant Bitrate)가변 비트레이트 (VBR; Variable Bitrate) 둘 중 하나의 방식으로 설정할 수 있습니다.

고정 비트레이트는 설정한 비트레이트가 영상 처음부터 끝까지 일정하게 유지되는 방식입니다. 항상 일정한 수준의 대역폭을 사용하므로 일정한 품질의 영상을 기대할 수 있지만, 영상 중간에 낮은 대역폼으로 처리할 수 있는 부분이 있어도 (예: 정적인 화면) 사전에 설정한 비트레이트 만큼을 차지하므로 비효율적인 부분이 발생할 수 있습니다.

반면, 가변 기트레이트는 사용할 수 있는 최대 비트레이트의 한계를 지정하되, 그보다 더 낮은 비트레이트로 처리할 수 있다면 비트레이트를 낮춰 처리하는 방식입니다. 따라서 고정 비트레이트 대비 적은 용량으로 동일한 품질을 전송할 수 있지만, 사용할 비트레이트를 결정하는 과정에서 추가 연산이 필요하기에 시스템에 부하를 더 주게 됩니다.

이러한 이유로, 스트리밍 송출시 가변 비트레이트 대신 고정 비트레이트를 사용하는 것을 권장합니다. (참고: YouTube, Twitch)

방송 플랫폼 설정

Youtube나 Twitch와 같은 방송 플랫폼을 통해 내 방송을 중계하려면, 해당 플랫폼의 서버에 내 방송 신호를 전달해야 합니다. 방송 신호를 방송 플랫폼 서버로 전송하는 사람이 많은 만큼 각 방송을 구분할 방법이 필요한데요, 이를 위해 스트림 키 (Stream key)를 사용합니다.

스트림 키는 계정 혹은 방송 설정별로 발급되는 고유한 문자열이며, 방송 서버와 함께 반드시 설정해야 하는 항목입니다. 스트림 키를 사용할 때에는 별도의 인증이 필요하지 않기에, 키가 노출되면 타인이 임의로 자신의 채널로 방송을 송출할 수 있습니다. 따라서 키가 노출되지 않도록 조심해야 합니다.

스트리밍 유형별 권장 세팅

앞서 살펴보았던 내용을 토대로 스트리밍 유형별 권장 세팅을 다음과 같이 정리해 보았습니다.

온라인 강의

  • 비디오 장비
    • Logitech Stream Cam 혹은 유사 장비: 스트리머 모습 촬영
      • 스트리머 모습을 송출하지 않는 경우 구비하지 않아도 됩니다.
    • Elgato CamLink 혹은 유사 장비: 외부 장치 사용 모습 촬영
      • DSLR 혹은 미러리스 카메라를 연결하여 실습 과정 (예: 요리 재료 손질, 다이어리 제작 등)을 보여줄 때 사용합니다.
  • 오디오 장비
    • Yeti Blue 혹은 유사 장비: 스트리머 음성 녹음 용도
      • 게이밍 헤드셋이 있다면 별도로 구비하지 않아도 되나, 좀 더 깨끗하게 음성을 전달하려면 전용 장비를 구비하는 것을 추천합니다.
  • 인코더 설정
    • 해상도: 1920x1080 (1080p)
    • 프레임 속도: 30fps
    • 비트레이트: 5Mbps

게임 스트리밍

  • 비디오 장비
    • AVerMedia Live Gamer Ultra 혹은 유사 장비: 게임 플레이 화면 캡쳐
      • 콘솔 게임을 플레이하는 경우 필수로 구비해야 하며, PC게임만 플레이한다면 꼭 구비하지 않아도 됩니다.
    • Logitech Stream Cam 혹은 유사 장비: 스트리머 모습 촬영
      • 스트리머 모습을 송출하지 않는 경우 구비하지 않아도 됩니다.
  • 오디오 장비
    • Yeti Blue 혹은 유사 장비: 스트리머 음성 녹음 용도
      • 게이밍 헤드셋이 있다면 별도로 구비하지 않아도 되나, 좀 더 깨끗하게 음성을 전달하려면 전용 장비를 구비하는 것을 추천합니다.
  • 인코더 설정
    • 해상도: 1920x1080 (1080p)
    • 프레임 속도: 30fps (움직임이 많은 게임을 플레이하는 경우 60fps 권장)
    • 비트레이트: 5Mbps (60fps인 경우 8Mbps)

이것으로 개인방송/라이브 스트리밍 입문에 필요한 내용을 모두 살펴보았습니다. 다음에 이어질 글에서는 앞서 학습한 내용을 토대로 실시간 방송을 만드는 과정을 살펴보겠습니다.

kunny

커니

안드로이드와 오픈소스, 코틀린(Kotlin)에 관심이 많습니다. 한국 GDG 안드로이드 운영자 및 GDE 안드로이드로 활동했으며, 현재 구글에서 애드몹 기술 지원을 담당하고 있습니다.

Read More