slhck/ffmpeg-quality-metrics

Calculate quality metrics with FFmpeg (SSIM, PSNR, VMAF, VIF)

해결하는 문제

비디오를 압축하거나 트랜스코딩할 때 원본과 비교하여 얼마나 품질이 손실되었는지 알아야 하는 경우가 많습니다. 이 도구는 왜곡된(인코딩된) 비디오를 참조(원본) 비디오와 비교하여 PSNR, SSIM, VIF, MSAD, VMAF와 같은 표준 비디오 품질 메트릭을 계산합니다. FFmpeg 명령을 수동으로 구성하고 원시 출력을 파싱하는 수고를 덜어주며, 프레임별 수치, 전체 통계(최소/최대/평균/표준 편차), 그리고 선택적 대화형 브라우저 대시보드를 제공합니다.

작동 방식

두 개의 비디오 파일을 제공합니다: 왜곡된 버전과 참조 버전(예: ffmpeg-quality-metrics distorted.mp4 reference.y4m). 도구는 내부적으로 FFmpeg를 사용하여 두 스트림을 디코딩하고, 왜곡된 비디오를 참조의 해상도로 자동 조정하며, 요청된 메트릭 필터를 적용합니다. 먼저 ffprobe로 두 입력을 프로브하여 해상도, 프레임 속도 또는 지속 시간의 차이에 대해 경고합니다. 그런 다음 FFmpeg를 실행하고 프레임별 메트릭 값을 수집합니다. 기본적으로 PSNR과 SSIM을 계산합니다. --metrics 옵션으로 다른 메트릭을 활성화할 수 있습니다. 출력은 JSON 또는 CSV이며, 결과를 시각적으로 탐색하기 위해 웹 기반 GUI를 시작할 수도 있습니다.

VMAF의 경우, 다른 모델 파일(최신 v1 모델 포함)을 선택하고 기능 플래그나 10비트 변환과 같은 추가 매개변수를 전달할 수 있습니다. 또한 분석을 특정 프레임 수로 제한하거나 특정 타임스탬프 또는 프레임 번호에서 시작할 수 있습니다. 도구는 정렬 불일치를 처리합니다: --dist-delay를 사용하여 일치하지 않는 선행 프레임을 잘라내어 비교 전에 두 비디오를 시간 동기화합니다.

대상 사용자

비디오 엔지니어, 품질 보증 팀, 연구자, 또는 비디오를 인코딩하고 객관적인 품질 점수가 필요한 모든 사람. 이 도구는 Python 3.10+ 및 FFmpeg 7.1+(VMAF를 원하면 libvmaf 포함)가 필요한 명령줄 도구입니다. Linux, macOS, Windows에서 작동하며 pip, pipx, uvx로 설치하거나 Docker로 실행할 수 있습니다.

주요 기능

  • 5가지 메트릭 지원: PSNR, SSIM, VIF, MSAD, VMAF.
  • 프레임별 메트릭 및 전체 통계(최소/최대/평균/표준 편차) 출력.
  • 선택적 브라우저 기반 대화형 대시보드로 시각적 분석.
  • 입력 자동 조정 및 정렬, 불일치에 대한 상세 경고 제공.
  • 유연한 제어: 메트릭, 모델 파일, 프레임 범위, 시작 오프셋 선택.
  • JSON 또는 CSV 출력, 표준 출력 또는 파일에 쓰기.
  • CLI 또는 Python 라이브러리(API)로 작동.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트