($job['status'] ?? '') === 'completed')); $failedCount = count(array_filter($jobs, static fn(array $job): bool => ($job['status'] ?? '') === 'failed')); $latestJob = $jobs[0] ?? null; $toolConfig = []; foreach ($tools as $key => $tool) { $toolConfig[$key] = [ 'label' => $tool['label'], 'description' => $tool['description'], 'accept' => tool_accept_attribute($key), 'acceptSummary' => $tool['accept_summary'], 'submitLabel' => $tool['submit_label'], 'requiresFfmpeg' => !empty($tool['requires_ffmpeg']), 'presets' => array_map( static fn(array $preset): array => [ 'label' => $preset['label'], 'description' => $preset['description'], ], $tool['presets'] ?? [] ), ]; } ?> <?= h($meta['title']) ?>
Sell more than a single codec swap

One dashboard for video exports and subtitle conversions.

FormatShift now combines the original WEBM โ†’ MP4 flow with social-ready MP4 presets and a lightweight SRT โ†” VTT subtitle utility, so the product feels closer to a creator toolkit than a commodity converter.

Tool bundle
3 converters

Video compatibility, social presets, and subtitle reformatting.

Upload limit
Up to MB

Applies to video uploads and subtitle assets.

Retention
hours

Temporary files auto-clean so the VM stays lean.

Conversion tools

A tighter bundle for teams that need compatibility, publishing formats, and caption assets in one place.

$tool): ?>

  • :

Run a conversion

Pick the tool, choose any preset/output options, then upload the source file.

Choose the opposite format of your upload, for example SRT โ†’ VTT or VTT โ†’ SRT.

Recent jobs

Each entry now shows which converter ran, which format changed, and whether a download is ready.

No conversions yet

Your first WEBM, social export, or subtitle conversion will show up here with a dedicated detail page and download action.

Ready.