Convert HEVC to TS — Free Online Tool
Convert HEVC/H.265 files to MPEG-2 Transport Stream (TS) format, re-encoding the video to H.264 (libx264) with AAC audio — making your high-efficiency video compatible with broadcast systems, HLS streaming pipelines, and hardware players that don't support H.265 decoding.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your HEVC file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
HEVC (.hevc) files contain a raw H.265 video bitstream without a traditional container wrapper, meaning they carry no audio tracks, subtitles, or metadata. During this conversion, FFmpeg decodes the H.265 bitstream and re-encodes it into H.264 using libx264 at CRF 23, which is a full transcode — not a remux. The resulting video is wrapped in an MPEG-2 Transport Stream (.ts) container alongside a new AAC audio track (128k by default, though your source has no audio, so the AAC stream will be silent or absent depending on FFmpeg's behavior). The TS container is specifically structured for streaming and broadcast, using fixed-size packets that allow decoders to resync after transmission errors — a property raw HEVC files completely lack.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary. This command runs entirely in your browser via FFmpeg.wasm (WebAssembly) — no data is sent to a server. The same command can be run locally in a terminal with FFmpeg installed for files over 1GB. |
-i input.hevc
|
Specifies the input file — a raw HEVC elementary stream containing a bare H.265 video bitstream with no container, no audio, and no metadata. FFmpeg detects the H.265 bitstream directly from the file content. |
-c:v libx264
|
Transcodes the video stream using the libx264 encoder, converting the H.265 content to H.264/AVC. This is a full decode-and-reencode operation that trades H.265's compression efficiency for broad compatibility with TS-based broadcast and streaming systems. |
-c:a aac
|
Sets the audio codec to AAC for the output TS file. Since raw HEVC files contain no audio track, this flag effectively has no audio source to encode from — the output TS will contain only a video stream unless an audio source is explicitly provided. |
-crf 23
|
Sets the Constant Rate Factor for the libx264 H.264 encode to 23, which is the libx264 default and represents a high-quality, visually transparent encode. Lower values (e.g., 18) increase quality and file size; higher values (e.g., 28) reduce both. |
-b:a 128k
|
Targets an AAC audio bitrate of 128 kilobits per second — a standard quality level for stereo audio in broadcast and streaming TS files. This setting is present in the command for completeness, but will have no effect since the HEVC source contains no audio. |
output.ts
|
Defines the output filename with a .ts extension, which signals FFmpeg to use the MPEG-2 Transport Stream muxer. The TS container wraps the H.264 video in the 188-byte packetized structure required by broadcast and HLS streaming systems. |
Common Use Cases
- Preparing H.265 encoded video from a camera or encoder for ingest into an HLS streaming workflow, which requires H.264 in a TS container for segment compatibility
- Broadcasting raw HEVC footage through systems that mandate MPEG-2 Transport Stream delivery, such as digital TV broadcast chains or IPTV headend equipment
- Converting H.265 clips for playback on older Smart TVs, set-top boxes, or Blu-ray players that support TS containers but lack H.265 hardware decode capability
- Packaging raw H.265 surveillance or drone footage into TS format for ingestion into video management software that requires Transport Stream input
- Re-encoding high-efficiency HEVC content to H.264/TS for editing in broadcast-focused NLEs like Avid Media Composer that natively handle TS streams
- Transcoding raw .hevc files to a streaming-friendly format for upload to platforms or CDNs that use HLS pipelines built around H.264 in Transport Stream segments
Frequently Asked Questions
Raw HEVC files contain a naked H.265 bitstream that could technically be placed into a TS container, but most broadcast and streaming systems that use TS expect H.264 (AVC) video, not H.265. The TS container does support H.265, but compatibility is far narrower. This tool re-encodes to H.264/libx264 to ensure the output works across the broadest range of TS-based pipelines, players, and broadcast equipment. The tradeoff is that H.264 at equivalent quality produces larger files than H.265.
Yes, some generation loss is unavoidable because the video is decoded from H.265 and re-encoded into H.264 — two separate lossy compression stages. H.264 at CRF 23 is visually high quality for most content, but because H.265 is inherently more efficient, the H.264 output will be noticeably larger (roughly 40–60%) than the original HEVC file at equivalent visual quality. If your source HEVC was already at a high CRF, compounding artifacts are possible. Lower the CRF value (e.g., 18) if quality preservation is the priority.
Raw .hevc files are video-only bitstreams with no audio track. When FFmpeg processes this conversion and finds no audio input, it will typically produce a TS file with only a video stream — the AAC audio codec flag will simply find nothing to encode. The output TS file will be playable but silent. If you need audio in the output, you can modify the FFmpeg command to add a silent audio track using '-f lavfi -i anullsrc' as an additional input before the output, or supply a separate audio file.
The CRF value controls the quality-to-size tradeoff for the H.264 output. Lower CRF values mean higher quality and larger files — CRF 18 is considered visually lossless for H.264, while CRF 28 produces smaller files with more compression. Change '-crf 23' in the command to your desired value, for example: 'ffmpeg -i input.hevc -c:v libx264 -c:a aac -crf 18 -b:a 128k output.ts'. The valid range for libx264 is 0 (lossless) to 51 (lowest quality), with 23 being the default.
HEVC in MPEG-2 TS is defined in standards like DVB and ATSC 3.0, so it is technically valid. However, real-world support is inconsistent — many HLS players, broadcast decoders, and streaming CDNs that accept TS input still expect H.264. Choosing H.264 as the output codec ensures maximum compatibility across the widest range of TS-consuming systems. If you specifically need H.265 in a TS wrapper, you can modify the command to '-c:v libx265' and be aware that compatibility with downstream systems should be verified.
Yes. On Linux or macOS, you can loop over files with: 'for f in *.hevc; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.hevc}.ts"; done'. On Windows Command Prompt use: 'for %f in (*.hevc) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.ts"'. This is especially useful for files over 1GB, which exceed the browser tool's limit but run without restriction in a local FFmpeg installation.
Technical Notes
Raw HEVC (.hevc) files are a bare elementary stream — they contain only the compressed H.265 video data with no container structure, no audio, no timestamps, and no metadata. This distinguishes them from .mp4 or .mkv files that happen to use H.265 as their video codec. The MPEG-2 Transport Stream output is a packetized container designed around 188-byte fixed-size packets, originally developed for error-resilient broadcast transmission. This structure makes TS ideal for HLS (HTTP Live Streaming), where video is segmented into short chunks — each chunk must be independently decodable, and the TS container's packet structure facilitates this. The H.264 transcode uses libx264 with CRF 23, which is a variable bitrate encode targeting a specific quality level rather than a fixed bitrate; this is the right choice for file-based delivery. TS does support H.265, multiple audio tracks, and subtitles in its specification, but H.264 is used here as the default for maximum compatibility. Notably, the TS container does not support chapters. Because the source is a raw HEVC elementary stream, no metadata (creation date, encoder tags, GPS data) will be present to carry forward into the output.