Skip to menu

본문시작



질문하기 전에 검색하세요(Search before asking a question)


Views 3042 Votes 0 Comment 25
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print Attachment
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print Attachment

이 프리셋은 파스칼, 튜링 아키텍쳐 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 옵션과 함께 필터 설정이 들어가지 않은 경우 ― 하드웨어 디코딩을 활성화하여 인코딩 속도를 높이시기 바랍니다.

Shana_5.1.0.0_hardware-decoding_cuda_20200920.jpg

 

TAG •
Facebook Twitter Pinterest Kakao
  • ?
    HS 2020.09.22 05:37
    감사합니다. 요즘 RTX 30 시리즈 때문에 난리던데, ampere 아키텍쳐에서 nvenc는 어떨지 궁금하네요.
  • ?

    인코딩 면에서는 쿠다 코어의 대폭적인 증가로 성능이 향상된 것 외엔 특별히 추가된 기능은 없는 것으로 압니다. 성능 향상이 압도적인 이점이긴 하겠지만 말이죠.

     

    단지 디코딩 측면에서는 기존에 2개까지 지원되던 NVDEC 세션이 5개까지 지원된다고 하니 상당할 것 같네요. 쿠다 코어의 비약적인 증가와 함께 시너지가 발생할 듯합니다.

    실제 엔비디아 쪽 발표에 의하면 FHD 해상도의 HEVC 비디오 스트림(30fps)의 경우 디코딩 성능이 기존 튜링은 71fps(?)였던 것에 비해 168fps(?)까지 2배 이상 향상되었습니다.

     

    Nvidia_Video-Codec-SDK-10.0_PPT-slide_NVDEC-for-Ampere_20200924.jpg

     

    AV1 하드웨어 디코딩 지원 외에 뜻밖의 희소식입니다.

     

    다만, 이 성능이 제대로 구현되려면 비디오 코덱 SDK 10.0의 API를 적용한 소프트웨어여야 합니다. 즉, 7월말(?) 이후 릴리스된 FFmpeg나 NVEnc 5.10 이후 버전 같은 것들 말이죠.

    그리고 물론 엔비디아 그래픽 카드 드라이버도 해당 API를 지원하는 445.87 이상 버전이어야 하는 건 당연하구요.

     

    아쉽게도 샤나 5.1은 아직 이 기능(Ampere에서 5개 NVDEC)이 지원이 안 되는군요. 어쩌면 FFmpeg에 AV1 하드웨어 디코딩 기능이 완전히 자리잡을 때까지 기다리는 게 나을지도 모르겠군요. 어쨌든, 조만간 업데이트되리라 기대합니다. 121.gif

  • ?
    HS 2020.09.26 15:05
    크으.. 멋있는 속도겠네요. 기대해봐도 되겠습니다. 항상 속도에 목매게 되던데, 일단은 존버해야겠습니다 ^^
    언제나 친절한 글 감사합니다 ^^
  • ?
    calaf 2020.09.22 11:16
    자료 감사드립니다. tp full hd파일을 위 프리셋 설정으로 인코딩시 화질이 어느정도 되나요? 화질을 좋게 하려면 어떤 부분을 얼마만큼 수정하여애 하는지요?
  • ?
    JKyle 2020.10.06 10:54

    이런 건 해보고 질문해 주시죠.


    "화질이 어느 정도냐?" 같은 애매한 질문도 곤란합니다. 같은 설정이라도 원본에 따라 결과가 달라진다고 누누이 말씀드렸는데...


    옵션에 대한 설명은 본문에 충분히 한 상태입니다. 시도해보고 질문하시는 경우 외엔 이런 질문 사양입니다.

  • ?
    와플과녹차 2020.10.04 10:04
    JKyle 님 안녕하세요. NVENC 화질 향상 프리셋 첫번째 버젼을 잘 쓰고 있었습니다. 이번에 version 2가 나왔는데 첫번째 버전과 비교해서 화질은 어느것이 좋을까요?
    현재 gtx 1660을 사용중이고 900mb정도되는 동영상을 인코딩해 본 결과 속도는 두번째 버전이 2.7x정도 첫번째 버전이 2.2x 정도 나오는 상태입니다, 용량은 비슷하네요~
  • ?
    JKyle 2020.10.04 12:06

    HEVC 코덱이라면 Turing 프리셋을 적용하셨겠죠? 튜링용으로 따로 만든 이번 것이 이론적으론 낫습니다. 1660이 튜링이라 B-프레임 인코딩 가능하고 temporal AQ 가능할 테니...

    H.264도 기존에 고려하지 않았던 B-프레임이 들어갔으니 이론상으론 이번 것이 낫습니다.

    본문에 올린 프리셋은 옵션을 약간 과하게 설정한 감이 없지 않기 때문에 속도가 너무 느리다고 생각되신다면 -bf 값은 3 정도, -rc-lookahead는 20 정도, -aq-strength는 10 정도로 낮춰서 화질을 살펴보시는 것도 좋은 방법입니다. -refs 4 옵션 추가도 해보시고 판단하세요.

     

  • ?
    와플과녹차 2020.10.04 14:09
    항상 감사드립니다. JKyle님 덕분에 인코딩을 하고 있어요~
  • ?
    브이포 2020.10.06 07:25

    와 튜링 써보니까 용량 1/3로 줄어들면서 퀄리티 차이는 거의 없네요ㄷㄷ, 조금만 더 용량을 희생하고 퀄리티를 더 높이고 싶을때는 어떤 옵션을 올려주면 되는 지 궁금합니다!

  • ?
    JKyle 2020.10.06 10:51
    거기서 용량을 더 줄이려면 cq를 높여주면 되는데, 그럼 퀄리티는 낮아지죠. 다른 옵션들도 할 수 있는 대로 최대한 설정한 상태구요. 이미 현재의 샤나인코더(5.1 버전)에서는 뽑을 수 있는 대로 최대한 뽑은 것 같습니다.
    단지 샤나인코더 내장 FFmpeg가 아직 최신의 NVENC API가 적용된 상태가 아니니 그게 업데이트된다면 개선의 여지는 더 있을 것 같습니다. 개발자님을 졸라보시죠. ㅎㅎ
  • ?
    브이포 2020.10.06 16:42

    아 아뇨 그 용량을 희생한다는 게 더 큰 용량을 만든다는 뜻입니다!
    말하신대로 최대치의 값을 세팅해두신 거면 약간 더 좋은 영상을 얻으려면 cq 값이나 비트레이트를 수동으로 맞춰야겠네요

    -refs 5 값은 검색하다보니 5까지도 된다길래 5로 했는데 상관없는 건가요? 높아질수록 화질이 떨어진다던가...

  • ?
    JKyle 2020.10.06 17:30
    아, 그런 뜻이시라면 cq 값을 낮추시면 됩니다. 그게 x264나 x265의 crf 값과 같은 역할을 하는 거거든요.
    refs는 NVENC에서 얼마까지 지원하는지는 확실치 않군요. 이론상으로는 높을수록 화질이 좋아지는 겁니다만, 인코더마다 제한이 있어서 주의하면서 사용해야 하거든요. 참고로 x265에선 3이 디폴트 값이고 6 정도까지 가능한 걸로 알고 있습니다.
  • ?
    브이포 2020.10.07 06:55
    감사합니다ㅎㅎ
  • ?
    허당와 2020.10.10 21:55
    1060 쓰는데 시피유 인코딩과 비교해도 화질차이는 체감 못할까요
  • ?
    JKyle 2020.10.15 04:13
    이런 애매모호한 질문은 받지 않습니다.
    본인이 직접 해보고 궁금한 것이 있다면 구체적으로 질문하세요.
  • ?
    꿈쟁이 2020.10.13 14:40
    ■ 인코딩 옵션 설정 (HEVC, Pascal) 에서요.
    -f mp4
    -c:v hevc_nvenc -profile:v main -level auto -preset slow -rc vbr_hq -b:v 1500k
    ~~~~~~~~~~~
    이렇게 적용했는데 가변비트레이트 인코딩이 안되는듯합니다.
    인코딩 후에 파일정보를 보면 비디오 정보가 이렇게 뜹니다

    Video
    ID : 1
    Format : HEVC
    Format/Info : High Efficiency Video Coding
    Format profile : Main@L4@Main
    Codec ID : hvc1
    Codec ID/Info : High Efficiency Video Coding
    Duration : 1 h 15 min
    Bit rate : 1 479 kb/s
    Width : 1 920 pixels
    Height : 1 080 pixels
    Display aspect ratio : 16:9
    Frame rate mode : Constant
    Frame rate : 23.976 (24000/1001) FPS
    Color space : YUV
    Chroma subsampling : 4:2:0
    Bit depth : 8 bits
    Scan type : Progressive
    Bits/(Pixel*Frame) : 0.030
    Stream size : 803 MiB (87%)
    Language : Korean
    Encoded date : UTC 2020-10-13 04:49:42
    Tagged date : UTC 2020-10-13 04:49:42
    Codec configuration box : hvcC

    여기서
    Frame rate mode : Constant
    이 내용처럼 고정 비트레이트로 된거 아닌가요?
  • ?
    JKyle 2020.10.15 03:15

    프레임레이트와 비트레이트의 차이를 정말 몰라서 이런 댓글을 다신 건가요?

    최소한의 기본적인 사항은 숙지하고 댓글을 달아주십시오.

    https://shana.pe.kr/shanaencoder_tip/80458

  • ?
    꿈쟁이 2020.10.15 09:13

    아... 그렇군요 죄송합니다.
    제가 비트레이트와 프레임레이트를 혼동했습니다.

     

    그럼 원본동영상에는
    파일 정보에 Bit rate mode 가 variable 라고 뜨는데 새로 인코딩한 후엔 위 내용처럼

    Bit rate mode 항목은 안보이고 Bit rate 만 나오고

    아래 쪽에 Frame rate mode 만 나왔는데요.

    이 변환된 동영상이 가변 비트레이트로 변환된거라고 어떻게 알 수 있나요?

  • ?
    JKyle 2020.10.15 10:36
    특별히 따로 설정하지 않은 한 가변입니다. 자게 게시물들 참고하세요.
  • ?
    꿈쟁이 2020.10.15 13:38
    알겠습니다.
    감사합니다.
  • ?
    자쿠투 2020.10.26 10:53

    와 이 프리셋 정말 좋네요
    그래픽카드가 맥스웰 2세대라
    파스칼이나 튜링 HEVC프리셋은 사용못해보고 H264프리셋 사용해보니
    대부분의 영상에서 화질차이는 거이없고 용량은 팍 줄어드네요 감사합니다! ^^

    그런데 해상도 변경을 하려면 어떻게 하면되는지요?

  • ?
    JKyle 2020.10.26 13:42
    https://shana.pe.kr/shanaencoder_tip/80582
  • ?
    N0name 2020.11.04 15:00
    음성 원본음성 그대로 복사하고 싶어서 -c:a copy 옵션 쓰는데 오류가 나오는데 어떻게 해결해야 할까요?
  • ?
    N0name 2020.11.04 15:02
    자문자답으로 mkv옵션까지 넣으니까 잘 되네요. 감사합니다.
  • ?
    라샤 2020.11.23 08:46
    안녕하세요 자막을 입히기 위해서, 해당 프리셋 상태에서 영상에 자막입히기만 체크한 상태로 했습니다. 그런데 스타일 강제적용을 안켜면 글꼴크기및 여백이 적용이 안되는데 해결방법이 있을까요? 외곽선두께같은 스타일은 강제 적용을 안켜도 적용이 됩니다.

List of Articles
No. Subject Author Date Views Votes
49 5.1 체널 스테레오 다운믹스 LFE 체널 유지 file 이단아 2020.10.04 759 1
» NVENC 화질 향상 프리셋 ver. 2 - 퀄리티 모드 25 file JKyle 2020.09.21 3042 0
47 삼성 구형 PAVV 티비 USB 연결용 H264 NVENC 프리셋 4 P군 2020.08.02 1259 1
46 슬로모션(1/2배속), 패스트모션(2배속, 4배속) file JKyle 2020.05.20 2814 0
45 간단하게 만든 프리셋 file 문화보호물 2020.05.04 3368 0
44 화면 가운데 부분 가로 잘라내기 file JKyle 2020.03.10 2887 3
43 애니메이션을 위한 프리셋 몇 가지 用于动画的一些预设 Some presets for animations 1 file Prophet 2019.12.14 2583 1
42 HDR -> SDR 변환 (H264(x264), FHD, 톤매핑) (4.9.0.6 이상만 해당) 3 file JKyle 2019.10.25 2864 1
41 AV1 제한된 비트레이트 모드 프리셋 file JKyle 2019.10.20 1845 0
40 HDR -> SDR 변환 (H264(x264), FHD, 톤매핑) 1 file JKyle 2019.10.17 2044 1
39 GIF 움짤 만들기 7 file JKyle 2019.09.08 2598 0
38 H264(NVENC) 화질향상 0.1 13 file 문화보호물 2019.06.23 10622 2
37 레터박스 대신 흐린 원본 영상을 배경으로 까는 프리셋 4 file JKyle 2018.11.05 2655 3
36 영상에 텍스트 로고를 입히는 프리셋 file JKyle 2018.10.11 2412 2
35 HEVC(x265) 2패스 인코딩 프리셋 2 file JKyle 2018.09.15 8007 0
34 인코딩된 파일의 PSNR, SSIM 값 계산을 위한 프리셋 1 file JKyle 2018.09.05 1919 0
33 HEVC(x265) 디테일 개선을 위한 프리셋 11 file JKyle 2018.08.30 10586 1
32 오로지 확장자만 변경하기 위해서 만든 프리셋 file 문화보호물 2018.07.28 5952 0
31 부드러운 움직임의 60fps 인코딩 (minterpolate 필터를 이용) 11 file JKyle 2018.07.16 9850 0
30 HEVC(NVENC)를 이용한 일반 HDR 동영상 인코딩 2 file JKyle 2018.07.16 4866 0
Board Pagination Prev 1 2 3 Next
/ 3