안녕하세요, 화질연구소입니다. 방송을 하면서 가장 많이 받은 질문 중 하나가 '왜 다른 스트리머 방송은 선명한데 내 방송은 흐릿하냐'는 거였어요. 저도 처음에 이 문제로 엄청 고민했거든요. 분명히 1080p로 송출하고 있는데 다른 사람 720p보다도 못한 화질이 나오길래, 대체 뭐가 문제인지 하나하나 파헤쳐봤습니다. 오늘은 그 과정을 공유해드릴게요. 결론부터 말씀드리면, 방송 화질에 가장 큰 영향을 미치는 건 비트레이트예요. 해상도를 아무리 높여도 비트레이트가 부족하면 화면이 뭉개져요. 이게 왜 그러냐면, 영상 인코딩이라는 게 원본 영상을 압축하는 과정이거든요. 비트레이트가 높을수록 원본에 가깝게 압축할 수 있고, 낮을수록 많이 깎여서 화질이 떨어져요. 특히 움직임이 많은 게임 화면은 비트레이트를 많이 요구하는데, 1080p 60fps 게임 방송을 제대로 송출하려면 최소 6000kbps가 필요해요. 저는 처음에 3000kbps로 1080p 송출을 하고 있었는데, 그러니까 정지 화면은 괜찮은데 움직임이 많은 장면에서 화면이 뭉개지는 현상이 심했어요. 비트레이트를 6000kbps로 올리니까 같은 해상도인데도 화질이 확 좋아지더라고요. 그런데 비트레이트를 무작정 올릴 수는 없어요. 업로드 속도의 한계도 있고, 방송 플랫폼에서 비트레이트 상한을 두는 경우도 있거든요. 트위치의 경우 일반 스트리머는 6000kbps까지만 안정적으로 사용할 수 있고, 파트너는 그 이상도 가능해요. 숲(SOOP)이나 치지직도 비슷한 제한이 있고요. 이런 상황에서 중요한 건 해상도와 비트레이트의 밸런스를 맞추는 거예요. 제가 테스트해본 결과 가장 좋은 조합은 이랬어요. 6000kbps를 쓸 수 있다면 1080p 60fps가 가능하고, 4500kbps라면 900p 60fps나 720p 60fps가 적합하고, 3000kbps 이하라면 720p 30fps가 현실적이에요. 높은 해상도에 낮은 비트레이트를 쓰는 것보다, 낮은 해상도에 충분한 비트레이트를 할당하는 게 훨씬 좋은 화질을 보여줬어요. 같은 비트레이트라도 인코딩 프리셋에 따라 화질 차이가 나요. x264 인코더의 경우 프리셋이 slow에 가까울수록 같은 비트레이트에서 더 좋은 화질을 제공하는데, 대신 CPU 사용률이 올라가요. veryfast, faster, fast, medium, slow 순서로 화질이 좋아지는데, 저는 CPU가 라이젠 7 5800X라서 medium까지 감당이 되더라고요. NVENC을 쓰시는 분들은 프리셋을 Quality로 설정하면 되는데, Max Quality는 화질이 약간 더 좋지만 GPU 부하가 커서 게임 방송에는 비추천이에요. 그리고 레이트 컨트롤 방식도 중요한데, CBR(일정 비트레이트)이 스트리밍에 가장 안정적이에요. VBR이나 CQP는 화질은 좋을 수 있지만 비트레이트가 순간적으로 튀면서 네트워크 불안정의 원인이 될 수 있거든요. 캔버스 해상도와 출력 해상도가 다르면 OBS가 영상을 축소하는데, 이때 사용하는 필터에 따라 화질이 달라져요. OBS에서 제공하는 축소 필터는 Bilinear, Bicubic, Lanczos 세 가지인데, Lanczos가 가장 선명한 결과물을 보여줘요. Bilinear은 속도는 빠르지만 화면이 약간 뿌옇게 되고, Lanczos는 처리 시간이 좀 더 걸리지만 디테일이 살아있어요. 저는 항상 Lanczos를 쓰고 있어요. 색 설정도 확인해봐야 하는데, OBS 설정 > 고급에서 색 형식은 NV12, 색 공간은 709, 색 범위는 부분(Partial)으로 설정하는 게 표준이에요. 전체(Full) 범위로 설정하면 일부 환경에서 색이 바래 보이거나 대비가 이상해질 수 있거든요. 이 설정을 바꾸고 나서 시청자분들이 '색감이 좋아졌다'고 하시더라고요. OBS에서 캔버스 해상도는 작업 공간의 크기이고, 출력 해상도는 실제 송출되는 영상의 크기예요. 캔버스 해상도를 모니터 해상도와 같게 설정하는 게 기본인데, 문제는 게임이 캔버스 해상도와 다른 해상도로 실행될 때예요. 예를 들어 캔버스가 1920x1080인데 게임이 2560x1440으로 실행되면, OBS가 이 영상을 1080p로 축소한 다음 다시 출력 해상도로 축소하는 이중 축소가 발생해요. 이러면 화질이 떨어질 수밖에 없어요. 게임 해상도를 캔버스 해상도와 동일하게 맞추거나, 캔버스 해상도를 게임 해상도에 맞추는 게 좋아요. 저는 게임도 1080p로 맞추고 캔버스도 1080p로 설정해서 불필요한 스케일링을 제거했어요. 같은 설정이라도 방송 플랫폼에 따라 화질이 다르게 보일 수 있어요. 이건 각 플랫폼이 영상을 트랜스코딩하는 방식이 다르기 때문인데요. 트위치는 비교적 트랜스코딩 품질이 좋은 편이고, 유튜브는 자체 인코더로 다시 압축하기 때문에 원본보다 화질이 살짝 떨어져요. 치지직이나 숲도 각각 다른 특성이 있고요. 트위치에서는 6000kbps CBR로 보내면 거의 원본에 가까운 품질로 시청자에게 전달되는데, 유튜브는 같은 비트레이트를 보내도 재인코딩 과정에서 화질 손실이 좀 더 있어요. 유튜브에서 좋은 화질을 원한다면 비트레이트를 더 높이거나, 1440p로 송출해서 유튜브의 VP9 인코더를 활성화시키는 방법이 있어요. 유튜브는 1440p 이상에서 VP9 코덱을 사용하는데, 이게 H.264보다 같은 비트레이트에서 훨씬 좋은 화질을 제공하거든요. 방송 화면에 올리는 요소들도 화질에 영향을 미쳐요. 오버레이 이미지가 PNG 대신 JPG로 되어 있으면 압축 노이즈가 방송에 그대로 나타나고, 웹캠 화질이 낮으면 OBS가 이를 스케일링하면서 뿌옇게 보일 수 있어요. 저는 모든 오버레이를 PNG 형식으로 통일하고, 가능한 한 벡터 기반의 깔끔한 디자인을 사용하고 있어요. 웹캠도 1080p 지원 모델로 바꾸고, 조명을 개선해서 웹캠 화질 자체를 높였더니 전체적인 방송 품질이 올라갔어요. 그리고 텍스트 소스를 사용할 때도 폰트 크기를 작게 하면 안티앨리어싱 때문에 글자가 뿌옇게 보일 수 있으니, 가독성 있는 크기로 설정하는 게 중요해요. 설정을 바꿀 때마다 실제 방송으로 테스트하면 시청자에게 민폐가 될 수 있으니, 비공개 테스트 방송을 활용하는 게 좋아요. 트위치에서는 스트림 키 뒤에 ?bandwidthtest=true를 붙이면 실제로 방송이 송출되지 않으면서 네트워크 테스트를 할 수 있고, OBS의 녹화 기능으로 다양한 설정의 결과물을 비교해볼 수도 있어요. 저는 새로운 설정을 적용할 때마다 2분 정도의 테스트 영상을 녹화해서 원본과 비교하는 습관을 들였어요. 특히 움직임이 많은 장면과 정지 장면을 모두 포함해서 녹화하면 비트레이트 부족 여부를 확인하기 좋아요. 도네이션 분석 도구로 시청자 반응을 트래킹하면서 화질 개선 전후를 비교해보는 것도 좋은 방법이에요. 화질이 좋아지면 시청 시간과 후원 모두 증가하는 경향이 뚜렷하더라고요. 여러분도 하나씩 적용해보시면서 최적의 화질 설정을 찾아보세요!비트레이트가 화질의 90%를 결정한다
해상도와 비트레이트의 황금 비율 찾기
인코딩 프리셋이 화질에 미치는 영향
축소 필터와 색 설정 최적화
소스 해상도와 캔버스 해상도 맞추기
방송 플랫폼별 최적 설정이 다르다
화면 구성 요소가 화질에 미치는 영향
테스트 방송으로 최적 설정 찾기
댓글
3