조회 수 17934 추천 수 2 댓글 19
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

NVENC가 가능한 엔비디아 그래픽 카드를 이용해서 하드웨어 인코딩을 하면 경우에 따라 수백 배까지 속도가 획기적으로 향상됩니다. 대신 화질은 동일한 비트레이트의 소프트웨어 인코딩 동영상에 비해 떨어지는 것이 사실이죠.

 

이 프리셋은 NVENC의 속도를 어느 정도 희생하는 대신 화질을 향상시키고자 하는 목표로 만들어진 것입니다. 그렇게 하기 위해 샤나에서 제공하는 기본 rate control 옵션인 '-shanarcmode'를 없애고 보다 상세하게 rate control을 할 수 있도록 인코딩 설정 옵션과 설정값을 추가했습니다.

 

이 프리셋은 NVENC에서 지원하는 H264, HEVC 두 가지 코덱 중 HEVC 코덱에 관한 것입니다.

 

NVENC(HEVC) Slow VBR 1800k HE-AAC 44.1 64k.xml

 

이 프리셋의 오디오 설정은 편의상 44.1 kHz 샘플링 레이트에 64 kbps의 비트레이트를 가지는 스테레오 HE-AAC 코덱의 오디오로 인코딩되도록 설정했습니다.

 

몇몇 중요한 옵션과 설정값에 대한 설명은 아래와 같습니다. (필터 매개변수에 대한 설명은 생략)

 

=============================================================================

 

 -f mp4

 -c:v hevc_nvenc -profile:v main -level auto

 -preset slow

       // hevc_nvenc의 프리셋은 slow(hq 2 passes), medium(hq 1 pass), fast(hp 1 pass),

       // hp(high performance), hq(high quality), bd(blueray disk),

       // ll(low latency), llhq(low latency hq), llhp(low latency hp)

       // 등이 있는데 slow가 가장 높은 퀄리티

 -b:v 1800k

       // 비디오 비트레이트 1800 kbps. 원본과 원하는 화질에 따라 높이거나 줄일 것

 -rc vbr_hq

       // rate control을 varible bitrate high quality 모드로.

       // 이외에 constqp(constant quantization parameter), vbr(variable bitrate), cbr(constant bitrate),

       // cbr_ld_hq(constant bitrate low delay high quality), cbr_hq(constant bitrate high quality)

       // 등의 모드가 있음.

 -rc-lookahead 20

       // rate control을 위해 미리 가져올 frame 수를 20으로 설정

       // 정수값으로, 기본값은 0. 시스템 최대 정수까지 설정 가능

       // 10에서 20 사이의 값을 추천

 -spatial_aq 1

       // 프레임 내(spatial=intra-frame)의 비트레이트 배분을 위해 aq(adaptive quantization)를 true로 설정

       // 기본값은 0으로 false.

 -aq-strength 10

       // 퀀타이저 값의 변동(aq) 정도(variation strength)를 10으로 설정

       // 1~15의 정수값, 기본값은 8

       // 값이 클수록 변동 정도가 크며 덜 복잡한 부분에 대해 좀더 비트를 할당 (psnr 값은 하락)

 -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

       // 오디오의 언어를 한국어로

 

=============================================================================

 

<주의 사항>

 

1.

설정값을 변경하기 위해 [빠른 설정] 창을 이용해서 [설정 적용]을 한 후 최종 확인을 위해 F8을 눌러 [매개 변수] 창을 열어보면 ' -shanarcmode const' 또는 ' -shanarcmode variable'과 같이 샤나에서 지정한 rate control 모드가 들어가 있는 것을 볼 수 있습니다. 커스텀 설정한 rate control을 적용하기 위해서는 ' -shanarcmode const' 또는 ' -shanarcmode variable' 부분을 지워야 합니다.

 

2.

일부 동영상(key frame 간격이 매우 좁은 동영상 등)의 경우 인코딩 에러가 날 수 있는데, 그때는 ' -weighted_pred 1' 옵션을 지우십시오.

 

이 글을 추천한 사람
흑풍운랑 wjohnas
TAG •
Facebook Twitter Pinterest Kakao
  • ?
    wjohnas 2018.06.19 20:28
    감사합니다 정말 필요했어요!
  • ?
    마루 2018.09.05 00:14
    H264(NVENC) 도 비슷하게 가능할것 같은데 가능하겠죠?
  • ?
    JKyle 2018.09.05 06:02

    비슷합니다. 다만,

     

     -c:v hevc_nvenc 를 -c:v h264_nvenc 로 변경,

     -profile:v main 을 -profile:v high 로 변경,

     -rc-lookahead 20 을  -rc-lookahead 40 으로 값을 좀 올리고,

     -refs 4 -no-scenecut 1 -b_adapt 0 를 추가,

     -spatial_aq 를 -spatial-aq 로 변경 (hevc_nvenc와 h264_nvenc가 이 옵션이 이상하게 다름.)

     

     -tag:v hvc1 를 삭제(HEVC의 코덱 ID 설정 부분이라 H264에는 부적절함.)

     

    ' -refs 4'는 H264 계열 코덱에서는 P-프레임이 참고할 프레임 수를 말하는데, x264에서는 3이 기본값이고 h264_nvenc에서는 1이 기본값입니다. 이것의 최대값은 FHD에서는 4, HD에서는 9인데, 이 값이 클수록 인코딩 효율은 높아져 같은 화질에 비트레이트는 줄일 수 있는, 즉 같은 비트레이트에 화질을 향상할 수 있는 반면 필요로 하는 버퍼 크기가 커져 로우 버퍼 기기에서는 재생이 불가능해질 수 있는 단점이 있습니다. 경우에 따라서는 화질 향상에 별 도움이 안 되는 것 같다는 경험도 있으니 알아서 판단하시길...

     

    자세한 것은 설명서 부분의 샤나인코더 4.9.0.1의 FFmpeg 옵션을 참고하세요.

     

    https://shana.pe.kr/shanaencoder_manual/32663

  • ?
    JKyle 2020.01.04 05:20

    인코딩 옵션 부분에

     -refs 4

    옵션을 추가하는 문제에 대해 말씀드립니다.

    샤나인코더 5.0 버전부터는 파스칼 이하 대부분의 엔비디아 그래픽 카드에서는 이 옵션을 없애야 인코딩 오류가 나지 않습니다.

     

    최근 FFmpeg에서 다중 참조 프레임 관련 옵션인 -refs를 NVENC에 보다 엄격하게 적용하면서 이 기능을 제대로 지원하지 못하는 엔비디아 그래픽 카드(파스칼 계열 이하 대부분 해당되는 것 같습니다.)에서는 아래와 같이 인코딩 오류를 발생시킵니다.

    Multiple reference frames are not supported by the device

    No capable devices found

    프리셋 사용자분들은 반드시 참고하시기 바랍니다.

     

    기존의 FFmpeg에서는 해당 그래픽 카드가 이 기능을 제대로 지원하지 않더라도 이 옵션을 무시하고 진행하면서 메타정보에 참조 프레임 수만 4로 기록했던 것 같은데, FFmpeg가 업데이트되면서 옵션 적용에 보다 엄격하고 까다로와졌습니다.

  • ?
    JKyle 2018.09.05 06:12
    자료 등록 이후 약간의 수정이 필요한 것 같아 댓글로 남깁니다.

    우선 대부분의 경우 인코딩 에러를 초래하는 ' -weighted_pred 1' 옵션은 가급적 지우십시오.

    그리고 lookahead를 활성화할 경우 함께 활성화하도록 권장한 다음 옵션을 추가해 주십시오.
    -no-scenecut 1

    Motion compensation을 위한 참조 프레임 수를 기본 1에서 4 정도로 높여 주십시오. (x265의 경우 기본값 3)
    -refs 4

    보다 자세한 내용은 '설명서' 게시판의 'ShanaEncoder FFmpeg 옵션(v4.9.0.1)'을 참고해 주십시오.
    https://shana.pe.kr/shanaencoder_manual/32663
  • ?
    조토마테 2018.09.11 22:30
    위에 추가 내용 반영해서 프리셋 올려봅니다
    -f mkv
    -c:v hevc_nvenc -profile:v main -level auto -preset slow -b:v 3446k
    -rc vbr_hq -rc-lookahead 20 -spatial_aq 1 -aq-strength 10
    -c:a copy
    -tag:v hvc1
    -sn -map_metadata -1 -map_chapters -1 -metadata creation_time=now
    -metadata:s:v:0 language=jpn
    -metadata:s:a:0 language=jpn

    현재 이렇게 사용중인데 -no-scenecut 1랑 -refs 4은 hevc에선 무관한건가요?
  • ?
    JKyle 2018.09.12 02:41

    무관하지 않습니다. h264_nvenc와 hevc_nvenc 둘 모두에 해당하는 사항입니다.

     

    https://shana.pe.kr/shanaencoder_manual/32663
    '설명서' 게시판의 'ShanaEncoder FFmpeg 옵션(v4.9.0.1)'을 참고하면,

    '-no-scenecut'에 대해서는 "lookahead를 활성화하면 이 옵션을 1 로 해서 scene cut(I-frame을 기준으로 하는 GOP 결정)에서 탄력적인 I-frame 삽입을 끄시오."라고 돼 있고,
    '-refs'는 FFmpeg의 코덱에 관한 일반(generic) 명령어로, 'motion compensation을 위해 고려할 참고 프레임수'라고 돼 있습니다.

    솔직히 -no-scenecut을 1로 해서 탄력적인 I-frame 삽입을 끄는 것이 과연 화질 향상에 도움이 되는 것인지 의문이지만 일단 매뉴얼에 따르는 것이고, 참고 프레임 수는 NVENC 계열 코덱들이 다 기본값을 1로 하는 것 같아 (x265는 3이 기본값) 좀 높여서 화질 향상을 꾀해 보자는 의도를 갖고 삽입한 것입니다. 이런 설정들이 실제로 화질 향상에 도움이 되는지 여부는 주관적인 경험에 따라 결정하시면 됩니다.

  • ?
    조토마테 2018.09.12 21:49

    그럼

    -rc vbr_hq -rc-lookahead 20 -no-scenecut 1 -spatial_aq 1 -aq-strength 10 -refs 4

    이렇게 추가해주면 되는건가요?

     

  • ?
    JKyle 2018.09.13 02:40
    네. 그 중 -rc-lookahead와 -aq-strength, -refs는 필요에 따라 조정해서 쓰십시오.
  • ?
    조토마테 2018.09.13 02:51
    감사합니다
  • ?
    JKyle 2020.01.04 05:22

    이 부분 역시 마찬가지로, 샤나인코더 5.0 이상 버전 사용자들은 -refs 옵션을 사용하지 말아주시기 바랍니다.

  • ?
    삽질쟁이 2020.01.29 19:50

    지금 이 세팅으로 사용중인데.. 워터마크도 같이 지울수 잇게 하실수 있을까요?
    -vf 어쩌고 저쩌고 하라는데 명령어를 어떻게 넣어야 하는지 몰라서요.

  • ?
    JKyle 2020.01.31 18:30

    https://shana.pe.kr/shanaencoder_tip/80977 ⇒ 이 게시글을 참고하십시오.

  • ?
    N0name 2020.02.21 21:19
    프리셋 사용중 질문드립니다... 특정 영상 인코딩시 용량이 2배가까이 뻥튀기 되는 경우가 있는데 해결책이 있을까요? (원본영상의 평균 비트레이트는 평균 10000, 일부분의 화면에서 1000비트레이트 아래로 유지, 설정은 5000비트레이트로 인코딩)
    추가로 NVENC모드에서는 퀄리티 모드를 사용할 수 없는건가요?
    감사합니다.
  • ?
    JKyle 2020.02.23 00:58

    매개변수 창(F8) 인코딩 설정 부분에서 다음 부분을 추가해 보시죠.

     -maxrate 5000k -bufsize 10000k

    (값은 적절히 변경)

    실제 이게 NVENC에서 얼마나 효과적일지는 해봐야 알 것 같습니다만.

     

    그리고 NVENC 퀄리티 모드에 관한 설명은 비디오 코덱과 기본 용어 (H.264, HEVC)의 CRF 설명 부분을 참고하십시오.

  • ?
    N0name 2020.02.23 18:31

    우선 답글 감사합니다.
    결과부터 말하면 1.5배 정도의 뻥튀기로 줄어들었지만 해결은 되지 않았네요.. 뻥튀기된 파일이 인터스텔라 파일이었는데 비슷하게 어두운 화면이 많은 파일들이 뻥튀기가 심하고 비트레이트를 비교해보면 어두운 장면에서 원본은 1000비트 언저리인 반면 인코딩한 파일은 전부 5000비트 언저리로 유지되는게 문제인듯 합니다.
    혹시 어두운 화면이 많은 경우 인코딩 옵션으로 쓸만한 옵션이 있는지요? 도움 감사드립니다!!

     

    추가/CPU하드웨어 인코딩으로는 정상적인 결과물(crf모드)이 나오네요. 원본과 비슷한 비트의 출렁임이 보입니다.

  • ?
    BLA1NE 2020.08.01 11:14
    우와. 감사합니다.
  • ?
    라이조 2020.08.07 14:30
    안녕하세요.JKyle 님 게시글을 잘 보았습니다.
    다름이 아니고 이제 영상편집.인코더에 입문하려고 합니다.
    현재 사용하는 컴퓨터를 업그레이드를 하려는데 이 정도의 사양으로 인코더를 할 수 있는지 궁금합니다.
    주요 메인부품으로
    인텔코어 i7
    메모리 ddr4 32기가
    그래픽 gtx1660 이정도면 괜찮을까요?
    주로 작업하는 영역은 90년대2000년대 오래된 뮤직비디오나.영상들을 보다 나은 화질로 올리고 싶습니다.
    1920x1080 FHD 정도 생각합니다. 빔프로젝트에 저당시 음악영상을 틀었을때 나쁘지 않은 화질정도 생각하는데
    가능 할까요?
  • ?
    deathlh 2023.12.14 13:57

    버전 6.0에 대한 사전 설정이 있습니까?


  1. 샤나인코더 기본 프리셋(v6.0 이후 버전)

  2. 레터박스 대신 흐린 원본 영상을 배경으로 까는 프리셋

  3. 영상에 텍스트 로고를 입히는 프리셋

  4. HEVC(x265) 2패스 인코딩 프리셋

  5. 인코딩된 파일의 PSNR, SSIM 값 계산을 위한 프리셋

  6. HEVC(x265) 디테일 개선을 위한 프리셋

  7. 오로지 확장자만 변경하기 위해서 만든 프리셋

  8. 부드러운 움직임의 60fps 인코딩 (minterpolate 필터를 이용)

  9. HEVC(NVENC)를 이용한 일반 HDR 동영상 인코딩

  10. HDR -> HDR(HDR10) 인코딩 (HEVC(x265), 1080p)

  11. HDR -> SDR 변환 (H264(x264), 1080p) ⇦ 사용하지 말 것

  12. HEVC(NVENC) 화질 향상 프리셋

  13. HEVC 영상의 코덱 ID만 hev1에서 hvc1으로 변경하는 프리셋

  14. VP9, Opus 코덱으로 인코딩하는 WebM 프리셋 (1080p, 720p, VOD 용)

  15. A slow but high quality and low size x264 setting

  16. 그랜져 IG 블루링크2.0 고화질용 8인치 네비

  17. 2160p to 1080p 변환 (수정)

  18. [수정 - 속도 개선판][느림주의!!]HEVC 고급설정 프리셋 - 블루레이 백업용

  19. H264 고급 설정 (백업용)

  20. TV시청용 초고속 자체자막 프리셋 // NVENC 지원 그래픽카드전용

  21. x265 고급설정 프리셋

Board Pagination Prev 1 2 3 Next
/ 3