Transcode Video to HLS Online

Package any video into an Apple HLS VOD bundle: master.m3u8, per-rendition .ts segments, ready for the web.

HTTP Live Streaming (HLS) is Apple’s adaptive streaming format and the closest thing the web has to a universally supported VOD container. Media Manipulator transcodes your source video into an HLS package — master.m3u8 plus per-rendition variant playlists and .ts segments — so you can drop the unzipped folder onto any CDN or origin and serve it with built-in adaptive bitrate switching. Free tier covers 360p, 480p, and 720p; premium rungs are coming soon.

Loading the tool…

How to use it

  1. Upload

    Direct S3 presigned PUT — your file never goes through the API server.

  2. Probe

    ffprobe reads resolution, FPS, audio presence, and codec metadata.

  3. Pick rungs

    Choose 360p, 480p, 720p, or any combination you need.

  4. Encode

    libx264 + AAC at 2-second segments with forced keyframes on segment boundaries.

  5. Package

    master.m3u8 + variants + segments tar.gz’d with report.json and README.

  6. Download

    Presigned S3 GET URL valid for 30 minutes.

What this tool does

  • Probes your source with ffprobe and shows resolution, FPS, duration, codec, and audio status.
  • Lets you tick which quality rungs to encode (only ones your source can actually support are enabled).
  • Runs an H.264 + AAC FFmpeg pipeline with HLS VOD output and independent_segments.
  • Writes a master.m3u8 that references each variant, plus a variant index.m3u8 + .ts segments per rung.
  • Optionally generates WebVTT captions and storyboard scrubber thumbnails.
  • Bundles the result into media-manipulator-hls-<jobID>.tar.gz with a report.json and README.
  • Uploads the tarball to S3 and hands you back a short-lived presigned GET URL for download.

Why it matters

  • HLS is the de-facto streaming format on iOS, Safari, and every modern CDN.
  • A master playlist enables adaptive bitrate so viewers on slow connections get a watchable stream.
  • Pre-segmented VOD is far cheaper to serve than re-encoding on every request.

Common use cases

Course platforms

Serve lessons with adaptive bitrate on iOS/Android without a video service.

Marketing sites

Drop a polished hero video that doesn’t buffer on mobile data.

Internal portals

Host onboarding videos on your own CDN, no third-party SaaS.

Archival

Convert a back catalog into a streamable format you control.

Advanced details
  • HLS variants are encoded with -hls_time 2 -hls_playlist_type vod -hls_flags independent_segments.
  • Force keyframes are emitted every 2 seconds so segments align cleanly across renditions.
  • CODECS attribute is "avc1.640028" with "mp4a.40.2" appended when audio is present.
  • No upscaling: rungs taller than the source resolution are disabled with a tooltip.
  • When the source has no audio track, the audio mapping is omitted so video-only HLS still works.

Why Media Manipulator

  • Runs on our own servers — no third-party transcoding provider sees your video.
  • Free tier already covers the three rungs most products need (360p/480p/720p).
  • Open package format: just unzip the .tar.gz and host the master.m3u8.

Privacy & file handling

Your uploads are processed on our own servers and are designed to be automatically deleted within 24 hours. We do not share your files with third-party AI providers, and AI features run on a local GPU server we operate. No login or account is required.

Frequently asked questions

  • What codec is used?

    H.264 (libx264 High profile, level 4.1) for video and AAC LC for audio. The standard combo every HLS player supports.

  • Why are 144p, 240p, 1080p, and 2160p disabled?

    They’re part of a premium ladder we’ll unlock when Premium sign-up launches. For now the free tool encodes 360p, 480p, and 720p only.

  • What if my video has no audio?

    The variant playlists are encoded video-only. The master.m3u8 omits the AAC codec hint so players don’t expect an audio track.

  • Can I get captions in the master playlist?

    Captions are generated as a WebVTT file inside the tar.gz. Linking them as an EXT-X-MEDIA subtitle rendition in the master.m3u8 is on the roadmap.

  • How long does the download URL last?

    Presigned GET URLs are valid for 30 minutes by default. Re-run the transcode if you need a fresh link.

Related tools