{
  "schema_version": 1,
  "project_id": "016-Nguoi-Giu-Am-Thanh-Cuoi-Cung",
  "run_id": "run-20260720T233725Z-24504f17",
  "status": "completed",
  "verified": true,
  "request_sha256": "29a22a22597acc6108b081fe2a0375bed4f8ed0ff080363cef96b17450e41314",
  "payload": {
    "layout": "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/image/normalized/layout-1920x1080.png",
    "footage_dir": "/data/video-pipeline/GacMaiAudio/footage",
    "pattern": "*.mp4",
    "recursive": true,
    "audio": "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/audio/story-full.wav",
    "output": "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/output/footage/footage.mp4",
    "seed": 0,
    "overwrite": false,
    "width": 1920,
    "height": 1080,
    "fps": 30,
    "center_x": 656,
    "center_y": 0,
    "center_width": 608,
    "center_height": 1080,
    "video_encoder": "h264_nvenc"
  },
  "source_canon_sha256": "fae6fce617a14dc4f8b3bd52968cc688a456c45a60bc2ed7701ccd8164875e02",
  "source_audio_sha256": "d1817b0af049f324cff27dc4cd38eca2f704a37d6378eca545159c0a6ef0044c",
  "source_layout_sha256": "dc1dc60f1b4aeed3b9d28f7fdceae95c3b9f356c2fd0dfc14a8edf8aa1fa85f3",
  "created_at": "2026-07-21T02:24:42.698441Z",
  "job_id": "a54ee903514745478eb34d92edd2b47b",
  "submitted_response": {
    "job_id": "a54ee903514745478eb34d92edd2b47b",
    "status": "queued",
    "status_url": "/v1/footage-render-huyenan/jobs/a54ee903514745478eb34d92edd2b47b"
  },
  "submitted_at": "2026-07-21T02:24:43.011787Z",
  "last_response": {
    "id": "a54ee903514745478eb34d92edd2b47b",
    "service": "footage-render-huyenan",
    "status": "completed",
    "created_at": "2026-07-21T02:24:43.010534+00:00",
    "updated_at": "2026-07-21T03:01:00.065824+00:00",
    "request": {
      "layout": "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/image/normalized/layout-1920x1080.png",
      "footage_dir": "/data/video-pipeline/GacMaiAudio/footage",
      "pattern": "*.mp4",
      "recursive": true,
      "audio": "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/audio/story-full.wav",
      "output": "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/output/footage/footage.mp4",
      "seed": 0,
      "overwrite": false,
      "width": 1920,
      "height": 1080,
      "fps": 30,
      "center_x": 656,
      "center_y": 0,
      "center_width": 608,
      "center_height": 1080,
      "video_encoder": "h264_nvenc"
    },
    "seed": 0,
    "target_duration": 2566.86,
    "selected_footage": [
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-103.mp4",
        "source_duration": 72.067,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-099.mp4",
        "source_duration": 110.717,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-095.mp4",
        "source_duration": 248.3,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-004.mp4",
        "source_duration": 141.178,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-045.mp4",
        "source_duration": 46.253,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-058.mp4",
        "source_duration": 178.767,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-073.mp4",
        "source_duration": 140.504,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-023.mp4",
        "source_duration": 112.339,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-031.mp4",
        "source_duration": 178.748,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-026.mp4",
        "source_duration": 128.847,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-106.mp4",
        "source_duration": 87.7,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-091.mp4",
        "source_duration": 88.667,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-024.mp4",
        "source_duration": 57.817,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-074.mp4",
        "source_duration": 104.967,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-060.mp4",
        "source_duration": 95.735,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-017.mp4",
        "source_duration": 89.651,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-059.mp4",
        "source_duration": 68.475,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-030.mp4",
        "source_duration": 102.7,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-003.mp4",
        "source_duration": 118.98,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-055.mp4",
        "source_duration": 138.734,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-009.mp4",
        "source_duration": 170.087,
        "cycle": 1
      },
      {
        "path": "/data/video-pipeline/GacMaiAudio/footage/gacmai-038.mp4",
        "source_duration": 321.367,
        "cycle": 1
      }
    ],
    "selected_total_duration": 2802.6,
    "candidate_count": 113,
    "rejected_candidates": [],
    "source_audio_discarded": true,
    "horizontal_mirror": "hflip",
    "layout": "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/image/normalized/layout-1920x1080.png",
    "center_panel": {
      "x": 656,
      "y": 0,
      "width": 608,
      "height": 1080
    },
    "request_hash": "sha256:29a22a22597acc6108b081fe2a0375bed4f8ed0ff080363cef96b17450e41314",
    "command": [
      "ffmpeg",
      "-y",
      "-v",
      "warning",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-103.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-099.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-095.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-004.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-045.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-058.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-073.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-023.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-031.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-026.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-106.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-091.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-024.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-074.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-060.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-017.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-059.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-030.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-003.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-055.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-009.mp4",
      "-i",
      "/data/video-pipeline/GacMaiAudio/footage/gacmai-038.mp4",
      "-loop",
      "1",
      "-framerate",
      "30",
      "-i",
      "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/image/normalized/layout-1920x1080.png",
      "-i",
      "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/audio/story-full.wav",
      "-filter_complex",
      "[0:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v0];[1:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v1];[2:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v2];[3:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v3];[4:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v4];[5:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v5];[6:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v6];[7:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v7];[8:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v8];[9:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v9];[10:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v10];[11:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v11];[12:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v12];[13:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v13];[14:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v14];[15:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v15];[16:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v16];[17:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v17];[18:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v18];[19:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v19];[20:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v20];[21:v:0]hflip,scale=608:1080:force_original_aspect_ratio=increase,crop=608:1080,setsar=1,fps=30,format=yuv420p,setpts=PTS-STARTPTS[v21];[v0][v1][v2][v3][v4][v5][v6][v7][v8][v9][v10][v11][v12][v13][v14][v15][v16][v17][v18][v19][v20][v21]concat=n=22:v=1:a=0[joined];[joined]trim=duration=2566.860000,setpts=PTS-STARTPTS[center];[22:v:0]scale=1920:1080:force_original_aspect_ratio=increase,crop=1920:1080,setsar=1,fps=30,trim=duration=2566.860000,setpts=PTS-STARTPTS[layout];[layout][center]overlay=x=656:y=0:shortest=1,format=nv12[v]",
      "-map",
      "[v]",
      "-map",
      "23:a:0",
      "-c:a",
      "aac",
      "-b:a",
      "192k",
      "-ar",
      "48000",
      "-c:v",
      "h264_nvenc",
      "-preset",
      "p4",
      "-tune",
      "hq",
      "-rc",
      "vbr",
      "-cq",
      "21",
      "-b:v",
      "0",
      "-profile:v",
      "high",
      "-pix_fmt",
      "yuv420p",
      "-t",
      "2566.860000",
      "-movflags",
      "+faststart",
      "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/output/footage/footage.mp4"
    ],
    "started_at": "2026-07-21T02:24:59.552407+00:00",
    "completed_at": "2026-07-21T03:01:00.065808+00:00",
    "output": "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/output/footage/footage.mp4",
    "final_probe": {
      "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": 1,
          "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": "30/1",
          "time_base": "1/15360",
          "start_pts": 0,
          "start_time": "0.000000",
          "duration_ts": 39426560,
          "duration": "2566.833333",
          "bit_rate": "9766337",
          "bits_per_raw_sample": "8",
          "nb_frames": "77005",
          "extradata_size": 56,
          "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 h264_nvenc"
          }
        },
        {
          "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": "48000",
          "channels": 1,
          "channel_layout": "mono",
          "bits_per_sample": 0,
          "id": "0x2",
          "r_frame_rate": "0/0",
          "avg_frame_rate": "0/0",
          "time_base": "1/48000",
          "start_pts": 0,
          "start_time": "0.000000",
          "duration_ts": 123209280,
          "duration": "2566.860000",
          "bit_rate": "168185",
          "nb_frames": "120323",
          "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": {
        "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
        "duration": "2566.860000",
        "size": "3190058963"
      }
    },
    "verification": {
      "verified": true,
      "video_codec": "h264",
      "width": 1920,
      "height": 1080,
      "audio_status": "narration_mixed",
      "audio_stream_count": 1,
      "source_audio_discarded": true,
      "mirror_applied": true,
      "duration": 2566.86,
      "duration_delta": 0.0,
      "max_duration_delta": 0.06
    }
  },
  "updated_at": "2026-07-21T03:05:03.823523Z",
  "technical_verified": true,
  "output_path": "/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cung/output/footage/footage.mp4",
  "output_sha256": "3435a0db419e6d4302a17841fbbc13a996419b4c8bd7c03e76323e4ecc4b5dd5",
  "output_bytes": 3190058963,
  "completed_at": "2026-07-21T03:01:40.115686Z",
  "visual_qa": {
    "status": "passed",
    "verified": true,
    "scope": "technical/layout only; center content excluded",
    "frame_manifest_path": "log/footage-check/manifest.json",
    "frame_manifest_sha256": "cdf947dbccd32fd1dab3a0f6ddd44115669f89968493952eb1d2b9231bb7c824"
  }
}
