{
  "started": "2026-10-07T23:57:09.467Z",
  "ended": "2026-10-07T23:57:15.195Z",
  "date": "2026-10-08",
  "approvedKeyword": "mp4 midi converter",
  "queueIndex": 16,
  "ffmpegVersion": "ffmpeg version N-92722-gf22fcd4483 Copyright (c) 2000-2018 the FFmpeg developers\r",
  "sourceCodeSHA256": "7f9c8b44a6ac99835b7e2f86c4f141385a1045396e40214c0afe6cee94e8f7ea",
  "fixture": {
    "seconds": 2.4,
    "channels": 1,
    "rate": 44100,
    "bits": 16,
    "pitches": [
      60,
      64,
      67,
      72
    ],
    "onsets": [
      0,
      0.6,
      1.2,
      1.8
    ],
    "gateSeconds": 0.45,
    "edgeSeconds": 0.008,
    "amplitude": 0.35,
    "video": "320x180 solid-color H.264 at 10fps; no musical information in images"
  },
  "videoPayloadSHA256": "8eccde8c8a83811590c1d06ae770b378f41c08298956195a6b351f7000d14003",
  "videoPayloadIdentical": true,
  "cases": [
    {
      "file": "with-audio.mp4",
      "tracks": [
        {
          "handler": "vide"
        },
        {
          "handler": "soun"
        }
      ],
      "extractionExitCode": 0,
      "wavCreated": true,
      "notes": 4
    },
    {
      "file": "without-audio.mp4",
      "tracks": [
        {
          "handler": "vide"
        }
      ],
      "extractionExitCode": 1,
      "wavCreated": false,
      "midiAttempted": false,
      "error": "Stream map '0:a:0' matches no streams."
    }
  ],
  "inspection": [
    {
      "file": "with-audio.mp4",
      "exitCode": 1,
      "streams": [
        "Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 3 kb/s, 10 fps, 10 tbr, 10240 tbn, 20 tbc (default)",
        "Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 82 kb/s (default)"
      ]
    },
    {
      "file": "without-audio.mp4",
      "exitCode": 1,
      "streams": [
        "Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 3 kb/s, 10 fps, 10 tbr, 10240 tbn, 20 tbc (default)"
      ]
    }
  ],
  "wav": {
    "tag": 1,
    "channels": 1,
    "rate": 44100,
    "bits": 16,
    "samples": 106496,
    "seconds": 2.414875283446712
  },
  "mode": "Balanced (2)",
  "detectedNotes": [
    {
      "pitch": 60,
      "start": 0,
      "duration": 0.46439909297052157,
      "velocity": 118
    },
    {
      "pitch": 64,
      "start": 0.46439909297052157,
      "duration": 0.603718820861678,
      "velocity": 118
    },
    {
      "pitch": 67,
      "start": 1.0681179138321997,
      "duration": 0.5572789115646258,
      "velocity": 118
    },
    {
      "pitch": 72,
      "start": 1.6718367346938776,
      "duration": 0.5572789115646258,
      "velocity": 118
    }
  ],
  "artifacts": [
    {
      "file": "extracted-balanced.mid",
      "bytes": 69,
      "sha256": "a8714310e4cd31305cce42cb85ba2dfc88898255768f7a0f34b4110724c571fd"
    },
    {
      "file": "extracted.wav",
      "bytes": 213070,
      "sha256": "16160fe6c0f6c36157f7e4ef82152e4f2bd7de63d61707c57d6a5a8b11e88c0f"
    },
    {
      "file": "source-four-notes.wav",
      "bytes": 211724,
      "sha256": "53941feb8010ab40f517fe728f296c6b5c2ab808a4d49824ba761b3b69206b2e"
    },
    {
      "file": "with-audio.mp4",
      "bytes": 28485,
      "sha256": "7e35d1c7a5bcbaab42b65e19e8e94d08c6e6ed18dfb7e4944d3bd2ba05a7ca6f"
    },
    {
      "file": "without-audio.mp4",
      "bytes": 2249,
      "sha256": "775674f1f791cc0fe3b892870d1aa33b789e7522d8a4b5b7d7a192395b00ea1f"
    }
  ],
  "commands": [
    {
      "time": "2026-10-07T23:57:09.499Z",
      "args": [
        "-version"
      ],
      "exitCode": 0,
      "stderr": ""
    },
    {
      "time": "2026-10-07T23:57:12.873Z",
      "args": [
        "-nostdin",
        "-hide_banner",
        "-f",
        "lavfi",
        "-i",
        "color=c=0x101c22:s=320x180:r=10:d=2.4",
        "-i",
        "dist/assets/mp4-audio-track/source-four-notes.wav",
        "-map",
        "0:v:0",
        "-map",
        "1:a:0",
        "-c:v",
        "libx264",
        "-pix_fmt",
        "yuv420p",
        "-c:a",
        "aac",
        "-b:a",
        "128k",
        "-t",
        "2.4",
        "-movflags",
        "+faststart",
        "dist/assets/mp4-audio-track/with-audio.mp4"
      ],
      "exitCode": 0,
      "stderr": "Input #0, lavfi, from 'color=c=0x101c22:s=320x180:r=10:d=2.4':\r\n  Duration: N/A, start: 0.000000, bitrate: N/A\r\n    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 10 tbr, 10 tbn, 10 tbc\r\nGuessed Channel Layout for Input Stream #1.0 : mono\r\nInput #1, wav, from 'dist/assets/mp4-audio-track/source-four-notes.wav':\r\n  Duration: 00:00:02.40, bitrate: 705 kb/s\r\n    Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, mono, s16, 705 kb/s\r\nStream mapping:\r\n  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))\r\n  Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))\r\n[libx264 @ 0000008000c8c940] using SAR=1/1\r\n[libx264 @ 0000008000c8c940] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512\r\n[libx264 @ 0000008000c8c940] profile High, level 1.2, 4:2:0, 8-bit\r\n[libx264 @ 0000008000c8c940] 264 - core 157 r2935 545de2f - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=10 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\r\nOutput #0, mp4, to 'dist\\assets\\mp4-audio-track\\with-audio.mp4':\r\n  Metadata:\r\n    encoder         : Lavf58.24.101\r\n    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 320x180 [SAR 1:1 DAR 16:9], q=-1--1, 10 fps, 10240 tbn, 10 tbc\r\n    Metadata:\r\n      encoder         : Lavc58.42.102 libx264\r\n    Side data:\r\n      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1\r\n    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 128 kb/s\r\n    Metadata:\r\n      encoder         : Lavc58.42.102 aac\r\n[Parsed_color_0 @ 0000008000c3c200] EOF timestamp not reliable\r\n[mp4 @ 0000008000c8a080] Starting second pass: moving the moov atom to the beginning of the file\r\nframe=   24 fps=0.0 q=-1.0 Lsize=      28kB time=00:00:02.41 bitrate=  94.4kbits/s speed=9.01x    \r\nvideo:1kB audio:24kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.494522%\r\n[libx264 @ 0000008000c8c940] frame I:1     Avg QP: 6.00  size:    66\r\n[libx264 @ 0000008000c8c940] frame P:6     Avg QP: 7.17  size:    22\r\n[libx264 @ 0000008000c8c940] frame B:17    Avg QP: 9.71  size:    14\r\n[libx264 @ 0000008000c8c940] consecutive B-frames:  4.2%  0.0% 12.5% 83.3%\r\n[libx264 @ 0000008000c8c940] mb I  I16..4: 100.0%  0.0%  0.0%\r\n[libx264 @ 0000008000c8c940] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.0%  0.0%  0.0%  0.0%  0.0%    skip:100.0%\r\n[libx264 @ 0000008000c8c940] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%\r\n[libx264 @ 0000008000c8c940] 8x8 transform intra:0.0%\r\n[libx264 @ 0000008000c8c940] coded y,uvDC,uvAC intra: 0.0% 0.4% 0.0% inter: 0.0% 0.0% 0.0%\r\n[libx264 @ 0000008000c8c940] i16 v,h,dc,p: 92%  0%  8%  0%\r\n[libx264 @ 0000008000c8c940] i8c dc,h,v,p: 100%  0%  0%  0%\r\n[libx264 @ 0000008000c8c940] Weighted P-Frames: Y:0.0% UV:0.0%\r\n[libx264 @ 0000008000c8c940] kb/s:1.42\r\n[aac @ 0000008000c8ff00] Qavg: 57041.691\r\n"
    },
    {
      "time": "2026-10-07T23:57:13.863Z",
      "args": [
        "-nostdin",
        "-hide_banner",
        "-i",
        "dist/assets/mp4-audio-track/with-audio.mp4",
        "-map",
        "0:v:0",
        "-c:v",
        "copy",
        "-an",
        "dist/assets/mp4-audio-track/without-audio.mp4"
      ],
      "exitCode": 0,
      "stderr": "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dist\\assets\\mp4-audio-track\\with-audio.mp4':\r\n  Metadata:\r\n    major_brand     : isom\r\n    minor_version   : 512\r\n    compatible_brands: isomiso2avc1mp41\r\n    encoder         : Lavf58.24.101\r\n  Duration: 00:00:02.42, start: 0.000000, bitrate: 94 kb/s\r\n    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 3 kb/s, 10 fps, 10 tbr, 10240 tbn, 20 tbc (default)\r\n    Metadata:\r\n      handler_name    : VideoHandler\r\n    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 82 kb/s (default)\r\n    Metadata:\r\n      handler_name    : SoundHandler\r\nOutput #0, mp4, to 'dist\\assets\\mp4-audio-track\\without-audio.mp4':\r\n  Metadata:\r\n    major_brand     : isom\r\n    minor_version   : 512\r\n    compatible_brands: isomiso2avc1mp41\r\n    encoder         : Lavf58.24.101\r\n    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x180 [SAR 1:1 DAR 16:9], q=2-31, 3 kb/s, 10 fps, 10 tbr, 10240 tbn, 10240 tbc (default)\r\n    Metadata:\r\n      handler_name    : VideoHandler\r\nStream mapping:\r\n  Stream #0:0 -> #0:0 (copy)\r\nframe=   24 fps=0.0 q=-1.0 Lsize=       2kB time=00:00:02.10 bitrate=   8.6kbits/s speed=1.21e+03x    \r\nvideo:1kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 101.342880%\r\n"
    },
    {
      "time": "2026-10-07T23:57:14.073Z",
      "args": [
        "-nostdin",
        "-hide_banner",
        "-i",
        "dist/assets/mp4-audio-track/with-audio.mp4"
      ],
      "exitCode": 1,
      "stderr": "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dist\\assets\\mp4-audio-track\\with-audio.mp4':\r\n  Metadata:\r\n    major_brand     : isom\r\n    minor_version   : 512\r\n    compatible_brands: isomiso2avc1mp41\r\n    encoder         : Lavf58.24.101\r\n  Duration: 00:00:02.42, start: 0.000000, bitrate: 94 kb/s\r\n    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 3 kb/s, 10 fps, 10 tbr, 10240 tbn, 20 tbc (default)\r\n    Metadata:\r\n      handler_name    : VideoHandler\r\n    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 82 kb/s (default)\r\n    Metadata:\r\n      handler_name    : SoundHandler\r\nAt least one output file must be specified\r\n"
    },
    {
      "time": "2026-10-07T23:57:14.245Z",
      "args": [
        "-nostdin",
        "-hide_banner",
        "-i",
        "dist/assets/mp4-audio-track/without-audio.mp4"
      ],
      "exitCode": 1,
      "stderr": "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dist\\assets\\mp4-audio-track\\without-audio.mp4':\r\n  Metadata:\r\n    major_brand     : isom\r\n    minor_version   : 512\r\n    compatible_brands: isomiso2avc1mp41\r\n    encoder         : Lavf58.24.101\r\n  Duration: 00:00:02.40, start: 0.000000, bitrate: 7 kb/s\r\n    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 3 kb/s, 10 fps, 10 tbr, 10240 tbn, 20 tbc (default)\r\n    Metadata:\r\n      handler_name    : VideoHandler\r\nAt least one output file must be specified\r\n"
    },
    {
      "time": "2026-10-07T23:57:14.387Z",
      "args": [
        "-nostdin",
        "-hide_banner",
        "-i",
        "dist/assets/mp4-audio-track/with-audio.mp4",
        "-map",
        "0:a:0",
        "-vn",
        "-c:a",
        "pcm_s16le",
        "dist/assets/mp4-audio-track/extracted.wav"
      ],
      "exitCode": 0,
      "stderr": "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dist\\assets\\mp4-audio-track\\with-audio.mp4':\r\n  Metadata:\r\n    major_brand     : isom\r\n    minor_version   : 512\r\n    compatible_brands: isomiso2avc1mp41\r\n    encoder         : Lavf58.24.101\r\n  Duration: 00:00:02.42, start: 0.000000, bitrate: 94 kb/s\r\n    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 3 kb/s, 10 fps, 10 tbr, 10240 tbn, 20 tbc (default)\r\n    Metadata:\r\n      handler_name    : VideoHandler\r\n    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 82 kb/s (default)\r\n    Metadata:\r\n      handler_name    : SoundHandler\r\nStream mapping:\r\n  Stream #0:1 -> #0:0 (aac (native) -> pcm_s16le (native))\r\nOutput #0, wav, to 'dist\\assets\\mp4-audio-track\\extracted.wav':\r\n  Metadata:\r\n    major_brand     : isom\r\n    minor_version   : 512\r\n    compatible_brands: isomiso2avc1mp41\r\n    ISFT            : Lavf58.24.101\r\n    Stream #0:0(und): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, mono, s16, 705 kb/s (default)\r\n    Metadata:\r\n      handler_name    : SoundHandler\r\n      encoder         : Lavc58.42.102 pcm_s16le\r\nsize=     208kB time=00:00:02.41 bitrate= 705.9kbits/s speed= 347x    \r\nvideo:0kB audio:208kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.036621%\r\n"
    },
    {
      "time": "2026-10-07T23:57:14.585Z",
      "args": [
        "-nostdin",
        "-hide_banner",
        "-i",
        "dist/assets/mp4-audio-track/without-audio.mp4",
        "-map",
        "0:a:0",
        "-vn",
        "-c:a",
        "pcm_s16le",
        "ops/research/mp4-audio-track-2026-10-08/no-audio-extraction.wav"
      ],
      "exitCode": 1,
      "stderr": "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dist\\assets\\mp4-audio-track\\without-audio.mp4':\r\n  Metadata:\r\n    major_brand     : isom\r\n    minor_version   : 512\r\n    compatible_brands: isomiso2avc1mp41\r\n    encoder         : Lavf58.24.101\r\n  Duration: 00:00:02.40, start: 0.000000, bitrate: 7 kb/s\r\n    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 3 kb/s, 10 fps, 10 tbr, 10240 tbn, 20 tbc (default)\r\n    Metadata:\r\n      handler_name    : VideoHandler\r\nStream map '0:a:0' matches no streams.\r\nTo ignore this, add a trailing '?' to the map.\r\n"
    }
  ],
  "limits": "One synthetic mono four-tone source, not a real song or visual-note recognition. FFmpeg extraction and unchanged code-level detector only; browser MP4 decoding/file picker, listening, DAW import, general accuracy and commercial tools not measured. No-audio means no stream, not a silent waveform or a zero-note MIDI."
}