유튜브 라이브 화질 높이기 - yutyubeu laibeu hwajil nop-igi

좋은 싫든 유튜브를 사용해야하는 현실에서...

유튜브의 비트레이트를 모니터링 하는 방법을 설명드립니다.

유튜브의 화질이 안좋은 것은, '비트레이트(bitrate)'가 현저히 낮기 때문입니다. 다른 이유는 없습니다.

HD 해상도에서 H.264 코덱으로 인코딩시 저의 권장 비트레이트는 10Mbps 입니다. 이 값으로 영화를 인코딩했을 때, 90%정도는 무난하게 볼 수 있다는 생각입니다. (지극히 개인적임) 참고로, HD 블루레이의 평균 비트레이트는 20~30Mbps 이고, 피크에서는 40Mbps까지 나오는 영화도 있습니다. 넷플릭스의 경우 10~20Mbps 라고하는데, 더 낮게 나오는 경우도 있고, 4K 블루레이의 경우, HEVC 코덱에서 평균 40~50Mbps이고, 피크에서 100Mbps까지도 나오는 영화도 있습니다. DCP 영화의 경우 200~250Mbps 수준입니다. (물론 압축 코덱이 다르지만) 상업 표준 코덱인 ProRes HQ의 경우 220Mbps 수준입니다. (HD/30p 기준)

유튜브에 올리기 전에 먼저, 비트레이트 테스트를 해보면 좋겠는데, 현재 유튜브는 H.264(AVC)와 VP9 코덱을 둘다 사용합니다. VP9는 HEVC와 거의 대등한 화질로, H.264 대비 50% 효율이 좋다고 합니다. 

영화 <반도> 예고편을 예를 들어 봅니다.

 

<Ctrl+U>키를 눌러서 URL 창을 엽니다. URL을 붙여넣기 하고, 확인.

유튜브 라이브 화질 높이기 - yutyubeu laibeu hwajil nop-igi

볼륨 작대기 위에 해상도를 선택하는 버튼이 있습니다.

눌러서, 내가 모니터링을 하고 싶은 해상도, 코덱을 선택합니다.

유튜브 라이브 화질 높이기 - yutyubeu laibeu hwajil nop-igi

문제는, 웹브라이우저 또는 스마트폰, 스마트TV 등에서 볼때, 어떤게 초이스가 될지 모른다는 겁니다. 아마 해당 기기가 VP9을 지원하면, VP9으로, 아니면, avc로 재생되지 않을까. 이것을 모를 경우, 최저값과 최고값 모두다 테스트해보면 되겠죠.

HD(1920x1080) 해상도의 경우, 3가지 포맷이 있습니다.

- Video 3.9M, 1920x1080, 24F (mp4, avc)

- Video 2.6M, 1920x1080, 24F (webm, vp9)

- Video 1.9M, 1920x1080, 24F (mp4, av01)

맨 앞에 있는 숫자값이 비트레이트 인것 같으나, 이것이 평균값인지, 최대값인지는 모릅니다.

실시간으로 비트레이트를 확인하는 방법은...

재생중에 [TAB]키를 눌러서 보는 방법..

또는..

마우스 오른쪽 버튼을 눌러서 '재생정보' <Ctrl+F1> 창에서 볼 수 있습니다.

프리미어나 파이널컷에서 비트레이트를 테스트할 때, 위 값으로 사전 프리뷰 테스트를 해보시라는 겁니다. 물론, 유튜브 인코더와 100% 일치할 수는 없지만, 대략적으로 어느정도 화질 저하가 발생하는지 대충 모니터링이 가능합니다. 

유튜브 역시 가변비트레이트(variable bitrate, VBR)로 인코딩합니다. VBR은 이미지의 복잡도가 낮을 경우, 비트레이트를 떨어트리고, 복잡도가 높을 때 비트레이트를 올립니다. 예를 들면, 페이드 인/아웃 같은 효과를 줄 경우, 암흑 장면에서는 비트레이트가 거의 0에 가까웠다가 서서히 밝아지면서 비트레이트가 올라가는 경우입니다. 즉, 이미지의 복잡도가 낮을 수록 화질은 더 떨어져 보일 수 있습니다. (밴딩같은 아티팩트)

대부분의 스트리밍은 VBR로 인코딩 된다고 보셔도 될것 같은데요, 예를 들면, AME에서 인코딩 테스트할 때...

- Video 3.9M, 1920x1080, 24F (mp4, avc)

위와 비슷한 인코딩 값은.... H.264 코덱에서

- Video 2.6M, 1920x1080, 24F (webm, vp9)

위와 비슷한 인코딩 값은.. HEVC 코덱에서,

이것은 어디까지나, 유튜브에 올라갔을 때를 시뮬레이션하는 것인만큼, 정확한 화질 저하는 유튜브에 직접 올려서 보는게 가장 확실합니다.

그렇다면, 유튜브에 올릴때 가장 화질 좋게 올리는 방법은?

"없습니다."

소스를 어떤 식으로 올리든, 유튜브는 다시 자체 인코딩을 해버리기 때문에 사실상 방법이 없지만, 이론적으로 소스 자체를 고화질로 올리는 것이 저화질 코덱에서 다시 인코딩하는 것 보다는 낫지 않겠나 생각됩니다.

유튜브에 올릴 수 있는 코덱의 종류는..

.MOV

.MPEG4

.MP4

.AVI

.WMV

.MPEGPS

.FLV

3GPP

WebM

DNxHR

ProRes

CineForm

HEVC(h265)

이중에서 가장 화질이 좋다고 생각되는 ProRes 코덱으로 올리는게, 어떻까 합니다. 물론 그 차이가 크지않더라도.

손실 코덱에서 용량을 저감시키는 방법:

유튜브가 VBR을 사용하지만, 어느정도 평균 값을 가지고 있으므로, 이 값을 최대한 활용할 방법을 찾아보는 것도 방법입니다. (많은 노력이 필요해 보입니다)

1. 고주파를 제거합니다.

고주파를 제거하는 가장 손쉬운 방법은 Blur를 먹이는 방법입니다. Blur를 먹이면 선명도가 떨어지지만, 눈에 뛰지 않을 정도 수준의 Blur는 손실 압축시 화질 저하가 덜 발생합니다. 쉽게 설명하면, 엣지가 너무나 샤프한 영상을 손실 압축시키게 되면, 양자화 과정에서 엣지(고주파)를 살릴려고 다른 부분 (저주파) 부분을 너무 많이 망가트립니다. 그래서 고주파의 데이터를 조금 줄이더라도 전체적인 평균값을 유지해 보자는 취지입니다. 실제로 영화의 경우 엣지가 샤프하지 않습니다.

촬영시엔 심도를 얕게 찍는 것도 방법이 될 수 있습니다. 즉, 포커스가 맞는 눈, 코, 입 고주파 부분의 면적을 줄이게 되면, 디포커싱된 배경은 압축을 많이 시켜도 시각적 화질 저하를 감지하지 못할 수도 있으니까요. (눈속임)

2. 노이즈를 제거합니다.

노이즈 알갱이가 많을 수록, 이것을 고주파로 인식해서 코덱에서는 이것들을 살릴려고 무지 애를 씁니다. 비트레이트를 더 많이 할당하게 되고, 그래도 비트레이트가 모자르면, 이미지를 뭉개버립니다. 노이즈가 적을 수록 다른 부분에 할당할 수 있는 비트레이트가 조금은 늘수 있으므로, 일단은 지우고 시작합니다. 블루레이에서 필름 그레인이 많은 영화들이 상대적으로 비트레이트가 높게 인코딩되는 경우가 많습니다. 따라서 비트레이트가 높다고 화질이 좋은건 아니랍니다.

3. 그레인을 추가합니다.

그레인 = 노이즈라고 생각할 수 있는데, 이 부분은 일장, 일단이 있습니다. 그라데이션 장면에서 노이즈 없이 너무나 매끄러운 부분은 저주파로 할당하고, 뭉개버립니다. 그라데이션은 명암의 차이가 있는데, 이것을 계단식, 또는 나이테 같은 아티팩트로 만들어 버립니다. 즉, 계조가 망가지게 되는데, 이것을 저감시킬려는 목적입니다. 따라서, 모든 장면에 그레인을 주는것 보다 특정 장면, 예를 들면, 그라데이션에서 아티팩트가 너무 심해 보이는 장면에서만 부분적으로 적용해 봅니다. 일종의 디더링 효과. 얼마를 적용해야 이미지가 망가지지 않으면서도, 밴딩을 완화시킬 수 있을지는 많은 테스트를 해봐야 합니다. 

이런 효과들을 테스트할 때, 유튜브에 계속 올리면서 볼 수가 없으므로, 사전에 미리 프리뷰 인코딩을 해보는 거랍니다.

유튜브에서 화질을 좋게 보는 방법:

유튜브는 해상도 마다, 각각 할당된 비트레이트 값을 가지게 되는데, 예를 들면...

8K 22.9M

4K 17.4M

HD 2.6M

SD 757K

이것을 역 이용하는 방법입니다. 예를 들면, HD 해상도의 소스라고 한다면, 이것을 HD로 올리는 것 보다 4K로 업스케일링해서 올리고, 시청자도 해상도를 4K로 선택해서, HD 모니터에서 보게 되면, HD 소스라고 해도 4K 해상도의 인코딩 비트레이트 값으로 보게 되므로, 화질을 더 좋게 시청할 수 있습니다. 따라서, 4K 소스라고 한다면, 8K로 업스케일링해서 HD 모니터에서 보면, 화질이 정말 쨍하게 나옵니다. 대신 네트워크 트래픽(데이터요금)과 재생기기의 부하가 가중될 수 있습니다.