top of page
XSplit 홈페이지

라이브 스트림 품질 개선 및 프레임 드롭 방지!

작성자 사진: SplitmediaLabs Limited
SplitmediaLabs Limited
2021년 5월 13일
3분 분량

Corsair, Asus, Gigabyte 부품이 있는 RGB 조명의 컴퓨터 내부. 다채로운 팬과 케이블이 활기찬 기술적 분위기를 만든다.

스트리밍을 시작할 때 사람들이 마주하는 가장 큰 어려움 중 하나는 스트림 품질을 끊임없이 높이려는 일이라고 생각합니다. 스트림 품질은 콘텐츠의 품질, 제작 품질 또는 스트리밍 피드 자체의 품질처럼 여러 의미를 가질 수 있습니다. 앞의 두 가지도 매우 중요하지만, 영상이 픽셀화되거나 몇 초마다 끊기면 시청자는 스트림에 머물지 않습니다. 오늘은 스트림 품질, 정확히 말하면 라이브 스트림 품질을 높이기 위해 스트림을 제대로 인코딩하는 방법을 이야기하겠습니다.


인코더


인코더란 무엇일까요? 인코더는 스트리밍 소프트웨어에서 구성한 게임 플레이, 페이스캠, 오디오 등을 가져와 인터넷으로 보낼 수 있도록 압축합니다. 이 압축 과정이 XSplit Broadcaster에서 가장 많은 작업을 차지하며 라이브 스트림 품질을 개선하는 큰 요인이 됩니다. CPU가 X264를 통해 처리하면 소프트웨어 인코딩, GPU가 NVENC, VCE 또는 Quicksync를 통해 처리하면 하드웨어 인코딩이라고 합니다.

오랫동안 X264가 이 인코딩 과정에서 절대적으로 가장 뛰어났지만, 이제 최신 NVIDIA RTX 및 일부 GTX GPU에서 NVENC가 자리 잡아 X264와 맞먹는 성능을 냅니다. 그래서 아래 PC 조립 가이드에서는 값비싼 CPU 대신 인코딩용 GPU를 구입하라고 권장했습니다. 물론 암호화폐 채굴이 모든 것을 망치기 전까지는 말입니다.




해상도와 프레임 레이트


인코더가 왜 그렇게 열심히 일해야 하는지 궁금하실 것입니다. 답은 해상도와 프레임 레이트입니다. 해상도가 높고 프레임 레이트가 빠를수록 인코더는 더 큰 크기의 이미지를 더 많이 처리해야 하므로 라이브 스트림 품질을 개선할 때 차이가 생깁니다.

X.264에서는 해상도와 프레임 레이트가 높을 때 화질을 유지하려면 프리셋을 더 느리게 설정해야 합니다. XSplit Broadcaster에서 다음 프리셋을 찾을 수 있습니다: very fast, faster, fast, medium, slow 메뉴 경로는 다음과 같습니다.


Broadcast > 스트림 출력 옆 톱니바퀴 클릭 > Video Encoding 섹션의 톱니바퀴 클릭 > Encoder Preset


이 프리셋을 사용하면 CPU 사용량이 기하급수적으로 증가해 게임 플레이에 큰 영향을 줍니다. 2대의 PC로 스트리밍하거나 게임 플레이를 스트리밍하지 않는 경우가 아니라면 문제가 될 수 있습니다.

반면 하드웨어 인코더에는 인코딩만 담당하는 칩이 있는 경우가 많아 게임의 프레임 레이트에 미치는 영향이 제한됩니다. CPU로 인코딩해야 한다면 가능한 한 코어가 많은 CPU(최대 32코어)를 사용해 1080p 60fps 스트리밍에서 slow 프리셋을 구현하는 것이 좋습니다.

이에 해당하는 NVIDIA GPU는 RTX 시리즈에 탑재된 최신 NVENC 인코더이며, X264의 medium 프리셋과 맞먹거나 경우에 따라 이를 능가합니다. 이전 NVENC, VCE와 Quicksync도 스트리밍에 사용할 수 있지만 아직 현재 NVENC나 X264의 성능과는 맞먹지 못합니다.



붐비는 게임 행사에서 두 사람이 비디오 게임을 한다. 모니터에 다채로운 게임 화면이 표시된다. 집중하며 경쟁하는 분위기다.
사진: Stem List, 출처: Unsplash

모션과 비트레이트


어떤 인코더를 선택하든 라이브 스트림 품질 개선에 가장 큰 영향을 주는 것은 비트레이트입니다. 비트레이트는 비디오와 오디오 출력 품질을 위해 설정하는 인터넷 업로드 예산입니다. 높을수록 좋습니다. 다행히 오디오는 너무 높은 비트레이트가 필요하지 않으므로 대부분의 예산을 비디오에 사용할 수 있습니다. 이제 모션이 중요해집니다.

초당 프레임 수가 많거나 격투 게임의 슈퍼 기술 같은 화면 요소, 1인칭 슈팅 게임의 빠른 움직임처럼 화면의 움직임이 많을수록 비디오 비트레이트 예산이 빠르게 부족해집니다. 따라서 움직임이 많은 게임은 스트림 해상도 또는 FPS를 낮추는 것이 일반적으로 권장됩니다.

비트레이트는 사용 가능한 인터넷 대역폭과 스트리밍 플랫폼이라는 두 가지 요소로 결정됩니다. Twitch, Twitter, Facebook 같은 플랫폼은 보통 약 6000 Kbps로 사용 가능한 대역폭을 제한합니다. 대역폭을 많이 사용할수록 플랫폼의 비용이 높아지기 때문입니다.

사용 가능한 대역폭은 인터넷 연결에 따라 결정됩니다. 간단한 속도 테스트로 확인할 수 있습니다. 트래픽이 많은 시간에는 달라질 수 있지만, 일반적으로 비트레이트를 설정할 때 온라인 게임에 문제가 생기지 않도록 사용 가능한 대역폭의 70%를 넘기지 마세요. 가능하다면 스트리밍 컴퓨터를 유선으로 연결하세요. 라이브 스트림 품질 개선에 큰 차이를 만들 수 있습니다!

일반적인 규칙은 인터넷 연결과 스트리밍 플랫폼이 허용하는 만큼 비트레이트를 높게 설정하는 것입니다. 연결이 제한적이라면 낮은 비트레이트에 맞춰 해상도와 프레임 레이트를 낮춰 보세요.



어두운 방에서 빛나는 헤드폰을 쓰고 컴퓨터로 게임하는 사람. 밝은 화면에 빠르게 전개되는 액션 장면이 표시된다. 집중한 분위기다.
사진: Sean Do, 출처: Unsplash

지연, 끊김, 프레임 드롭


지연은 스트리밍에서 흥미로운 용어지만, 인코딩에서 발생할 수 있는 지연은 일반적으로 두 가지입니다. 첫 번째는 시청자 측에서 발생하는 지연으로, 스트림이 끊기거나 느려지고 때로는 오프라인이 되었다가 다시 온라인으로 돌아오기도 합니다. 스트리머 측에서는 같은 문제가 프레임 드롭으로 보일 수 있습니다. 이는 보통 두 가지 이유로 발생합니다.


1) 비트레이트가 너무 높게 설정되었습니다. 앞서 말했듯 비트레이트를 설정하기 전에 속도를 확인하세요. 이전에는 괜찮았던 비트레이트라도 ISP의 트래픽 증가나 네트워크 유지 보수로 전체 대역폭이 줄어들 수 있습니다. 가장 좋은 해결책은 스트림의 대역폭을 낮추는 것입니다. 계속 문제가 발생하면 ISP에 문의해 보세요.


2) 스트리밍 서버에 문제가 있습니다. Twitch 같은 주요 사이트는 지역별 전용 스트리밍 서버를 사용하지만 서버에 문제가 생길 수 있습니다. 오프라인으로 전환하고 서버를 바꾸는 것이 가장 좋습니다. 문제가 반복되면 방송 전에 대역폭을 확인해 사용할 서버가 안정적인지 확인하세요.

XSplit Broadcaster에서는 다음 경로로 서버를 쉽게 바꿀 수 있습니다.


Broadcast > 스트림 출력 옆 톱니바퀴 클릭 > Server에서 Automatic(또는 현재 선택된 서버)을 지역에서 다음으로 가까운 서버로 변경


Twitch에서는 예를 들어 여기에서 확인하면 가까운 서버가 순서대로 표시됩니다.



헤드폰을 쓰고 비디오 게임을 보여 주는 다채로운 화면에 집중하며 게임하는 사람. 네온 조명 키보드, 편안한 분위기, 실내.
사진: Priyam Raj, 출처: Unsplash

다음 유형의 지연은 시청자에게 보일 수도 있지만, 게임을 플레이하는 스트리머가 주로 느끼거나 확인합니다. 이는 일반적으로 스트림 인코더에 과부하가 걸리는 현상입니다. 인코더가 처리할 수 없는 방식으로 비디오를 인코딩하려는 상황이며 x264로 인코딩할 때 흔히 발생합니다. PC가 CPU 자원을 두고 경쟁하게 되어 스트림에서 프레임이 드롭되고 PC에서 실행 중인 프로그램의 성능도 영향을 받습니다.

이를 해결하는 가장 좋은 방법은 앞서 설명한 것처럼 인코딩 설정을 낮추는 것입니다. 주된 원인은 보통 X264 프리셋을 더 높게 설정하는 것입니다. 해결되지 않으면 해상도 또는 프레임 레이트를 낮추세요.

정리하면 제대로 인코딩해 좋은 스트림 품질을 얻으려면 하드웨어 인코더를 사용해 보세요. 인터넷과 플랫폼의 제한을 파악하고 문제가 생기면 설정을 낮추세요. 도움이 되었기를 바라며, 여기서 다뤘으면 하는 다른 주제가 있다면 이 글에 댓글을 남겨 주세요!


댓글


bottom of page