비디오 |
|||
ID : | 1 | ||
포맷 : | HEVC | ||
포맷/정보 : | High Efficiency Video Coding | ||
포맷 프로파일 : | Main 10@L4@Main | ||
코덱 ID : | V_MPEGH/ISO/HEVC | ||
길이 : | 1시 0분 | ||
비트레이트 : | 5 304 Kbps | ||
폭 : | 1 920 픽셀 | ||
높이 : | 1 080 픽셀 | ||
화면 종횡비 : | 16:9 | ||
프레임레이트 모드 : | 변동 | ||
프레임레이트 : | 29.970 fps | ||
ColorSpace : | YUV | ||
ChromaSubsampling/String : | 4:2:0 | ||
BitDepth/String : | 10 비트 | ||
비트/(픽셀*프레임) : | 0.085 | ||
스트림 크기 : | 2.23 GiB (93%) | ||
Default : | 예 | ||
Forced : | 아니오 |
이거보고 어떤식으로 인코딩한줄 알수있을까요?
아니면 ts 나 tp 같은 드라마나 예능프로 녹화본을 HEVC 로 원본과 최대로 비슷한화질로
인코딩할방법 알고계신분은 알려주시면 감사하겠습니다
NVENC 가능한 엔비디아 그래픽 카드가 있으시면 HEVC(NVENC)로, 그렇지 않으면 그냥 HEVC으로 인코딩하시는데, 둘 사이의 속도 차이는 엄청납니다. 그래픽 카드와 CPU의 성능에 따라 거의 수십에서 수백 배까지 차이가 날 수 있습니다. (물론 NVENC가 훨씬 빠릅니다.)
각각의 경우 옵션 세팅이 다릅니다만 원본을 바탕으로 공통적으로 설정할 부분은 아래와 같습니다.
이를 바탕으로 각각의 인코더에 맞춰 설정하면 다음과 같습니다.
[HEVC(NVENC)로 할 경우]
1. [빠른 설정(F6)]
F6를 눌러 나오는 [빠른 설정] 창에서 아래와 같이 설정합니다.
여기서 중요한 것은 프로파일을 'main10'으로 설정해서 color depth 10비트의 원본 특성을 보존하는 것과 프리셋을 'slow'로 선택해서 가능한 최대 화질을 얻도록 하는 것입니다. (프리셋 slow는 hq 2 pass임. hq = high quality)
오디오 쪽은 정보가 없어서 임의로 설정했습니다.
퀀타이저 지정이 아닌 비트레이트 값을 직접 지정합니다. 원본보다 큰 6000으로 잡고 비트레이트 컨트롤은 어차피 매개변수 설정에서 변경할 것이므로 'const'로 대충 정합니다.
설정을 마친 후 [설정 적용]을 눌러 설정을 적용.
2. [매개변수] 설정(F8)
F8을 눌러 세세한 인코딩 매개변수를 설정합니다.
[빠른 설정]에서 대충 정한 비트레이트 컨트롤인 '-shanarcmode const'를 삭제하고 대신 보다 adaptive한 rate control을 위해 아래 줄을 추가합니다.
===============================================================
-rc vbr_hq -rc-lookahead 20 -spatial_aq 1 -aq-strength 10 -weighted_pred 1
===============================================================
맨 앞에 한 칸 띄는 것 유의해 주세요.
설명은 아래와 같습니다.
==================================================================================
-rc vbr_hq // rate control을 varible bitrate high quality 모드로
-rc-lookahead 20 // rate control을 위해 미리 가져올 frame 수를 20으로 설정
// 정수값으로, 기본값은 0. 시스템 최대 정수까지 설정 가능
// 10에서 20 사이의 값을 추천
-spatial_aq 1 // 프레임 내(spatial)의 비트레이트 배분을 위해 aq(adaptive quantization)를 true로 설정
// 기본값은 0으로 false.
-aq-strength 10 // 퀀타이저 값의 변동 정도(variation strength)를 10으로 설정
// 1~15의 정수값, 기본값은 8
// 값이 클수록 변동 정도가 크며 깍두기 제거에 도움이 되는 대신 디테일은 무뎌질 수 있음
-weighted_pred 1 // weighted prediction을 true로 설정. (기본값은 false로 정수 0)
// 몇몇 동영상의 경우 인코딩 에러가 날 수 있음. 그때는 이 옵션을 지울 것.
===================================================================================
따라서 최종적인 매개변수 설정은 아래와 같습니다.
나머지 매개변수 값에 대한 설명은 아래와 같습니다.
=================================================================================================
-c:a libfdk_aac -b:a 64k -ac 2 -fdkprofile he // 오디오 설정에 관한 부분
-tag:v hvc1 // Apple TV, QuickTime과 호환하는 코덱 ID 설정 (이 게시물 참조)
-sn -map_metadata -1 -map_chapters -1 -metadata creation_time=now // 자막 없음, 메타데이터 복사 안 함, 챕터 정보 없음
// 인코딩 시간을 파일 생성 시간으로
-metadata:s:v:0 language=kor // 비디오의 언어를 한국어로
// 영어는 eng, 일본어는 jpn, 중국어는 chi
-metadata:s:a:0 language=kor // 오디오의 언어를 한국어로
=================================================================================================
위와 같이 정한 후 프리셋으로 저장하고 인코딩.
[HEVC으로 할 경우]
1. [빠른 설정(F6)]
프리셋을 'veryslow'로 해서 비트레이트 대비 최대 화질을 확보. 만일 인코딩 속도가 너무 느리다면 'slower'나 'slow', 더 나아가 'medium'으로 선택.
'Main 10 profile'을 선택.
비트레이트를 원본보다 큰 6000으로.
설정을 마친 후 [설정 적용]을 눌러 설정을 적용.
2. [매개변수] 설정(F8)
[빠른 설정]에서 'Main 10 profile'을 선택한 것이 '-libx265main10'으로 반영돼 있는 것을 확인할 수 있습니다.
역시 좀더 adaptive한 비트레이트 컨트롤을 위해 아래의 한 줄을 추가합니다.
=================================================================================================================
-maxrate 12000k -bufsize 12000k -x265-params me=umh:qcomp=0.5:scenecut=40:bframes=3:min-keyint=30:keyint=300 -qmin 3 -qmax 51
=================================================================================================================
맨 앞에 한 칸 띄는 것 유의해 주세요.
설명은 아래와 같습니다.
=============================================================================================
-maxrate 12000k -bufsize 12000k // 최대 비트레이트값과 버퍼값을 설정 비트레이트값인 6000k의 두 배로 잡음
-x265-params me=umh:qcomp=0.5:scenecut=40:bframes=3:min-keyint=30:keyint=300
// x265 매개변수값을 설정 (자세한 옵션은 x265 Command Line Options 페이지 참조
// me=umh -> ME(motion estimation) 값을 umh(unsymmetric multi-hexagon)로 설정
// hex(hexagon)보다 퀄리티는 낫지만 인코딩 시간이 더 걸림
// 인코딩 시간을 줄이고 싶다면 'hex'로.
// qcomp=0.5 -> 퀀타이저 compensation factor 값을 0.5로 설정. 1은 constant quantizer.
// scenecut=40 -> 키프레임 삽입 적극성 정도를 40으로 설정. 값이 클수록 adaptive하지만 인코딩에 시간 소요
// bframes=3 -> 최대 연속 가능한 B 프레임 갯수를 3으로, 많을수록 화질이 떨어짐.
// min-keyint=30 -> GOP 최소 사이즈를 30으로 설정. 즉 키프레임들이 적어도 1초 이상 떨어져 있어야 함.
// 값이 클수록 화질이 떨어짐.
// keyint=300 -> GOP 최대 사이즈를 300으로 설정. 즉 키프레임들이 10초 이상 동떨어져 있으면 안 됨.
// 값이 작을수록 화질이 올라감.
-qmin 3 -qmax 51 // 퀀타이저 최소값과 최대값 설정
=============================================================================================
나머지 매개변수 값에 대한 설명은 HEVC(NVENC)와 같습니다.
위와 같이 정하고 프리셋으로 저장하고 인코딩합니다.