{
  "project_id": "01062026-004-Ba-Trieu",
  "step": 18,
  "status": "completed",
  "inputs": {
    "intro_video_path": "/data/video-pipeline/Youtube-Video-Maker/Project/01062026-004-Ba-Trieu/output/intro/intro.mp4",
    "main_video_path": "/data/video-pipeline/Youtube-Video-Maker/Project/01062026-004-Ba-Trieu/output/main_story.mp4",
    "main_qa_report_path": "/data/video-pipeline/Youtube-Video-Maker/Project/01062026-004-Ba-Trieu/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/01062026-004-Ba-Trieu/output/thumbnails/thumb_16x9_final.png",
    "thumbnail_9x16_path": "/data/video-pipeline/Youtube-Video-Maker/Project/01062026-004-Ba-Trieu/output/thumbnails/thumb_9x16_final.png"
  },
  "output_video_path": "/data/video-pipeline/Youtube-Video-Maker/Project/01062026-004-Ba-Trieu/output/final/final_video.mp4",
  "probe_path": "/data/video-pipeline/Youtube-Video-Maker/Project/01062026-004-Ba-Trieu/output/final/final_video_probe.json",
  "blackdetect_path": "/data/video-pipeline/Youtube-Video-Maker/Project/01062026-004-Ba-Trieu/output/final/final_blackdetect.json",
  "package_response": {
    "status": "ok",
    "output_video_path": "/data/video-pipeline/Youtube-Video-Maker/Project/01062026-004-Ba-Trieu/output/final/final_video.mp4",
    "probe": {
      "programs": [],
      "streams": [
        {
          "index": 0,
          "codec_name": "h264",
          "codec_type": "video",
          "duration": "823.733333"
        },
        {
          "index": 1,
          "codec_name": "aac",
          "codec_type": "audio",
          "sample_rate": "24000",
          "channels": 1,
          "duration": "822.784000"
        }
      ],
      "format": {
        "duration": "823.734000"
      }
    },
    "ffmpeg_tail": ":12:39.07 bitrate=3447.9kbits/s dup=1 drop=0 speed=4.55x    \nframe=22838 fps=136 q=26.0 size=  320768kB time=00:12:41.17 bitrate=3452.2kbits/s dup=1 drop=0 speed=4.55x    \nframe=22903 fps=136 q=26.0 size=  322304kB time=00:12:43.43 bitrate=3458.5kbits/s dup=1 drop=0 speed=4.55x    \nframe=22968 fps=136 q=26.0 size=  323328kB time=00:12:45.52 bitrate=3460.0kbits/s dup=1 drop=0 speed=4.55x    \nframe=23042 fps=136 q=26.0 size=  324352kB time=00:12:47.99 bitrate=3459.8kbits/s dup=1 drop=0 speed=4.55x    \nframe=23114 fps=136 q=26.0 size=  324864kB time=00:12:50.38 bitrate=3454.5kbits/s dup=1 drop=0 speed=4.55x    \nframe=23185 fps=137 q=26.0 size=  325376kB time=00:12:52.77 bitrate=3449.2kbits/s dup=1 drop=0 speed=4.55x    \nframe=23255 fps=137 q=26.0 size=  326912kB time=00:12:55.07 bitrate=3455.2kbits/s dup=1 drop=0 speed=4.55x    \nframe=23327 fps=137 q=26.0 size=  327680kB time=00:12:57.46 bitrate=3452.7kbits/s dup=1 drop=0 speed=4.55x    \nframe=23403 fps=137 q=26.0 size=  328192kB time=00:13:00.02 bitrate=3446.7kbits/s dup=1 drop=0 speed=4.55x    \nframe=23470 fps=137 q=26.0 size=  329472kB time=00:13:02.33 bitrate=3450.0kbits/s dup=1 drop=0 speed=4.55x    \nframe=23543 fps=137 q=26.0 size=  330240kB time=00:13:04.67 bitrate=3447.7kbits/s dup=1 drop=0 speed=4.55x    \nframe=23608 fps=137 q=26.0 size=  331520kB time=00:13:06.85 bitrate=3451.5kbits/s dup=1 drop=0 speed=4.55x    \nframe=23633 fps=136 q=26.0 size=  331776kB time=00:13:07.66 bitrate=3450.6kbits/s dup=1 drop=0 speed=4.54x    \nframe=23706 fps=136 q=26.0 size=  332288kB time=00:13:10.09 bitrate=3445.3kbits/s dup=1 drop=0 speed=4.54x    \nframe=23785 fps=136 q=26.0 size=  333312kB time=00:13:12.74 bitrate=3444.4kbits/s dup=1 drop=0 speed=4.54x    \nframe=23909 fps=137 q=26.0 size=  333568kB time=00:13:16.71 bitrate=3429.8kbits/s dup=1 drop=0 speed=4.55x    \nframe=24031 fps=137 q=26.0 size=  333568kB time=00:13:20.38 bitrate=3414.1kbits/s dup=1 drop=0 speed=4.56x    \nframe=24154 fps=137 q=26.0 size=  333824kB time=00:13:24.47 bitrate=3399.3kbits/s dup=1 drop=0 speed=4.57x    \nframe=24276 fps=138 q=26.0 size=  333824kB time=00:13:28.53 bitrate=3382.3kbits/s dup=1 drop=0 speed=4.58x    \nframe=24406 fps=138 q=26.0 size=  334080kB time=00:13:32.88 bitrate=3366.8kbits/s dup=1 drop=0 speed=4.59x    \nframe=24539 fps=138 q=26.0 size=  334080kB time=00:13:37.31 bitrate=3348.5kbits/s dup=1 drop=0 speed=4.61x    \nframe=24664 fps=139 q=26.0 size=  334336kB time=00:13:41.45 bitrate=3334.2kbits/s dup=1 drop=0 speed=4.62x    \n[mp4 @ 0x5d943fe2df80] Starting second pass: moving the moov atom to the beginning of the file\nframe=24712 fps=139 q=-1.0 Lsize=  335123kB time=00:13:43.63 bitrate=3333.2kbits/s dup=1 drop=0 speed=4.62x    \nvideo:323758kB audio:10730kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.189846%\n[libx264 @ 0x5d943fe33ac0] frame I:103   Avg QP:16.80  size:403669\n[libx264 @ 0x5d943fe33ac0] frame P:7251  Avg QP:20.47  size: 35437\n[libx264 @ 0x5d943fe33ac0] frame B:17358 Avg QP:24.79  size:  1901\n[libx264 @ 0x5d943fe33ac0] consecutive B-frames:  4.5%  4.6%  2.7% 88.2%\n[libx264 @ 0x5d943fe33ac0] mb I  I16..4:  4.5%  5.6% 89.9%\n[libx264 @ 0x5d943fe33ac0] mb P  I16..4:  0.1%  1.3%  1.3%  P16..4: 47.7% 11.1%  9.0%  0.0%  0.0%    skip:29.4%\n[libx264 @ 0x5d943fe33ac0] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8: 10.0%  1.8%  0.2%  direct: 1.3%  skip:86.8%  L0:37.3% L1:41.5% BI:21.2%\n[libx264 @ 0x5d943fe33ac0] 8x8 transform intra:34.3% inter:58.4%\n[libx264 @ 0x5d943fe33ac0] coded y,uvDC,uvAC intra: 95.6% 56.9% 21.6% inter: 8.5% 4.4% 0.1%\n[libx264 @ 0x5d943fe33ac0] i16 v,h,dc,p: 35%  6% 49% 10%\n[libx264 @ 0x5d943fe33ac0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 13% 24%  7%  8%  7%  8%  8% 10%\n[libx264 @ 0x5d943fe33ac0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 14% 12%  9% 11%  9% 10%  9% 10%\n[libx264 @ 0x5d943fe33ac0] i8c dc,h,v,p: 52% 23% 21%  4%\n[libx264 @ 0x5d943fe33ac0] Weighted P-Frames: Y:8.5% UV:2.5%\n[libx264 @ 0x5d943fe33ac0] kb/s:3219.76\n[aac @ 0x5d943fe2e700] Qavg: 65513.840\n",
    "method": "explicit_ffmpeg_audio_safe",
    "sample_rate": 24000,
    "channels": 1,
    "bgm_volume": 0.2
  },
  "input_probes": {
    "intro": {
      "programs": [],
      "streams": [
        {
          "index": 0,
          "codec_name": "h264",
          "codec_type": "video",
          "duration": "15.700000"
        },
        {
          "index": 1,
          "codec_name": "aac",
          "codec_type": "audio",
          "sample_rate": "22050",
          "channels": 1,
          "duration": "15.690023"
        }
      ],
      "format": {
        "duration": "15.700000"
      }
    },
    "main": {
      "programs": [],
      "streams": [
        {
          "index": 0,
          "codec_name": "h264",
          "codec_type": "video",
          "duration": "781.267969"
        },
        {
          "index": 1,
          "codec_name": "aac",
          "codec_type": "audio",
          "sample_rate": "22050",
          "channels": 1,
          "duration": "780.360408"
        }
      ],
      "format": {
        "duration": "781.315000"
      }
    },
    "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": "823.733333"
      },
      {
        "index": 1,
        "codec_name": "aac",
        "codec_type": "audio",
        "sample_rate": "24000",
        "channels": 1,
        "duration": "822.784000"
      }
    ],
    "format": {
      "duration": "823.734000"
    }
  },
  "validation": {
    "final_exists": true,
    "has_audio": true,
    "has_video": true,
    "main_qa_passed": true,
    "order": [
      "intro",
      "main_story",
      "outro"
    ],
    "expected_duration_sec": 823.7490000000001,
    "final_duration_sec": 823.734,
    "duration_diff_sec": -0.015000000000100044,
    "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."
  ]
}