비디오는 VP9, 오디오는 Opus 코덱으로 인코딩하는 WebM 파일 프리셋입니다.
Google의 권고안을 바탕으로 1080p, 720p 용으로 만들었습니다.
참고) https://developers.google.com/media/vp9/settings/vod/
2 pass가 아닌 1 pass를 적용했습니다. Constrained Quality(CQ) 모드로, maximum quality level을 crf로 정하고 목표 평균 비트레이트와 최대, 최소 비트레이트를 정합니다.
인코딩 설정에 대한 설명입니다. (1080p 기준)
======================================================================
-f webm // 컨테이너 포맷(파일 형식)을 webm으로 지정
-c:v libvpx-vp9 -crf 31 -b:v 1800k -minrate 900k -maxrate 2610k // crf는 31, 목표 평균 비트레이트는 1800kbps, 최소 비트레이트 900k, 최대 비트레이트 2610k로 설정. 720p의 경우 이보다 낮춤.
-tile-columns 2 -g 240 // 원본 비디오를 디코딩할 때 세로로 몇 조각으로 나누느냐는 옵션이 '-tile-columns'인데 2의 지수값을 설정함. 여기서는 2^2 = 4의 세로 조각으로 설정. -g는 key frame(I-frame) 사이에 최대 몇 개까지의 프레임을 허용할지 결정. 30fps의 영상이라면 240/30 = 8, 즉 8초까지 허용한다는 의미.
-threads 8 -quality good -speed 4 // -thread는 인코딩 중 사용할 쓰레드 갯수. quality는 good, best, realtime 중 good을, speed는 0에서 4 중 가장 빠른 4를 선택
-c:a libopus -ac 2 -b:a 56k // 오디오를 libopus 코덱으로 인코딩. 채널은 스테레오, 비트레이트는 56k
-sn -map_metadata -1 -map_chapters -1 // 자막 없음, 메타데이터 초기화, 챕터 정보 없음
-metadata:s:v:0 language=kor // 비디오 언어 한국어로 설정
-metadata:s:a:0 language=kor // 오디오 언어 한국어로 설정
======================================================================
이상입니다.
이 프리셋을 적용해 인코딩한 샘플입니다. (드라마 '나의 아저씨' 중 1분 컷)
[원본]
My_Mister_sample.H264.AAC.1080p.original.mkv (35MB)
https://drive.google.com/open?id=10gGm_owcMiREJgl4TaLrzLohiqZZToE9
[1080p WebM]
My_Mister_sample.VP9.Opus.1080p.webm (11MB)
https://drive.google.com/open?id=1JfdcCme0_GxHNcXpnHdRSFCbBnMf44lh
[비교용 1080p mp4(HEVC, AAC)]
My_Mister_sample.HEVC.AAC.1080p.mp4 (11MB)
https://drive.google.com/open?id=1uSJMnQqsq8TT19pUezZdOJ4bENksOgYU
[720p WebM]
My_Mister_sample.VP9.Opus.720p.webm (6MB)
https://drive.google.com/open?id=1XOtMR7DGdg13K-d1V4kGXJh-PJ4kecSe
[비교용 720p mp4(HEVC, AAC)]
비교용) My_Mister_sample.HEVC.AAC.720p.mp4 (6MB)
https://drive.google.com/open?id=1fs488daz5T8QO4_itu1k5mKHf7Vtl4Ag
mp4 파일들은 비트레이트 모드로 각각 대응되는 WebM 파일의 비트레이트에 맞췄습니다. (그래서 대응되는 파일 크기가 거의 동일한 것임.)