{
  "recordedAt": "2026-10-08T03:50:50.825Z",
  "environment": {
    "ffmpeg": "ffmpeg version 8.1.2-full_build-www.gyan.dev Copyright (c) 2000-2026 the FFmpeg developers\r",
    "ffprobe": "ffprobe version 8.1.2-full_build-www.gyan.dev Copyright (c) 2007-2026 the FFmpeg developers\r",
    "node": "v24.18.0",
    "platform": "win32"
  },
  "reference": {
    "file": "reference.mkv",
    "synthetic": true,
    "width": 1280,
    "height": 720,
    "fps": 30,
    "seconds": 8,
    "frame": "frame-reference.png",
    "frameIndex": 120,
    "description": "FFmpeg testsrc2 with reproducible seeded noise; generated chart, not camera footage. 440 Hz synthetic tone encoded as AAC."
  },
  "variants": [
    {
      "file": "sample-500.mp4",
      "bytes": 668314,
      "seconds": 8,
      "videoKbps": 530.906,
      "audioKbps": 127.021,
      "width": 1280,
      "height": 720,
      "sha256": "c7252eb60a7cd09154ab2f37b24797c42328a95538082ac05da49f6d1b3ed42c",
      "targetKbps": 500,
      "ssim": 0.8853537874999997,
      "frame": "frame-500.png",
      "frameIndex": 120
    },
    {
      "file": "sample-1500.mp4",
      "bytes": 1630205,
      "seconds": 8,
      "videoKbps": 1492.797,
      "audioKbps": 127.021,
      "width": 1280,
      "height": 720,
      "sha256": "d99dcdd07aca753afe323ba506140c5e00177084afbe14e4d460aca858a2f290",
      "targetKbps": 1500,
      "ssim": 0.9117499916666666,
      "frame": "frame-1500.png",
      "frameIndex": 120
    },
    {
      "file": "sample-5000.mp4",
      "bytes": 5080185,
      "seconds": 8,
      "videoKbps": 4942.777,
      "audioKbps": 127.021,
      "width": 1280,
      "height": 720,
      "sha256": "cca55bccc24c3666390472779edfc62ed078d6a8e69e0910abf790e7f3f4e57f",
      "targetKbps": 5000,
      "ssim": 0.9179693958333328,
      "frame": "frame-5000.png",
      "frameIndex": 120
    }
  ],
  "budgetCase": {
    "file": "budget-8mb.mp4",
    "bytes": 7714367,
    "seconds": 60,
    "videoKbps": 891.612,
    "audioKbps": 128.175,
    "width": 1280,
    "height": 720,
    "sha256": "4131cd06918bb23a889019a922aea9c09d927c7b632f43a3f1816be5e87be56c",
    "targetBytes": 8000000,
    "targetVideoKbps": 880
  },
  "commands": [
    {
      "program": "ffmpeg",
      "args": [
        "-version"
      ]
    },
    {
      "program": "ffprobe",
      "args": [
        "-version"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-f",
        "lavfi",
        "-i",
        "testsrc2=size=1280x720:rate=30:duration=8",
        "-vf",
        "noise=alls=8:allf=t+u:all_seed=42",
        "-an",
        "-c:v",
        "ffv1",
        "-level",
        "3",
        "-threads",
        "2",
        "reference.mkv"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-i",
        "reference.mkv",
        "-f",
        "lavfi",
        "-i",
        "sine=frequency=440:sample_rate=48000:duration=8",
        "-t",
        "8",
        "-map",
        "0:v:0",
        "-map",
        "1:a:0",
        "-c:v",
        "libx264",
        "-preset",
        "medium",
        "-pix_fmt",
        "yuv420p",
        "-b:v",
        "500k",
        "-maxrate",
        "1000k",
        "-bufsize",
        "1000k",
        "-g",
        "60",
        "-threads",
        "2",
        "-c:a",
        "aac",
        "-b:a",
        "128k",
        "-movflags",
        "+faststart",
        "sample-500.mp4"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-i",
        "sample-500.mp4",
        "-vf",
        "select=eq(n\\,120)",
        "-frames:v",
        "1",
        "-update",
        "1",
        "frame-500.png"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-i",
        "sample-500.mp4",
        "-i",
        "reference.mkv",
        "-lavfi",
        "[0:v]settb=AVTB,setpts=N/(30*TB)[encoded];[1:v]settb=AVTB,setpts=N/(30*TB)[source];[encoded][source]ssim=stats_file=ssim-500.log",
        "-frames:v",
        "240",
        "-fps_mode",
        "passthrough",
        "-an",
        "-f",
        "null",
        "-"
      ]
    },
    {
      "program": "ffprobe",
      "args": [
        "-v",
        "error",
        "-show_format",
        "-show_streams",
        "-of",
        "json",
        "sample-500.mp4"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-i",
        "reference.mkv",
        "-f",
        "lavfi",
        "-i",
        "sine=frequency=440:sample_rate=48000:duration=8",
        "-t",
        "8",
        "-map",
        "0:v:0",
        "-map",
        "1:a:0",
        "-c:v",
        "libx264",
        "-preset",
        "medium",
        "-pix_fmt",
        "yuv420p",
        "-b:v",
        "1500k",
        "-maxrate",
        "3000k",
        "-bufsize",
        "3000k",
        "-g",
        "60",
        "-threads",
        "2",
        "-c:a",
        "aac",
        "-b:a",
        "128k",
        "-movflags",
        "+faststart",
        "sample-1500.mp4"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-i",
        "sample-1500.mp4",
        "-vf",
        "select=eq(n\\,120)",
        "-frames:v",
        "1",
        "-update",
        "1",
        "frame-1500.png"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-i",
        "sample-1500.mp4",
        "-i",
        "reference.mkv",
        "-lavfi",
        "[0:v]settb=AVTB,setpts=N/(30*TB)[encoded];[1:v]settb=AVTB,setpts=N/(30*TB)[source];[encoded][source]ssim=stats_file=ssim-1500.log",
        "-frames:v",
        "240",
        "-fps_mode",
        "passthrough",
        "-an",
        "-f",
        "null",
        "-"
      ]
    },
    {
      "program": "ffprobe",
      "args": [
        "-v",
        "error",
        "-show_format",
        "-show_streams",
        "-of",
        "json",
        "sample-1500.mp4"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-i",
        "reference.mkv",
        "-f",
        "lavfi",
        "-i",
        "sine=frequency=440:sample_rate=48000:duration=8",
        "-t",
        "8",
        "-map",
        "0:v:0",
        "-map",
        "1:a:0",
        "-c:v",
        "libx264",
        "-preset",
        "medium",
        "-pix_fmt",
        "yuv420p",
        "-b:v",
        "5000k",
        "-maxrate",
        "10000k",
        "-bufsize",
        "10000k",
        "-g",
        "60",
        "-threads",
        "2",
        "-c:a",
        "aac",
        "-b:a",
        "128k",
        "-movflags",
        "+faststart",
        "sample-5000.mp4"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-i",
        "sample-5000.mp4",
        "-vf",
        "select=eq(n\\,120)",
        "-frames:v",
        "1",
        "-update",
        "1",
        "frame-5000.png"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-i",
        "sample-5000.mp4",
        "-i",
        "reference.mkv",
        "-lavfi",
        "[0:v]settb=AVTB,setpts=N/(30*TB)[encoded];[1:v]settb=AVTB,setpts=N/(30*TB)[source];[encoded][source]ssim=stats_file=ssim-5000.log",
        "-frames:v",
        "240",
        "-fps_mode",
        "passthrough",
        "-an",
        "-f",
        "null",
        "-"
      ]
    },
    {
      "program": "ffprobe",
      "args": [
        "-v",
        "error",
        "-show_format",
        "-show_streams",
        "-of",
        "json",
        "sample-5000.mp4"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-i",
        "reference.mkv",
        "-vf",
        "select=eq(n\\,120)",
        "-frames:v",
        "1",
        "-update",
        "1",
        "frame-reference.png"
      ]
    },
    {
      "program": "ffmpeg",
      "args": [
        "-hide_banner",
        "-loglevel",
        "info",
        "-y",
        "-threads",
        "2",
        "-filter_threads",
        "1",
        "-stream_loop",
        "-1",
        "-i",
        "reference.mkv",
        "-f",
        "lavfi",
        "-i",
        "sine=frequency=440:sample_rate=48000:duration=60",
        "-t",
        "60",
        "-map",
        "0:v:0",
        "-map",
        "1:a:0",
        "-c:v",
        "libx264",
        "-preset",
        "medium",
        "-pix_fmt",
        "yuv420p",
        "-b:v",
        "880k",
        "-maxrate",
        "880k",
        "-bufsize",
        "1760k",
        "-g",
        "60",
        "-threads",
        "2",
        "-c:a",
        "aac",
        "-b:a",
        "128k",
        "-movflags",
        "+faststart",
        "budget-8mb.mp4"
      ]
    },
    {
      "program": "ffprobe",
      "args": [
        "-v",
        "error",
        "-show_format",
        "-show_streams",
        "-of",
        "json",
        "budget-8mb.mp4"
      ]
    }
  ]
}
