{
  "project_id": "26052026-001-Ngo-Quyen",
  "step": 16,
  "status": "passed",
  "passed": true,
  "input_video": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/main_story.mp4",
  "duration_sec": 697.682,
  "target_total_duration_sec": 697.52,
  "duration_diff_sec": 0.162,
  "probe": {
    "path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/main_story.mp4",
    "duration_sec": 697.682,
    "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
    "size": 318801361,
    "has_video": true,
    "has_audio": true,
    "video_streams": [
      {
        "index": 0,
        "codec_name": "h264",
        "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
        "profile": "High",
        "codec_type": "video",
        "codec_tag_string": "avc1",
        "codec_tag": "0x31637661",
        "width": 1920,
        "height": 1080,
        "coded_width": 1920,
        "coded_height": 1080,
        "closed_captions": 0,
        "film_grain": 0,
        "has_b_frames": 2,
        "sample_aspect_ratio": "1:1",
        "display_aspect_ratio": "16:9",
        "pix_fmt": "yuv420p",
        "level": 40,
        "chroma_location": "left",
        "field_order": "progressive",
        "refs": 1,
        "is_avc": "true",
        "nal_length_size": "4",
        "id": "0x1",
        "r_frame_rate": "30/1",
        "avg_frame_rate": "80367360/2678917",
        "time_base": "1/15360",
        "start_pts": 707,
        "start_time": "0.046029",
        "duration_ts": 10715668,
        "duration": "697.634635",
        "bit_rate": "3576065",
        "bits_per_raw_sample": "8",
        "nb_frames": "20929",
        "extradata_size": 47,
        "disposition": {
          "default": 1,
          "dub": 0,
          "original": 0,
          "comment": 0,
          "lyrics": 0,
          "karaoke": 0,
          "forced": 0,
          "hearing_impaired": 0,
          "visual_impaired": 0,
          "clean_effects": 0,
          "attached_pic": 0,
          "timed_thumbnails": 0,
          "captions": 0,
          "descriptions": 0,
          "metadata": 0,
          "dependent": 0,
          "still_image": 0
        },
        "tags": {
          "language": "und",
          "handler_name": "VideoHandler",
          "vendor_id": "[0][0][0][0]",
          "encoder": "Lavc59.37.100 libx264"
        }
      }
    ],
    "audio_streams": [
      {
        "index": 1,
        "codec_name": "aac",
        "codec_long_name": "AAC (Advanced Audio Coding)",
        "profile": "LC",
        "codec_type": "audio",
        "codec_tag_string": "mp4a",
        "codec_tag": "0x6134706d",
        "sample_fmt": "fltp",
        "sample_rate": "22050",
        "channels": 1,
        "channel_layout": "mono",
        "bits_per_sample": 0,
        "id": "0x2",
        "r_frame_rate": "0/0",
        "avg_frame_rate": "0/0",
        "time_base": "1/22050",
        "start_pts": 0,
        "start_time": "0.000000",
        "duration_ts": 15383280,
        "duration": "697.654422",
        "bit_rate": "73216",
        "nb_frames": "15028",
        "extradata_size": 5,
        "disposition": {
          "default": 1,
          "dub": 0,
          "original": 0,
          "comment": 0,
          "lyrics": 0,
          "karaoke": 0,
          "forced": 0,
          "hearing_impaired": 0,
          "visual_impaired": 0,
          "clean_effects": 0,
          "attached_pic": 0,
          "timed_thumbnails": 0,
          "captions": 0,
          "descriptions": 0,
          "metadata": 0,
          "dependent": 0,
          "still_image": 0
        },
        "tags": {
          "language": "und",
          "handler_name": "SoundHandler",
          "vendor_id": "[0][0][0][0]"
        }
      }
    ],
    "raw": {
      "streams": [
        {
          "index": 0,
          "codec_name": "h264",
          "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
          "profile": "High",
          "codec_type": "video",
          "codec_tag_string": "avc1",
          "codec_tag": "0x31637661",
          "width": 1920,
          "height": 1080,
          "coded_width": 1920,
          "coded_height": 1080,
          "closed_captions": 0,
          "film_grain": 0,
          "has_b_frames": 2,
          "sample_aspect_ratio": "1:1",
          "display_aspect_ratio": "16:9",
          "pix_fmt": "yuv420p",
          "level": 40,
          "chroma_location": "left",
          "field_order": "progressive",
          "refs": 1,
          "is_avc": "true",
          "nal_length_size": "4",
          "id": "0x1",
          "r_frame_rate": "30/1",
          "avg_frame_rate": "80367360/2678917",
          "time_base": "1/15360",
          "start_pts": 707,
          "start_time": "0.046029",
          "duration_ts": 10715668,
          "duration": "697.634635",
          "bit_rate": "3576065",
          "bits_per_raw_sample": "8",
          "nb_frames": "20929",
          "extradata_size": 47,
          "disposition": {
            "default": 1,
            "dub": 0,
            "original": 0,
            "comment": 0,
            "lyrics": 0,
            "karaoke": 0,
            "forced": 0,
            "hearing_impaired": 0,
            "visual_impaired": 0,
            "clean_effects": 0,
            "attached_pic": 0,
            "timed_thumbnails": 0,
            "captions": 0,
            "descriptions": 0,
            "metadata": 0,
            "dependent": 0,
            "still_image": 0
          },
          "tags": {
            "language": "und",
            "handler_name": "VideoHandler",
            "vendor_id": "[0][0][0][0]",
            "encoder": "Lavc59.37.100 libx264"
          }
        },
        {
          "index": 1,
          "codec_name": "aac",
          "codec_long_name": "AAC (Advanced Audio Coding)",
          "profile": "LC",
          "codec_type": "audio",
          "codec_tag_string": "mp4a",
          "codec_tag": "0x6134706d",
          "sample_fmt": "fltp",
          "sample_rate": "22050",
          "channels": 1,
          "channel_layout": "mono",
          "bits_per_sample": 0,
          "id": "0x2",
          "r_frame_rate": "0/0",
          "avg_frame_rate": "0/0",
          "time_base": "1/22050",
          "start_pts": 0,
          "start_time": "0.000000",
          "duration_ts": 15383280,
          "duration": "697.654422",
          "bit_rate": "73216",
          "nb_frames": "15028",
          "extradata_size": 5,
          "disposition": {
            "default": 1,
            "dub": 0,
            "original": 0,
            "comment": 0,
            "lyrics": 0,
            "karaoke": 0,
            "forced": 0,
            "hearing_impaired": 0,
            "visual_impaired": 0,
            "clean_effects": 0,
            "attached_pic": 0,
            "timed_thumbnails": 0,
            "captions": 0,
            "descriptions": 0,
            "metadata": 0,
            "dependent": 0,
            "still_image": 0
          },
          "tags": {
            "language": "und",
            "handler_name": "SoundHandler",
            "vendor_id": "[0][0][0][0]"
          }
        }
      ],
      "format": {
        "filename": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/main_story.mp4",
        "nb_streams": 2,
        "nb_programs": 0,
        "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
        "format_long_name": "QuickTime / MOV",
        "start_time": "0.000000",
        "duration": "697.682000",
        "size": "318801361",
        "bit_rate": "3655549",
        "probe_score": 100,
        "tags": {
          "major_brand": "isom",
          "minor_version": "512",
          "compatible_brands": "isomiso2avc1mp41",
          "encoder": "Lavf59.27.100"
        }
      }
    }
  },
  "concat_report": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/concat_report.json",
  "checks": {
    "main_exists": true,
    "has_audio": true,
    "has_video": true,
    "duration_reasonable": true,
    "concat_completed": true,
    "frames_extracted": true,
    "blackdetect_clear": true,
    "silencedetect_events_count": 40
  },
  "checkpoints": [
    {
      "label": "early",
      "timestamp_sec": 30.0
    },
    {
      "label": "mid",
      "timestamp_sec": 348.841
    },
    {
      "label": "late",
      "timestamp_sec": 652.682
    }
  ],
  "part_joins": [
    {
      "label": "join_01_02_before",
      "timestamp_sec": 129.9
    },
    {
      "label": "join_01_02_after",
      "timestamp_sec": 130.4
    },
    {
      "label": "join_02_03_before",
      "timestamp_sec": 266.95
    },
    {
      "label": "join_02_03_after",
      "timestamp_sec": 267.45
    },
    {
      "label": "join_03_04_before",
      "timestamp_sec": 395.12
    },
    {
      "label": "join_03_04_after",
      "timestamp_sec": 395.62
    },
    {
      "label": "join_04_05_before",
      "timestamp_sec": 552.23
    },
    {
      "label": "join_04_05_after",
      "timestamp_sec": 552.73
    }
  ],
  "frames": [
    {
      "label": "early",
      "timestamp_sec": 30.0,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/early_30.000.jpg",
      "ok": true
    },
    {
      "label": "mid",
      "timestamp_sec": 348.841,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/mid_348.841.jpg",
      "ok": true
    },
    {
      "label": "late",
      "timestamp_sec": 652.682,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/late_652.682.jpg",
      "ok": true
    },
    {
      "label": "join_01_02_before",
      "timestamp_sec": 129.9,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/join_01_02_before_129.900.jpg",
      "ok": true
    },
    {
      "label": "join_01_02_after",
      "timestamp_sec": 130.4,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/join_01_02_after_130.400.jpg",
      "ok": true
    },
    {
      "label": "join_02_03_before",
      "timestamp_sec": 266.95,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/join_02_03_before_266.950.jpg",
      "ok": true
    },
    {
      "label": "join_02_03_after",
      "timestamp_sec": 267.45,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/join_02_03_after_267.450.jpg",
      "ok": true
    },
    {
      "label": "join_03_04_before",
      "timestamp_sec": 395.12,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/join_03_04_before_395.120.jpg",
      "ok": true
    },
    {
      "label": "join_03_04_after",
      "timestamp_sec": 395.62,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/join_03_04_after_395.620.jpg",
      "ok": true
    },
    {
      "label": "join_04_05_before",
      "timestamp_sec": 552.23,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/join_04_05_before_552.230.jpg",
      "ok": true
    },
    {
      "label": "join_04_05_after",
      "timestamp_sec": 552.73,
      "frame_path": "/data/video-pipeline/Youtube-Video-Maker/Project/26052026-001-Ngo-Quyen/output/qa_main_story/frames/join_04_05_after_552.730.jpg",
      "ok": true
    }
  ],
  "blackdetect_events": [],
  "silencedetect_events": [
    "[silencedetect @ 0x5ca5265bb400] silence_start: 38.1531",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 39.3692 | silence_duration: 1.21605",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 40.9664",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 42.098 | silence_duration: 1.13161",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 130.103",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 131.317 | silence_duration: 1.2146",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 133.173",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 134.279 | silence_duration: 1.1054",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 196.16",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 197.295 | silence_duration: 1.13524",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 199.273",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 200.405 | silence_duration: 1.13188",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 267.147",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 268.463 | silence_duration: 1.31655",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 269.26",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 270.392 | silence_duration: 1.13152",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 324.73",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 325.955 | silence_duration: 1.22481",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 327.8",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 328.922 | silence_duration: 1.12159",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 395.385",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 396.629 | silence_duration: 1.24381",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 398.61",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 399.728 | silence_duration: 1.11841",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 467.049",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 468.299 | silence_duration: 1.25002",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 469.859",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 471.027 | silence_duration: 1.16884",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 552.456",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 553.739 | silence_duration: 1.28363",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 555.894",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 557.031 | silence_duration: 1.13683",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 597.085",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 598.368 | silence_duration: 1.28218",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 599.224",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 600.695 | silence_duration: 1.47102",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 645.598",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 646.785 | silence_duration: 1.18739",
    "[silencedetect @ 0x5ca5265bb400] silence_start: 648.994",
    "[silencedetect @ 0x5ca5265bb400] silence_end: 650.134 | silence_duration: 1.13946"
  ],
  "decision": "Can proceed to intro/outro/BGM packaging only after human visual sync spot-check of extracted frames/video samples.",
  "manual_qa_required": [
    "Watch early/mid/late checkpoints and part joins to confirm voice/subtitle sync.",
    "Confirm transitions are smooth and no heading image holds under following scene narration."
  ]
}