블로그로 돌아가기

인터넷 방송 품질을 높이고 프레임 손실을 없애는 방법!

Kevin Kim
May 20, 2021읽는 시간 4 분
공유

인터넷 방송을 첫 시작할때나 지금까지도 인터넷 방송을 하시는 분들의 최종적인 공통점이 있다면 바로 안정적인 방송 품질을 유지하는 것 입니다. 인터넷 방송 품질의 기준점도 다양합니다. 일단 콘텐츠가 출중한지, 고급 연출을 사용하는지, 또는 뚜렷한 화면을 유지한다던지 등등이 존재합니다. 이 중에서도 가장 힘들게 유지하는 부분이 바로 깨끗하고 뚜렷한 화면을 유지하는 것 입니다. 만약 최상급 콘텐츠와 최신 기술을 동원한 연출을 준비했다 하더라도 모자이크 처럼 보이는 화면이라면 그 누구도 긍정적인 시청 경험이라 할 수 없을 것 입니다. 이러한 부분을 모니터링하고 문제가 생기면 바로 고칠 수 있도록 여러가지 방법에 대해 알려드리겠습니다.

인코딩

인코딩이란 무엇일까요? 쉽게 생각하자면 내가 원하는 방송 화면 구성을 컴퓨터가 신호를 받아서 인터넷을 통해 출력, 송출하는 것 입니다. 방송 신호를 관리하는 것은 엑스플릿 브로드캐스터 (XSplit Broadcaster)에서 다룰 수 있습니다. 프로그램 내에서 섬세한 설정을 통해서 내가 원하는 화면 품질로 데이터를 전송할 수 있습니다. 기본적으로 알아야 하는 부분은 인코더 설정에서 알맞는 인코더를 선택하는 것 인데 크게 두 가지로 나뉘게 됩니다. CPU를 활용하는 인코더는 x264 라는 소프트웨어 인코딩 기술을 활용하며 그래픽카드, 즉 GPU를 사용하는 인코더는 NVENC, VCE 또는 Quicksync 를 활용하는 하드웨어 인코딩이 있습니다.

오랫동안 x264 인코딩이 최상급 품질을 유지하는 인코더로 사용되어 왔습니다. 하지만 최근들어 NVIDIA RTX 그래픽 카드를 활용하는 NVENC 인코더도 비슷하거나 같은 품질의 방송 화면을 송출할 수 있게 되었습니다. 방송용 송출 컴퓨터를 주문 제작하려면 가격 대비 효율을 전제하에 CPU보다 조금 더 값이 저렴한 올바른 NVIDIA 그래픽 카드를 장착하는 것을 추천합니다.

해상도와 프레임율

그렇다면 무엇때문에 인코더들이 일을 열심히 하게 되는것일까요? 가장 큰 요소는 화면의 해상도와 프레임율에 있습니다. 해상도가 높거나 프레임율이 많을수록 더 많은 자원이 필요하게 됩니다. 1초당 특정 프레임 수가 높을수록, 게다가 각 프레임이 뚜렷한 고해상도 이미지를 프로세싱 하기 위해서는 그만큼 강력한 인코딩 자원이 필요하게 되는 것입니다.

x264 인코더는 품질 설정을 ‘속도’로 분별합니다. 대부분 Very fast, faster, fast, medium, slow 로 구분되어 있는데, 해상도와 프레임율이 높을수록 속도가 더 느린 프리셋을 선택하면 됩니다. 해당 설정을 엑스플릿 브로드캐스터에서 찾으시려면

방송 송출 메뉴 > 톱니바퀴 아이콘 (내가 저장한 방송 설정에서) > 방송 설정창 우측에 있는 톱니바퀴 아이콘 > 인코더 프리셋 (Encoder Preset)

문제는 여기서 발생합니다. 프리셋을 느리게 설정할수록 CPU의 자원, 즉 리소스를 많이 잡아먹게 됩니다. 만약 고해상도 게임을 동시에 플레이하면서 해당 게임 화면을 또다시 고해상도로 출력, 송출하려고 하면 왠만한 CPU가 아닌 경우 이 두가지 작업을 동시에 해내기 힘들어 할 것입니다. 이 경우에도 반드시 게임을 방송해야 한다면 게임용 컴퓨터가 따로 있어야 하거나 아예 저해상도 게임을 플레이 하는 수 밖에 없습니다.

또 다른 방법으로는 하드웨어 인코더를 사용하는 것 입니다. 특정 그래픽카드는 인코딩 전용 프로세서가 탑재되어 있어서 게임플레이에 지장을 주지 않도록 만들어진 제품도 존재합니다. 반드시 CPU로 인코딩을 해야한다면 코어 수가 최대한 많은 (최대 32코어) CPU를 추천합니다. 그래야지만 어느정도 1080p 해상도에 60fps 프레임율의 방송을 실현할 수 있을겁니다.

NVIDIA 계열 그래픽카드를 활요하는 인코더 NVENC를 사용하려면 일단 RTX 시리즈 그래픽 카드를 추천합니다. 대부분의 RTX 그래픽카드는 CPU 인코더 x264의 medium 프리셋과 동일한 품질의 성능을 보여줍니다. 특정 게임에 따라 이보다 더 높은 성능을 자랑할 수도 있습니다.

Multiple people sit infront of a long table, all of them on either side, side by side playing in a large scale gaming tournament. The producers of the stream are no doubt looking for a way to improve their live stream quality.
Photo by Stem List on Unsplash

빠른 움직임과 비트레이트

그 어떤 인코더를 선택하더라도 방송 송출에 가장 큰 영향을 주는 부분은 바로 비트레이트 입니다. 비트레이트는 즉 인터넷 업로드 속도와 환경을 기반으로 설정하는 부분입니다. 업로드 대역폭이 높을수록 문제가 발생할 확률이 낮아집니다. 내 업로드 속도와 대역폭이 넓을수록 높은 화질과 음질을 인터넷을 통해 전송할 수 있으니 막상 컴퓨터 사양만 좋아봤자 인터넷이 뒷받침을 해주지 않으면 무용지물이 될 수 있습니다. 오디오는 그닥 많은 대역폭을 필요로 하지만 가장 중요한 화면과 화질은 업로드 대역폭이 널럴해야만 가능한 부분입니다.

화면이 단색으로만 이루어져 있다면 또 그닥 큰 문제가 되지 않습니다. 단순할수록 인코더가 수월한 작업을 통하여 화면을 송출할 수 있고, 화면이 빨리 움직이거나 색상이 다양할수록 인코더가 더욱 열심히 힘을 발휘하여 이를 영상으로 압축 후 전송하게 되는 것입니다. 화면 전환이 빠른 FPS 게임이 주로 많은 비트레이트를 필요로 합니다. 이러한 이유로 시청자의 입장을 생각하여 지속적으로 빠른 움직임이 있는 콘텐츠는 해상도나 프레임율을 조금 낮춰서 설정해야만 안정적인 방송 환경을 적용할 수 있게 됩니다.

비트레이트를 설정하려면 두 가지 요소를 고려해야 합니다. 현재 나의 인터넷 속도, 그리고 내가 방송할 플랫폼에서 허용해주는 최소, 최대 비트레이트 수치 입니다. 트위치, 페이스북, 트위터는 대부분 6000kbps로 비트레이트를 설정하면 무난한 방송 품질이 적용됩니다. 왜 이러한 인기 플랫폼에서 일정한 비트레이트 수치를 요구하냐면, 이를 무제한으로 푸는 순간 그들이 내야하는 관리비가 늘어나기 때문이라나…

대역폭을 확인 하려면 인터넷 스피드 테스트등을 통해서 알아볼 수 있습니다. 물론 내가 선택한 인터넷 통신사의 사정에 따라 약간의 차이가 날 수 있지만 나에게 주어진 업로드 대역폭 중 70%이상을 넘는 수치의 비트레이트는 사용하지 않는것을 추천합니다. 만약 이 수치를 넘게되면 방송은 그렇다 쳐도 온라인으로 플레이하는 게임에 지장을 줄 수 있기 때문입니다. 그리고 최대한 안정적인 환경을 위해 방송 송출과 게임을 하는 컴퓨터 모두 이더넷 케이블을 사용한 인터넷 연결을 사용하심을 추천합니다. 와이파이는 편의성이 있다 하여도 안정적인 환경과는 거리가 멀 수 있습니다.

이렇게 기본적인 설정만 유지한다면 내 인터넷 속도와 방송 플랫폼의 비트레이트 수치의 타협점을 찾을 수 있습니다. 만약 낮은 대역폭의 인터넷 환경일 경우 비트레이트를 점점 줄여가며 안정적인 송출 설정이 될 때까지 시험을 거쳐서 알맞는 비트레이트를 찾아보시기 바랍니다.

A person photographed from side on with an RGB gaming headset streaming at an improved live stream quality on their PC with a large monitor in frame.
Photo by Sean Do on Unsplash

렉, 끊김 현상, 프레임 드롭.

렉 이라는 단어 자체는 참으로 여러가지 의미를 포용합니다. 여러가지 의미로 인터넷 방송에서도 비슷한 영향을 끼치곤 합니다. 인코딩이 진행되는 도중, 두 가지 종류의 렉이 발생할 수 있습니다. 첫 번째 렉은 시청자의 입장에서 보는 렉 입니다. 시청자들 모두 재각각 특정 스트리머의 화면을 볼 때마다 끊김 현상을 목격하거나 화면이 멈춰버릴 수 있습니다. 스트리머의 입장에서는 프레임드롭 현상이 일어날 수 있으며 방송 프로그램에 ‘특정 수치의 프레임이 손실 (Drop)되었습니다’라는 표기가 뜰 수 있습니다. 이러한 현상들을 설명하자면 다음과 같습니다.

1) 비트레이트 수치가 너무 높습니다. 이전에 말씀드린 것 처럼 내 대역폭보다 높은 비트레이트를 설정하면 이러한 현상을 겪을 수 있습니다. 비트레이트 값을 설정하기 전에 반드시 인터넷 스피드 테스트를 실행해보시기 바랍니다. 불특정한 시기에 인터넷 통신사에서 점검을 한다거나 물리적인 오류로 인해 인터넷 속도에 영향을 끼칠수도 있으니 내 컴퓨터나 모뎀의 설정을 변경하더라도 고쳐지지 않는다면 인터넷 통신사에게 문의하여 인터넷에 문제가 있는지 확인하는 것도 방법입니다.

2) 방송 플랫폼에 문제가 발생한 경우도 있습니다. 트위치 같은 경우에는 송출 신호를 받는 전용 서버가 있는데 이 서버에 접속된 사스트리머가 너무 많다거나 하면 끊김 현상이 종종 일어나곤 합니다. 이럴때는 굳이 내가 속해있는 지역이 아니더라도 조금더 안정적인 트위치 서버를 선택하는 것도 방법입니다.

트위치 서버는 엑스플릿 브로드캐스터 내의 방송 설정에서 조절할 수 있습니다.

방송 송출 메뉴 > 톱니바퀴 아이콘 (내가 저장한 방송 설정에서) > 트위치 아이디 아래에 있는 서버 목록 > 딜레이가 그나마 적고 Jitters가 적은 서버를 선택하는것을 권장

트위치의 경우 나와 가깝거나 최적화된 서버를 알아보려면 여기를 클릭해서 확인 해보시기 바랍니다.

A person viewed from behind with a gaming headset on playing Fornite they're probably looking for a way to improve live stream quality as well.
Photo by Priyam Raj on Unsplash

다음 렉의 경우도 일부 시청자들이 볼 수 있지만 대부분 스트리머의 입장에서 더 일어날 수 있는 현상입니다. 게다가 게임을 하는 도중 목격할 경우가 많습니다. 이 현상은 인코더가 작업할 수 있는 해상도와 프레임율 이상의 작업을 컴퓨터에서 실행 할 경우 일어납니다. x264인코더를 사용한다고 할 때, 송출에 필요한 품질 설정과 게임에 필요한 품질 설정을 동시에 실행할 때 본인의 CPU가 이 두가지 작업을 수월하게 작업하지 못 할 경우, 송출도 게임도 둘 다 부정적인 경험을 초래할 수 있습니다. CPU하나의 자원을 가지고 방송과 게임이 서로 다툰다고 보면 됩니다.

이 경우에는 어느정도 수월하게 방송과 게임을 모두 실행하려면 인코더 프리셋 (Preset) 설정을 좀 더 빠른 속도로 지정하여 조절하면 됩니다. 프리셋 속도를 조절해도 큰 차이가 없다면 안타깝지만 방송의 해상도 또는 프레임율, 혹은 게임의 품질을 저하 시켜야만 두가지 작업을 수월하게 실행할 수 있을겁니다.

마치며, 어느정도 원활한 환경의 방송과 게임을 실행하려면 CPU 인코더 보다는 하드웨어 (그래픽카드) 인코더를 사용하는 것을 권장합니다. 내가 돈을 내며 사용하는 인터넷의 속도와 환경에 대해 조금 더 자세히 알아보고 컴퓨터의 사양와 필요한 주변기기에 조금 더 집중한다면 대략적으로 나만의 방송 설정을 조절하는데에 감이 잡히리라 믿습니다. 너무 무리하게 높은 고화질 설정만 고려하지 말고 어느정도 품질과 성능을 조절하면서 게임과 방송 모두 깨끗한 화질로 실행이 가능한 동시에 나와 내 시청자들의 경험을 저하하지 않는 조건으로 여러번의 실험을 거쳐 나만의 최적화된 방송 설정을 저장해보시기 바랍니다.

Kevin Kim

XSplit community manager for Korea and Australia. Translator for Korean. Mainly involved with the Fighting Game Community. General tech support for all XSplit products for individuals and organizations. Assistant for many stream productions involving XSplit products.저자가 작성한 다른 게시물