ffmpeg의 nvenc 품질설정 방법 ffmpeg

1. 우선 널리 사용되는 x264 인코더의 세가지 방법을 보면 아래와 같다.

  -b:V    Set bitrate (kbit/s)
  -qp     Force constant QP (0-69, 0=lossless)
  -crf    Quality-based VBR (0-51) [23.0]

셋중에서 가장 편한 다음의 형태로 많이 사용한다.

  ffmpeg -i input.mp4 -c:V libx264 -crf 23 output.mp4


2. ffmpeg의 nvenc(nvidia) 를 사용할 때 품질을 설정하는 방법은 세가지가 있다.

  -b:V   Set bitrate
  -qp    Constant quantization parameter rate control method (from -1 to 51) (default -1)
  -cq    Set target quality level (0 to 51, 0 means automatic)
         for constant quality mode in VBR rate control (from 0 to 51) (default 0)

x264의 -crf 처럼 동작하는게 -cq 옵션이다.
다만 "x264 crf 23" 의 결과물과 "nvenc -cq 23" 의 결과물은 다르며(다른 품질, 용량) 다음처럼 사용한다.

  ffmpeg -i input.mp4 -c:V h264_nvenc -cq 26 -b:V 0 output.mp4

사용시 반드시 -b:V 0(zero) 옵션과 같이 사용해서 비트레이트 기준 인코딩을 꺼야한다.
나는 이걸 몰라서 몇년간 -cq 를 못 쓰고 -qp 만 써왔는데 매뉴얼에도 설명이 없었기 때문이다...


ffmpeg이 위치한 폴더의 cmd 명령창에서 아래의 명령을 실행하면 txt 파일로 자세한 사용법이 저장된다.
  ffmpeg.exe -h encoder=h264_nvenc > h264_nvenc.txt
  ffmpeg.exe -h encoder=hevc_nvenc > hevc_nvenc.txt

덧글

댓글 입력 영역