본문으로 바로가기

방송할때 CPU 점유율 줄이기

category 방송&녹화 2015. 10. 23. 11:24

최근방송을 하면서 CPU 점유율이 너무 높은 듯 해서, CPU 점유율에 영향을 주는것이 무엇이 있는가에 대해서 약간 실험을 해보았습니다


왜냐하면 이대로 가단 노트북이 터질것 같아서 솔직히 무섭습니다;;

그러니까 CPU 점유율이라도 좀 낮춰봐야죠


그런데 사실 OBS나 Xsplit 쓰면서 요동을 치는 CPU 사용율만을 측정하기는 어려운 관계로

스트리밍 서비스에서 사용하는 인코더인 FFmpeg를 이용한 인코딩 프로그램을 이용해서 영상을 인코딩 하는데 걸리는 시간을 측정해 보았습니다

약간 취지가 다르기는 하지만, 인코딩이 빠른 속도로 된다는 것은 결국 스트리밍 할때 CPU의 부하가 줄어든다는 뜻이기도 하니까요


일단 인코딩을 하는데 있어서 신경쓰는 요소는 1. 해상도, 2. 비트레이트, 3. 프레임레이트가 있습니다

따라서 기준점을 1080P 500kbps 30fps로 놓고, 5분짜리 동영상을 요소의 조건을 변형하여 실험해봤습니다


1. 기준점 -> 1080P 500kbps 30 - 1:33


2. 해상도를 480P로 변경 -> 480P 500kbps 30 - 1:22


3. 비트레이트를 5000k로 변경 -> 1080P 5000kbps 30 - 1:54


4. 프레임을 60fps로 변경 -> 1080P 500kbps 60 - 2:16


대충 계산해보면

프레임 -> 비트레이트 -> 해상도 순으로 인코딩 속도에 영향을 미치는 것으로 보입니다


아 그리고, CPU의 사용률을 가장 줄일수 있는 확실한 방법은 바로 VideoCodec을 사용하는 겁니다

인텔 Quicksync, Nvidia CUDA or NVENC (요즘엔 CUDA보다 NVENC가 대세) AMD VCE가 바로 VideoCodec 입니다

CPU에만 전적으로 의지하는 X.264 코덱과는 달리, ViedeoCodec은 인코딩을 그래픽카드에서 처리하기 때문에, CPU의 점유율을 확실하게 줄일 수 있습니다