메뉴 건너뛰기

본문시작

방문자

전체 : 27,638,770
오늘 : 20,160
어제 : 39,629
조회 수 1291 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

웬 뚱딴지 같은 제목이냐 하실 분들도 계시겠지만, 일반적인 상황이 아니라 엔비디아 그래픽 카드가 따로 있는 상황에서 CPU 내장 GPU가 하드웨어 가속 디코딩에 관여하지 못하고, CPU 자체 성능이 괜찮은 경우에 한해서 드리는 말씀입니다.

 

 

우선 좀 원론적인 얘기를 드리자면, 샤나에서 하드웨어 가속을 선택해서 얼마나 속도와 화질 향상을 얻을 수 있느냐를 나름 고찰해 보았습니다.

 

엔비디아 측에서는 하드웨어(GPU) 인코딩 시 해상도 변경(scaling)을 GPU 단계에서 할 수 있도록 NPP 필터 라이브러리를 제공하는데 이걸 FFmpeg에 포함시키기 위해서는 FFmpeg 바이너리를 컴파일하는 단계에서 해야 합니다. (--enable-libnpp) 샤나인코더는 이 기능을 제외했기 때문에 해상도 변경에 소프트웨어 필터를 사용해 CPU가 이 역할을 담당합니다.

 

따라서 샤나에서 NVENC를 이용해 재인코딩(transcoding)하는 과정은 개념적으로 간략하게 다음과 같습니다.

 


 

디코딩: 선택에 따라 소프트웨어 디코딩(CPU) vs 하드웨어 디코딩(GPU. 엔비디아는 CUVID 계열 디코더를 제공하고 있지만 샤나에서는 DXVA2를 통해서만 가능.)

 

---> 해상도 변경: 리사이징 필터에 따라 CPU 또는 GPU가 담당하지만 샤나는 소프트웨어 scaling(CPU)만 가능

&& 인코딩: 소프트웨어 인코딩(예를 들면 HEVC이나 H264)은 CPU가, 하드웨어 인코딩(NVENC 계열)은 GPU가 담당

 


 

따라서 하드웨어 가속 관련 선택 사항은 샤나에서는 두 가지밖에 없습니다.

 

  1. [환경설정]에서 '하드웨어 가속 디코딩(DXVA2)'을 선택
  2. NVENC 계열 코덱을 선택

 

엔비디아 그래픽 카드(NVENC가 가능한)가 따로 있다면 2번은 당연히 선택해야겠지요.

 

 

문제는 1번입니다.

 

요즘 나오는 CPU는 GPU를 내장하는 경우가 대부분이기 때문에 엔비디아 그래픽 카드가 따로 있다면 GPU가 두 개가 됩니다. CPU 내장 GPU를 GPU0, 그래픽 카드의 GPU를 GPU1이라고 한다면 가장 이상적인 상황은 1번을 선택할 때 GPU0이 디코딩을 담당해 GPU 간의 밸런스를 맞추는 것입니다. 그러나 문제는 샤나 내에서는 DXVA2 옵션을 켜면 그걸 GPU1이 담당하게 된다는 겁니다. 그래서 GPU1은 디코딩과 인코딩을 동시에 담당하며 어떤 경우엔 throttling이 생겨 인코딩 성능이 저하됩니다. GPU1의 인코딩 효율이 저하되어 속도 역시 떨어지구요.

 

(이 현상은 CUVID를 통해 GPU1이 하드웨어 가속 디코딩을 하게 해도 마찬가지로 발생합니다. FFmpeg CLI와 XMeida Recode를 통해서 확인했습니다.)

 

이때 CPU 점유율은 상당히 낮아집니다. 디코딩과 인코딩을 모두 GPU1이 담당하기 때문에 당연한 현상이겠지요.

 

결론적으로 말하자면, DXVA2를 켜면 GPU1은 효율도 떨어지고 죽어나는데 CPU는 탱자탱자 놀게 됩니다. GPU0은 아예 모른 척하고요.

 

 

이 경우 DXVA2를 끄면 오히려 CPU가 디코딩을 담당하면서 CPU 점유율도 충분히 높아지고 더불어 GPU1의 인코딩 효율도 향상되어 속도가 올라가더군요. 물론 CPU의 성능이 충분히 괜찮고 이를 최대한 활용할 수 있어야 한다는 전제가 있긴 합니다.

 

 

----------------------------------------

 

 

속도 향상은 이렇게 해결하게 됐지만 의문은 남습니다.

 

"하드웨어 가속 디코딩(DXVA2)을 GPU0이 담당하도록 할 수 없을까?"

 

이게 원래 불가능한 건지, 샤나 자체의 문제인지 제가 세팅을 못하는 건지 모르겠습니다. 저로서는 아무리 용을 써도 불가능하더군요.

 

혹시 이 문제에 대한 답을 알고 계시다면 댓글로 알려 주시면 감사하겠습니다. 그리고 그게 가능할 경우 속도 향상 효과가 있는지도 궁금하군요.

  • ?
    핥아버지 2018.06.20 10:25
    많이 배워갑니다 인코딩옵션 많이 아시네요

    그런데 님이 주신 webm 프리셋을 사용해봤는데요

    hevc로 인코딩한거에 비해 깍두기 현상이 많이 생기던데

    님이 인코딩한 영상은 또 괜찮고.. 프리셋 그대로 사용한건데 말이에요

    그리고 비트레이트를 더 높일수 없나요? 4000이상
  • ?
    sSTSs 2018.06.20 14:43
    프리셋은 가이드라인으로만 생각하시면 됩니다. 원본의 화질과 원하는 목표 결과물의 해상도, 화질 등에 따라 당연히 옵션을 조정해서 써야 합니다.

    당연히 비트레이트도 높여서 시도해 볼 수 있죠. 단, 높아진 비트레이트에 맞춰 다른 옵션들도 조정하시는 게 좋습니다.

    예를 들어 비트레이트를 4000으로 주고 싶으시면,

    -crf 26 -b:v 4000k -minrate 2000k -maxrate 5600k

    와 같은 식으로 높아진 비트레이트에 맞춰 crf 값을 낮추고(낮출수록 고화질) minrate를 절반 정도, maxrate을 1.45배 정도 맞춰서 설정합니다.

    그리고 추가적으로 quality를 best로 하거나 speed를 4보다 낮은 정수값 (0~3)을 줘서 속도는 느린 대신 화질을 올릴 수도 있습니다. 예를 들어,

    -quality best -speed 4

    다른 옵션들은 굳이 수정할 필요가 없어 보입니다.

    옵션들의 의미와 설정값들을 알아 보시려면 Google의 권고안 문서를 참고하세요.

    https://developers.google.com/media/vp9/the-basics/

    한 가지 팁을 드리자면, 설정하신 값들이 제대로 작동하는지 미리 알아보시려면 좁은 구간(이전 인코딩에서 만족스럽지 못했던 부분)을 설정해서 테스트해 보시고 설정값을 계속 변경하면서 조정하시면 됩니다.
  • ?
    동물들의수다 2018.06.30 14:57
    NVENC 이용해 인코딩 하는데 사나인코딩이 gpu 점유율이 낮아서 속도가 생각보다 안나오더라구요 이번에 4.9버젼으로 업데이트 하고 그래픽드라이버도 업데이트 해서 좀 달라졌을려나했더니 점유율은 역시 비슷하더군요 10프로에서 30프로 왔다갔다 합니다. 요새 풀hd 고화질 고용량이 믾이 나와 기본 hd사이즈로 인코딩해서 폰에 넣어 보는데 그냥 시피유로만 인코딩하면 답이 안나오더라구요 gpu 점유율이 낮아도 확실히 그래픽카드 써서 인코딩 하는게 배 이상 빠릅니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수 추천 수
공지 샤나인코더 4.9 버전부터 추가된 편의기능 >>프리셋 메뉴 및 설정 메뉴를 빠르게 열기<< file 샤나 2018.06.28 1138 0
공지 AMD 플루이드모션 60프레임 인코딩 (real 프레임레이트) 설정방법 (ffmpeg 프레임 보간기법) 17 file 능소화 2017.06.06 7900 0
공지 태-영화체(유료폰트) 와 비슷한 a시네마 무료 폰트 올려드립니다. [링크참조] 2 file 능소화 2017.04.02 8032 0
공지 [TIP] 기존의 '귀여운 소녀' 아이콘으로 돌아가기 1 file 유밍 2017.03.30 3320 0
공지 ※ 설정방법 / 프리셋파일포함 ※ 샤나인코더외부 자막 Mux 기능 추가 [v 4.5.1] 9 file 능소화 2017.03.30 6199 1
35 Using hevc (NVENC) acceleration, how to achieve 10bit? 1 update av1 2018.07.15 22 0
34 tonemap, zscale 필터를 이용한 HDR->SDR 변환 (FFmpeg CLI) 3 file sSTSs 2018.06.26 236 0
» 하드웨어 가속 디코딩(DXVA2)을 꺼서 인코딩 속도를 높이기 3 sSTSs 2018.06.19 1291 0
32 소장용 고화질 1080p 영상 인코딩 팁 퍼플군단 2018.06.12 1723 0
31 샤나인코더와 자막, Q&A 1 sSTSs 2018.05.31 545 0
30 QuickTime/Apple TV에서 재생이 안 되는 HEVC 동영상 문제 해결 file sSTSs 2018.05.21 441 0
29 HD(720p) 이상 고해상도 동영상을 HD의 WebM(VP9, Opus 코덱)으로 인코딩하기 file sSTSs 2018.05.20 722 0
28 wINDOWS10 멀티 데스크톱 정군 2018.05.07 482 0
27 HDR 영상 인코딩하기! 7 황금별똥 2018.01.23 2836 0
26 ASS 자막 파일을 aegisub으로 작업 시 libass를 사용하세요. file 샤나 2018.01.20 1027 1
25 블루레이 (Blu-ray) 폰트 모음 트루폰트로 올립니다. (용량관계로 댓글 부분확인) 3회 연속 업로드함. 2 file 능소화 2017.10.28 3449 0
24 MP3 파일 비트레이트 320 이상 설정방법 / 자막크기 및 자막 위치 설정 방법 1 file 능소화 2017.10.28 2514 0
23 막강한 ★샤나인코더★ 기능 제대로 사용하기 [영상-음성 분리하기 및 외부 음성파일 넣기] 23 file 능소화 2017.04.15 10863 3
22 [펌] 영화 용어 화질 코덱 해상도 릴그룹 총 정리 5 file 능소화 2017.04.13 9369 1
21 윈도우 / MS AMD 라이젠 프로세서 전용 '윈도우10 전원 관리 옵션' 배포 2 file 능소화 2017.04.12 3603 0
20 2Audio 내장 플레이어로 재생시 기본재생 음성 지정하기 file 능소화 2017.04.09 1863 0
19 메타데이터, 챕터정보 삽입하기 file 샤나 2017.04.02 1431 1
Board Pagination Prev 1 2 Next
/ 2