Free HLS Transcoder Online — Convert Any Video to Multi-Bitrate ABR HLS
Generate a complete HTTP Live Streaming (HLS) adaptive bitrate package from any video file —
entirely in your browser. This free tool encodes up to 5 renditions
(1080p, 720p, 480p, 360p, 240p) using H.264 + AAC via FFmpeg WASM,
produces per-rendition .m3u8 playlists, MPEG-TS segments, and a
standards-compliant master manifest ready to upload to any CDN —
AWS CloudFront, Cloudflare R2, Akamai, Bunny CDN, or self-hosted Nginx.
HLS Multi-Bitrate Video Transcoder
Upload Video to Transcode
Drag & drop your video here, or click to browse
MP4, WebM, MOV, AVI, MKV supported
What Is HLS Adaptive Bitrate (ABR) Streaming?
HLS (HTTP Live Streaming) is the video streaming protocol developed by Apple, now universally supported across browsers (Chrome, Firefox, Safari, Edge), mobile platforms (iOS, Android), smart TVs, CDNs, and streaming services including YouTube, Twitch, and Netflix. Unlike progressive download which delivers a single video file, HLS splits the video into short MPEG-TS segments (typically 2–10 seconds each) and serves a text-based M3U8 playlist that tells the player which segments to fetch next.
An adaptive bitrate (ABR) ladder packages the same video at multiple resolutions and bitrates
simultaneously — for example: 1080p at 4,500 kbps, 720p at 2,800 kbps, 480p at 1,400 kbps, 360p at 800 kbps.
A master manifest (master.m3u8) lists all available renditions with their
BANDWIDTH, RESOLUTION, and CODECS attributes. The player (HLS.js, Video.js, Shaka Player, or native Safari)
automatically measures the viewer's available bandwidth every few seconds and switches to the highest-quality
rendition that can play without buffering — delivering smooth, stall-free video on any connection.
This tool generates a complete, standards-compliant HLS ABR package:
one .m3u8 playlist and all .ts segments per rendition,
plus a master manifest — all ready to upload to AWS S3 + CloudFront, Cloudflare R2,
Akamai, Bunny CDN, or any web server.
Recommended HLS Bitrate Ladder (Reference Table)
The defaults in this tool follow Apple's HLS Authoring Specification and industry best practices for adaptive streaming. Use this as a reference when configuring your renditions:
| Rendition | Resolution | Video Bitrate | Audio Bitrate | H.264 Profile | Target Audience | ~MB/min |
|---|---|---|---|---|---|---|
| 1080p | 1920 × 1080 | 4,500 kbps | 192 kbps | High / L4.0 | Broadband (≥ 6 Mbps) | ~35 MB |
| 720p | 1280 × 720 | 2,800 kbps | 128 kbps | Main / L3.1 | Good Wi-Fi (≥ 4 Mbps) | ~22 MB |
| 480p | 854 × 480 | 1,400 kbps | 128 kbps | Main / L3.1 | Mobile 4G (≥ 2 Mbps) | ~12 MB |
| 360p | 640 × 360 | 800 kbps | 96 kbps | Baseline / L3.0 | Mobile 3G (≥ 1 Mbps) | ~7 MB |
| 240p | 426 × 240 | 400 kbps | 64 kbps | Baseline / L3.0 | Slow connection (≥ 512 kbps) | ~3.5 MB |
* Bitrates are for typical 30fps content. For 60fps, increase video bitrate by ~30%. Segment duration of 6 seconds is assumed for MB/min estimates.
Who Uses This HLS Transcoder?
Full Feature List
master.m3u8 includes BANDWIDTH, AVERAGE-BANDWIDTH, RESOLUTION, CODECS, and NAME attributes per the HLS spec (RFC 8216).force_key_frames expression, ensuring clean segment cuts and reliable ABR switching.720p/720p.m3u8, 720p/720p_0001.ts, …) matching the paths in the master manifest.master.m3u8 and each per-rendition playlist before downloading — useful for verifying correctness.Step-by-Step Guide
Upload Your Source Video
Click Choose Video File or drag and drop your file onto the upload zone. Supports MP4, MOV, WebM, AVI, MKV, FLV. The file is read into browser memory — nothing is uploaded to any server.
Select Renditions
Renditions at or below your source resolution are pre-selected. Deselect any you don't need. Adjust the video kbps and audio kbps fields to match your CDN cost or quality targets.
Configure HLS Settings
Set segment duration (6s recommended for VOD), choose an encoding preset (veryfast = best speed/size balance in browser), and leave HLS version at 3 for widest device compatibility.
Start Transcoding
Click Start Transcoding. FFmpeg WASM encodes each rendition in sequence. Per-rendition and overall progress bars update in real time. Estimated time remaining is shown after 5 seconds.
Preview & Download ZIP
When complete, review the generated manifests in the expandable preview panels, then click Download ZIP. The ZIP contains master.m3u8 and all per-rendition subdirectories.
Deploy to CDN or Server
Extract and upload the ZIP contents to S3, Cloudflare R2, or Nginx. Set Access-Control-Allow-Origin: * on your server. Point HLS.js or Video.js at master.m3u8.
Privacy & Security Guarantees
Frequently Asked Questions
.ts) with HLS playlists (.m3u8).s3://my-bucket/videos/my-video/). 3) On the S3 bucket CORS configuration, add a rule allowing GET from your domain. 4) Create a CloudFront distribution pointing to the S3 bucket. 5) In your web page, load HLS.js and point it at https://d1234.cloudfront.net/videos/my-video/master.m3u8. The player will auto-select renditions based on viewer bandwidth./var/www/html/videos/my-video/). For Nginx, add a CORS header block: add_header Access-Control-Allow-Origin *;. For Apache, add Header set Access-Control-Allow-Origin "*" inside the relevant <Directory> block. Then point HLS.js at https://yourdomain.com/videos/my-video/master.m3u8..m3u8 playlists and .ts segments. It has native support in Safari and iOS, and broad support everywhere else via HLS.js. MPEG-DASH is an ISO standard using .mpd manifests and fragmented MP4 segments — slightly more efficient but requires a JavaScript player everywhere (no native browser support). For broadest compatibility with the least setup effort, HLS is the recommended choice.