{"methodology":{"runDate":"Fri, 10 Jul 2026 15:19:49 GMT","server":"convertintomp4.com production API","apiEndpoint":"POST https://api.convertintomp4.com/v1/convert/base64","wallTimeMeasurement":"t0 = immediately after POST returns (upload time excluded); t1 = first poll cycle showing status=completed. Granularity is 3s poll interval, so wallSeconds is quantized at 3s steps. Use processingMs (result.duration from status response) for precise server-side timing.","interCaseDelaySeconds":3,"pollIntervalSeconds":3,"pollTimeoutSeconds":300,"inputs":[{"name":"sample_30s_1080p.mp4","bytes":23663376,"props":"30s H.264/AAC 1920x1080 30fps, ffmpeg testsrc2+sine"},{"name":"sample_30s_1080p.mov","bytes":22045999,"props":"30s H.264/AAC 1920x1080 in QuickTime container"},{"name":"sample_30s_1080p.mkv","bytes":22030224,"props":"30s H.264/AAC 1920x1080 in Matroska container"},{"name":"sample_30s_1080p.webm","bytes":7603385,"props":"30s VP8/Vorbis 1920x1080 WebM container"},{"name":"sample_60s.wav","bytes":10584078,"props":"60s 44.1kHz stereo PCM 16-bit sine 440Hz"},{"name":"sample_60s.mp3","bytes":2402264,"props":"60s MP3 320kbps from WAV"},{"name":"sample_2000x1500.png","bytes":211718,"props":"2000x1500 PNG gradient+text (ffmpeg lavfi)"},{"name":"sample_2000x1500.jpg","bytes":104560,"props":"2000x1500 JPEG q=2 from PNG"},{"name":"sample_2000x1500.webp","bytes":28080,"props":"2000x1500 WebP q=80 lossy from PNG"},{"name":"sample_5page.pdf","bytes":80235,"props":"10-page PDF (filename says 5page; pdfinfo confirmed 10 pages after LibreOffice expanded the TXT content); LibreOffice from synthetic TXT"},{"name":"sample.docx","bytes":5616,"props":"DOCX synthesized via LibreOffice from synthetic TXT (no .docx files found under ~/projects); verified valid zip: 10 internal files including word/document.xml"}],"notes":["wallSeconds excludes upload time and is quantized to 3s poll intervals; use processingMs for precise server-side duration","The PDF filename says 5page but pdfinfo confirmed 10 pages (txt content expanded during LibreOffice rendering)","The DOCX file was synthesized via LibreOffice (no existing .docx <1MB found under ~/projects); it is a valid unzippable DOCX","API requires User-Agent resembling a browser; bare Python urllib without UA returns HTTP 403 CF-1010","processingMs is read from result.duration in the /v1/status/{jobId} response","pdf-to-jpg for multi-page PDFs returns a ZIP archive of one JPEG per page, not a bare JPEG","webm-to-mp4 took 244.7s wall / 238.9s server processing (VP9 decode + H.264 encode is CPU-intensive)"]},"cases":[{"id":"mp4-to-mp3","sourceFormat":"mp4","targetFormat":"mp3","inputBytes":23663376,"outputBytes":143205,"wallSeconds":6.3,"processingMs":4683,"valid":true,"validityCheck":"ffprobe ok: codecs=['mp3'], duration=30.040816s","status":"completed","note":null},{"id":"mp4-to-mov","sourceFormat":"mp4","targetFormat":"mov","inputBytes":23663376,"outputBytes":23663427,"wallSeconds":9.4,"processingMs":4096,"valid":true,"validityCheck":"ffprobe ok: codecs=['h264', 'aac'], duration=30.000000s, dims=1920x1080","status":"completed","note":null},{"id":"mp4-to-webm","sourceFormat":"mp4","targetFormat":"webm","inputBytes":23663376,"outputBytes":27813159,"wallSeconds":40.5,"processingMs":37934,"valid":true,"validityCheck":"ffprobe ok: codecs=['vp9', 'opus'], duration=30.008000s, dims=1920x1080","status":"completed","note":null},{"id":"mov-to-mp4","sourceFormat":"mov","targetFormat":"mp4","inputBytes":22045999,"outputBytes":22045948,"wallSeconds":6.3,"processingMs":4015,"valid":true,"validityCheck":"ffprobe ok: codecs=['h264', 'aac'], duration=30.000000s, dims=1920x1080","status":"completed","note":null},{"id":"mkv-to-mp4","sourceFormat":"mkv","targetFormat":"mp4","inputBytes":22030224,"outputBytes":22051324,"wallSeconds":9.4,"processingMs":4487,"valid":true,"validityCheck":"ffprobe ok: codecs=['h264', 'aac'], duration=30.000000s, dims=1920x1080","status":"completed","note":null},{"id":"webm-to-mp4","sourceFormat":"webm","targetFormat":"mp4","inputBytes":7603385,"outputBytes":30842075,"wallSeconds":244.7,"processingMs":238881,"valid":true,"validityCheck":"ffprobe ok: codecs=['h264', 'aac'], duration=30.002993s, dims=1920x1080","status":"completed","note":null},{"id":"mp4-to-gif","sourceFormat":"mp4","targetFormat":"gif","inputBytes":23663376,"outputBytes":64135806,"wallSeconds":31.2,"processingMs":23164,"valid":true,"validityCheck":"magic GIF89a/87a, nb_frames=450","status":"completed","note":null},{"id":"wav-to-mp3","sourceFormat":"wav","targetFormat":"mp3","inputBytes":10584078,"outputBytes":382821,"wallSeconds":6.3,"processingMs":4102,"valid":true,"validityCheck":"ffprobe ok: codecs=['mp3'], duration=60.029388s","status":"completed","note":null},{"id":"mp3-to-wav","sourceFormat":"mp3","targetFormat":"wav","inputBytes":2402264,"outputBytes":10584078,"wallSeconds":6.3,"processingMs":3576,"valid":true,"validityCheck":"ffprobe ok: codecs=['pcm_s16le'], duration=60.000000s","status":"completed","note":null},{"id":"wav-to-flac","sourceFormat":"wav","targetFormat":"flac","inputBytes":10584078,"outputBytes":742831,"wallSeconds":6.3,"processingMs":4596,"valid":true,"validityCheck":"ffprobe ok: codecs=['flac'], duration=60.000000s","status":"completed","note":null},{"id":"png-to-webp","sourceFormat":"png","targetFormat":"webp","inputBytes":211718,"outputBytes":33128,"wallSeconds":6.3,"processingMs":3722,"valid":true,"validityCheck":"WEBP magic ok, dims=2000x1500","status":"completed","note":null},{"id":"png-to-jpg","sourceFormat":"png","targetFormat":"jpg","inputBytes":211718,"outputBytes":49552,"wallSeconds":6.3,"processingMs":3639,"valid":true,"validityCheck":"JPEG magic ok, dims=2000x1500","status":"completed","note":null},{"id":"jpg-to-png","sourceFormat":"jpg","targetFormat":"png","inputBytes":104560,"outputBytes":217716,"wallSeconds":6.3,"processingMs":3658,"valid":true,"validityCheck":"PNG magic ok, dims=2000x1500","status":"completed","note":null},{"id":"webp-to-png","sourceFormat":"webp","targetFormat":"png","inputBytes":28080,"outputBytes":241921,"wallSeconds":6.3,"processingMs":3734,"valid":true,"validityCheck":"PNG magic ok, dims=2000x1500","status":"completed","note":null},{"id":"jpg-to-pdf","sourceFormat":"jpg","targetFormat":"pdf","inputBytes":104560,"outputBytes":170982,"wallSeconds":6.3,"processingMs":3720,"valid":true,"validityCheck":"PDF magic ok, pages=1","status":"completed","note":null},{"id":"png-to-pdf","sourceFormat":"png","targetFormat":"pdf","inputBytes":211718,"outputBytes":212479,"wallSeconds":6.3,"processingMs":3615,"valid":true,"validityCheck":"PDF magic ok, pages=1","status":"completed","note":null},{"id":"pdf-to-jpg","sourceFormat":"pdf","targetFormat":"jpg","inputBytes":80235,"outputBytes":5544396,"wallSeconds":6.3,"processingMs":4378,"valid":true,"validityCheck":"ZIP archive of 10 JPGs (one per PDF page); first page JPEG magic valid=True (pages 2-10 not individually re-verified)","status":"completed","note":"Multi-page PDF: API returned ZIP archive with 10 .jpg files. Automated JPEG magic check flagged this as failed (magic 504b0304=PK); reclassified after unzipping and verifying first page."},{"id":"pdf-to-docx","sourceFormat":"pdf","targetFormat":"docx","inputBytes":80235,"outputBytes":39924,"wallSeconds":6.3,"processingMs":4948,"valid":true,"validityCheck":"DOCX zip ok, 17 files, has_document=True","status":"completed","note":null},{"id":"docx-to-pdf","sourceFormat":"docx","targetFormat":"pdf","inputBytes":5616,"outputBytes":23366,"wallSeconds":6.3,"processingMs":5034,"valid":true,"validityCheck":"PDF magic ok, pages=1","status":"completed","note":null},{"id":"pdf-to-txt","sourceFormat":"pdf","targetFormat":"txt","inputBytes":80235,"outputBytes":23267,"wallSeconds":6.3,"processingMs":3477,"valid":true,"validityCheck":"TXT non-empty, 23267 bytes, ~3196 words","status":"completed","note":null}]}