{
  "project_id": "03072026-001-Han-Tin",
  "step": 18,
  "status": "needs_review",
  "inputs": {
    "intro_video_path": "/data/video-pipeline/Youtube-Video-Maker/Project/03072026-001-Han-Tin/output/intro/intro.mp4",
    "main_video_path": "/data/video-pipeline/Youtube-Video-Maker/Project/03072026-001-Han-Tin/output/main_story.mp4",
    "main_qa_report_path": "/data/video-pipeline/Youtube-Video-Maker/Project/03072026-001-Han-Tin/output/main_story_qa_report.json",
    "outro_video_path": "/data/video-pipeline/Youtube-Video-Maker/data/outtro/outtro1_1080p.mp4",
    "bgm_audio_path": "/data/video-pipeline/Youtube-Video-Maker/data/music/the_mountain-history-archive-145197/the_mountain-history-archive-145197.mp3",
    "thumbnail_16x9_path": "/data/video-pipeline/Youtube-Video-Maker/Project/03072026-001-Han-Tin/output/thumbnails/thumb_16x9_final.png",
    "thumbnail_9x16_path": "/data/video-pipeline/Youtube-Video-Maker/Project/03072026-001-Han-Tin/output/thumbnails/thumb_9x16_final.png"
  },
  "output_video_path": "/data/video-pipeline/Youtube-Video-Maker/Project/03072026-001-Han-Tin/output/final/final_video.mp4",
  "probe_path": "/data/video-pipeline/Youtube-Video-Maker/Project/03072026-001-Han-Tin/output/final/final_video_probe.json",
  "blackdetect_path": "/data/video-pipeline/Youtube-Video-Maker/Project/03072026-001-Han-Tin/output/final/final_blackdetect.json",
  "package_response": {
    "status": "ok",
    "output_video_path": "/data/video-pipeline/Youtube-Video-Maker/Project/03072026-001-Han-Tin/output/final/final_video.mp4",
    "probe": {
      "programs": [],
      "streams": [
        {
          "index": 0,
          "codec_name": "h264",
          "codec_type": "video",
          "duration": "1961.666667"
        },
        {
          "index": 1,
          "codec_name": "aac",
          "codec_type": "audio",
          "sample_rate": "24000",
          "channels": 1,
          "duration": "1961.176000"
        }
      ],
      "format": {
        "duration": "1961.667000"
      }
    },
    "ffmpeg_tail": "152 q=16.0 size= 2047744kB time=00:32:09.00 bitrate=8696.3kbits/s dup=1 drop=0 speed=5.06x    \nframe=57878 fps=151 q=14.0 size= 2048000kB time=00:32:09.17 bitrate=8696.6kbits/s dup=1 drop=0 speed=5.05x    \nframe=57887 fps=151 q=16.0 size= 2048256kB time=00:32:09.51 bitrate=8696.1kbits/s dup=1 drop=0 speed=5.04x    \nframe=57896 fps=151 q=16.0 size= 2048512kB time=00:32:09.77 bitrate=8696.1kbits/s dup=1 drop=0 speed=5.04x    \nframe=57905 fps=151 q=16.0 size= 2049024kB time=00:32:10.06 bitrate=8696.9kbits/s dup=1 drop=0 speed=5.03x    \nframe=57914 fps=151 q=14.0 size= 2049280kB time=00:32:10.36 bitrate=8696.6kbits/s dup=1 drop=0 speed=5.02x    \nframe=57925 fps=151 q=16.0 size= 2049792kB time=00:32:10.75 bitrate=8697.1kbits/s dup=1 drop=0 speed=5.02x    \nframe=57935 fps=150 q=15.0 size= 2049792kB time=00:32:11.09 bitrate=8695.5kbits/s dup=1 drop=0 speed=5.01x    \nframe=57946 fps=150 q=14.0 size= 2049792kB time=00:32:11.43 bitrate=8694.0kbits/s dup=1 drop=0 speed=5.01x    \nframe=57956 fps=150 q=15.0 size= 2049792kB time=00:32:11.77 bitrate=8692.5kbits/s dup=1 drop=0 speed=   5x    \nframe=57966 fps=150 q=14.0 size= 2049792kB time=00:32:12.11 bitrate=8690.9kbits/s dup=1 drop=0 speed=   5x    \nframe=58003 fps=150 q=15.0 size= 2050048kB time=00:32:13.39 bitrate=8686.3kbits/s dup=1 drop=0 speed=4.99x    \nframe=58070 fps=150 q=15.0 size= 2050560kB time=00:32:15.44 bitrate=8679.2kbits/s dup=1 drop=0 speed=4.99x    \nframe=58130 fps=150 q=15.0 size= 2050816kB time=00:32:17.45 bitrate=8671.3kbits/s dup=1 drop=0 speed=4.99x    \nframe=58192 fps=150 q=13.0 size= 2050816kB time=00:32:19.54 bitrate=8662.0kbits/s dup=1 drop=0 speed=4.99x    \nframe=58254 fps=150 q=15.0 size= 2050816kB time=00:32:21.58 bitrate=8652.9kbits/s dup=1 drop=0 speed=4.99x    \nframe=58317 fps=150 q=15.0 size= 2051072kB time=00:32:23.68 bitrate=8644.6kbits/s dup=1 drop=0 speed=4.99x    \nframe=58378 fps=150 q=13.0 size= 2051072kB time=00:32:25.72 bitrate=8635.5kbits/s dup=1 drop=0 speed=4.98x    \nframe=58441 fps=150 q=15.0 size= 2051072kB time=00:32:27.81 bitrate=8626.3kbits/s dup=1 drop=0 speed=4.98x    \nframe=58502 fps=149 q=13.0 size= 2051072kB time=00:32:29.86 bitrate=8617.2kbits/s dup=1 drop=0 speed=4.98x    \nframe=58564 fps=149 q=13.0 size= 2051328kB time=00:32:31.91 bitrate=8609.2kbits/s dup=1 drop=0 speed=4.98x    \nframe=58626 fps=149 q=15.0 size= 2051328kB time=00:32:34.00 bitrate=8600.0kbits/s dup=1 drop=0 speed=4.98x    \nframe=58688 fps=149 q=13.0 size= 2051584kB time=00:32:36.05 bitrate=8592.1kbits/s dup=1 drop=0 speed=4.98x    \nframe=58740 fps=149 q=13.0 size= 2051584kB time=00:32:37.80 bitrate=8584.4kbits/s dup=1 drop=0 speed=4.98x    \nframe=58751 fps=149 q=15.0 size= 2051584kB time=00:32:38.18 bitrate=8582.7kbits/s dup=1 drop=0 speed=4.97x    \nframe=58761 fps=149 q=15.0 size= 2051584kB time=00:32:38.48 bitrate=8581.4kbits/s dup=1 drop=0 speed=4.97x    \nframe=58771 fps=149 q=15.0 size= 2051584kB time=00:32:38.82 bitrate=8579.9kbits/s dup=1 drop=0 speed=4.96x    \nframe=58781 fps=149 q=15.0 size= 2051584kB time=00:32:39.16 bitrate=8578.4kbits/s dup=1 drop=0 speed=4.95x    \nframe=58792 fps=148 q=15.0 size= 2051584kB time=00:32:39.55 bitrate=8576.7kbits/s dup=1 drop=0 speed=4.95x    \nframe=58803 fps=148 q=15.0 size= 2051584kB time=00:32:39.89 bitrate=8575.3kbits/s dup=1 drop=0 speed=4.94x    \nframe=58816 fps=148 q=15.0 size= 2051584kB time=00:32:40.32 bitrate=8573.4kbits/s dup=1 drop=0 speed=4.94x    \nframe=58826 fps=148 q=13.0 size= 2051840kB time=00:32:40.66 bitrate=8573.0kbits/s dup=1 drop=0 speed=4.93x    \nframe=58837 fps=148 q=15.0 size= 2051840kB time=00:32:41.04 bitrate=8571.3kbits/s dup=1 drop=0 speed=4.93x    \n[mp4 @ 0x5e568b705bc0] Starting second pass: moving the moov atom to the beginning of the file\nframe=58850 fps=136 q=15.0 Lsize= 2053162kB time=00:32:41.53 bitrate=8574.7kbits/s dup=1 drop=0 speed=4.55x    \nvideo:2027650kB audio:24210kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.063476%\n[aac @ 0x5e568b6e7640] Qavg: 65482.469\n",
    "method": "explicit_ffmpeg_audio_safe",
    "sample_rate": 24000,
    "channels": 1,
    "bgm_volume": 0.2,
    "outro_included": true,
    "width": 1920,
    "height": 1080
  },
  "input_probes": {
    "intro": {
      "programs": [],
      "streams": [
        {
          "index": 0,
          "codec_name": "h264",
          "codec_type": "video",
          "duration": "16.700000"
        },
        {
          "index": 1,
          "codec_name": "aac",
          "codec_type": "audio",
          "sample_rate": "22050",
          "channels": 1,
          "duration": "16.710023"
        }
      ],
      "format": {
        "duration": "16.711000"
      }
    },
    "main": {
      "programs": [],
      "streams": [
        {
          "index": 0,
          "codec_name": "h264",
          "codec_type": "video",
          "duration": "1918.172005"
        },
        {
          "index": 1,
          "codec_name": "aac",
          "codec_type": "audio",
          "sample_rate": "22050",
          "channels": 1,
          "duration": "1917.715465"
        }
      ],
      "format": {
        "duration": "1918.219000"
      }
    },
    "outro": {
      "programs": [],
      "streams": [
        {
          "index": 0,
          "codec_name": "h264",
          "codec_type": "video",
          "duration": "26.733333"
        },
        {
          "index": 1,
          "codec_name": "aac",
          "codec_type": "audio",
          "sample_rate": "24000",
          "channels": 1,
          "duration": "26.709000"
        }
      ],
      "format": {
        "duration": "26.734000"
      }
    }
  },
  "final_probe": {
    "programs": [],
    "streams": [
      {
        "index": 0,
        "codec_name": "h264",
        "codec_type": "video",
        "duration": "1961.666667"
      },
      {
        "index": 1,
        "codec_name": "aac",
        "codec_type": "audio",
        "sample_rate": "24000",
        "channels": 1,
        "duration": "1961.176000"
      }
    ],
    "format": {
      "duration": "1961.667000"
    }
  },
  "validation": {
    "final_exists": true,
    "has_audio": true,
    "has_video": true,
    "main_qa_passed": false,
    "order": [
      "intro",
      "main_story",
      "outro"
    ],
    "expected_duration_sec": 1961.664,
    "final_duration_sec": 1961.667,
    "duration_diff_sec": 0.0029999999999290594,
    "duration_within_tolerance": true,
    "bgm_volume": 0.2,
    "black_event_count": 0,
    "blackdetect_clear": true
  },
  "notes": [
    "Step 18 package is not final approval; run Step 19 final QA before output/info.json approval."
  ]
}