이 프리셋은 파스칼, 튜링 아키텍쳐 NVENC의 속도를 어느 정도 희생하는 대신 화질을 향상시키고자 하는 목표로 만들어진 것입니다.
그렇게 하기 위해 샤나에서 제공하는 기본 rate control 옵션인 '-shanarcmode'를 없애고 보다 상세하게 rate control을 할 수 있도록 인코딩 설정 옵션과 설정값을 추가했습니다.
옵션값을 변경할 때는 반드시 F8을 눌러 매개변수 창을 열어서 작업하시기 바랍니다.
H264의 경우 파스칼, 튜링 모두 동일하게 설정할 수 있지만(둘 다 B 프레임/Temporal AQ 지원), HEVC의 경우 파스칼은 B 프레임과 Temporal AQ를 지원하지 않아 해당 옵션을 제거했습니다.
자신의 그래픽 카드 NVENC 아키텍쳐가 파스칼인지 튜링인지 잘 모르는 분들은 이 문서에서 마지막 열 "HEVC B Frame support"가 No면 파스칼, Yes면 튜링이라고 보시면 됩니다. (GTX 1650 Super 이상 모델은 튜링)
프리셋 파일 다운로드:
H264(NVENC) Slow CQ HE-AAC.xml
HEVC(NVENC, Turing) Slow CQ HE-AAC.xml
HEVC(NVENC, Pascal) Slow CQ HE-AAC.xml
■ 인코딩 옵션 설정 (H264)
=============================================================================
-f mp4
-c:v h264_nvenc -profile:v high -level auto -preset slow -rc vbr_hq -cq 31
// cq(constant quality) 값 범위는 0(자동)~51(최저), 적당한 값으로 변경해서 적용할 것
// -cq 31 대신 -b:v 3000k 와 같이 비트레이트 옵션을 주면 가변 비트레이트 인코딩이 됨
-bf 4 -b_ref_mode middle
// NVENC에서 H264 코덱에 지원 가능한 최대 B 프레임의 갯수는 4
// 최대 B 프레임의 갯수를 4로, B 프레임 레퍼런스 모드를 middle로 설정함. 적용시 변경하거나 삭제
-rc-lookahead 32
// rate control을 위해 미리 가져올 frame 수를 32로 설정
// 최소값은 B 프레임 수 + 1이어야 함
// 엔비디아 권장값은 10~20
// 적용시 변경하거나 삭제
-spatial-aq 1 -temporal-aq 1 -aq-strength 10
// Spatial AQ, Temporal AQ 모두 적용
// Spatial AQ의 퀀타이저 값의 변동 정도(variation strength)를 10으로 설정. 1~15의 정수값, 기본값은 8
// Temporal AQ는 디테일이 많고 움직임이 적은 부분에 더 많은 비트레이트를 할당
// Temporal AQ를 활성화했을 경우 평균적으로 B 프레임보다 I/P 프레임에 비트레이트를 더 많이 할당하게 되어 프레임 간 비트레이트 변동이 더 커짐
// 적용시 변경하거나 삭제
-c:a libfdk_aac -b:a 64k -ac 2 -fdkprofile he
-sn -map_metadata -1 -map_chapters -1 -metadata creation_time=now
-metadata:s:v:0 language=kor
-metadata:s:a:0 language=kor
=============================================================================
■ 인코딩 옵션 설정 (HEVC, Turing)
=============================================================================
-f mp4
-c:v hevc_nvenc -profile:v main -level auto -preset slow -rc vbr_hq -cq 34
// cq(constant quality) 값 범위는 0(자동)~51(최저), 적당한 값으로 변경해서 적용할 것
// -cq 34 대신 -b:v 3000k 와 같이 비트레이트 옵션을 주면 가변 비트레이트 인코딩이 됨
-bf 5 -b_ref_mode middle
// Turing NVENC에서 HEVC 코덱에 지원 가능한 최대 B 프레임의 갯수는 5
-rc-lookahead 32
-spatial-aq 1 -temporal-aq 1 -aq-strength 12
-c:a libfdk_aac -b:a 64k -ac 2 -fdkprofile he
-tag:v hvc1
-sn -map_metadata -1 -map_chapters -1 -metadata creation_time=now
-metadata:s:v:0 language=kor
-metadata:s:a:0 language=kor
=============================================================================
■ 인코딩 옵션 설정 (HEVC, Pascal)
=============================================================================
-f mp4
-c:v hevc_nvenc -profile:v main -level auto -preset slow -rc vbr_hq -cq 34
// cq(constant quality) 값 범위는 0(자동)~51(최저), 적당한 값으로 변경해서 적용할 것
// -cq 34 대신 -b:v 3000k 와 같이 비트레이트 옵션을 주면 가변 비트레이트 인코딩이 됨
-rc-lookahead 32 -spatial-aq 1 -aq-strength 12 -weighted_pred 1
// 일부 동영상의 경우 인코딩 에러가 나거나 인코딩 속도가 너무 느리다면 -weighted_pred 1 삭제
-c:a libfdk_aac -b:a 64k -ac 2 -fdkprofile he
-tag:v hvc1
-sn -map_metadata -1 -map_chapters -1 -metadata creation_time=now
-metadata:s:v:0 language=kor
-metadata:s:a:0 language=kor
=============================================================================
□ 기타
- 튜링 사용자 분들은 -refs 4 옵션을 추가하여 다중 참조 프레임을 활성화하셔도 좋을 듯합니다. (값은 적절히 설정)
- 비디오 (소프트웨어) 필터를 사용하지 않을 경우 ― 영상 사이즈 변경, 디인터레이스, 화면 반전이나 회전, 영상에 자막 입히기 등 필터 매개변수에 -vf 옵션과 함께 필터 설정이 들어가지 않은 경우 ― 하드웨어 디코딩을 활성화하여 인코딩 속도를 높이시기 바랍니다.
■ 샤나인코더 5.2 버전 이상에서는 사용하지 마시기 바랍니다
- 새로운 ffmpeg 라이브러리(NVENC 비디오 코덱 SDK 11 적용)가 적용됨에 따라 이 프리셋은 필요 없게 됐으니 더 이상 사용하지 마시기 바랍니다.
- 빠른 설정에서 HEVC(NVENC)나 H264(NVENC)를 적절하게 적용하기 바랍니다. (팁게의 해당 게시물 참고)