DocumentsImagesMediaPDF Tools

Convert TS (MPEG-TS) to MP4 Online

Convert TS files from DVR recordings, IPTV, and HLS to MP4 compatible with any player

Drag your file here

.ts, .mts, .m2ts · up to 100 MB

Processed in your browser — file never uploadedFree
Note: The first conversion loads the FFmpeg engine (~25MB). Subsequent conversions will be faster.

TS to MP4 in the browser

Total privacy

TS files are processed with FFmpeg.wasm locally. TV recordings never leave your device.

Stream copy available

Convert without re-encoding for maximum speed and zero quality loss when codec is compatible.

Multi-track support

Select audio language and subtitles from recordings with multiple broadcast tracks.

DVR compatible

Accepts recordings from DVB-T tuners, HDHomeRun cards, IPTV systems, and HLS segments.

Three steps, no hassle

1

Upload your TS file

Select the .ts, .mts, or .m2ts file from your DVR, tuner card, or IPTV system. Processing happens locally with FFmpeg.wasm.

2

Stream selection and options

If the TS contains multiple audio tracks or subtitles, select which ones to include. Choose between stream copy (fast, lossless) or re-encoding if you need to change the codec.

3

Download the resulting MP4

The generated MP4 preserves the original H.264/H.265 video or re-encodes it per your choice, with AAC audio and full compatibility with modern players.

Got questions?

MPEG-TS (MPEG Transport Stream, defined in ISO 13818-1) is a multiplexing format designed specifically for transmission over channels with possible errors and data loss, such as digital terrestrial TV (DVB-T, DVB-T2), satellite (DVB-S, DVB-S2), cable (DVB-C), and ATSC (American standard). Unlike MPEG-PS (Program Stream), designed for reliable storage, Transport Stream divides content into 188-byte packets with synchronization and error correction mechanisms that allow decoding even if intermediate packets are lost. This characteristic makes it ideal for broadcast but generates larger files than MP4 (up to 15-20% overhead from synchronization headers). Modern DVRs (TiVo, HDHomeRun, DVB-T recorders) save recordings directly as TS streams captured from the digital multiplex, without re-encoding.

All three are variants of the MPEG Transport Stream standard. .ts is the generic extension for standard MPEG-TS, used by digital TV recordings, IPTV, and HLS segments. .mts is the specific extension used by AVCHD (Advanced Video Codec High Definition) video cameras, the format jointly developed by Sony and Panasonic in 2006 for HD handheld cameras: .mts files contain H.264 in a TS stream with AVCHD-specific metadata variations. .m2ts (MPEG-2 Transport Stream) is the variant used in Blu-ray and by the same AVCHD cameras in some contexts: technically it adds a 4-byte timestamp before each standard 188-byte TS packet, resulting in 192-byte packets. FFmpeg handles all three formats transparently with the same process.

They use the same container format (MPEG-TS) but with very different content. HLS segments (HTTP Live Streaming, developed by Apple in 2009) are short-duration .ts files (typically 2-10 seconds) that form part of an adaptive stream described by an .m3u8 playlist. HLS video typically uses H.264 or H.265 at multiple resolutions/bitrates. TV recordings are full-length TS files of the program's duration, captured from the DVB multiplex with broadcast codecs (H.264, H.265, or MPEG-2 Video on older SD channels). To reassemble HLS segments: ffmpeg -i playlist.m3u8 -c copy output.mp4 downloads and concatenates the segments directly into MP4.

Broadcast TS files typically contain multiple audio tracks: original audio, dubbing, audio description (AD) for visually impaired viewers, and sometimes 5.1 surround. To identify available tracks: ffprobe -v quiet -print_format json -show_streams input.ts | grep -E 'codec|language|index'. To extract only the track at a specific index: ffmpeg -i input.ts -map 0:v:0 -map 0:a:1 -c copy output.mp4 (where :1 is the desired audio track index). To extract by language (if metadata is present): ffmpeg -i input.ts -map 0:v -map 0:a:m:language:eng -c copy output.mp4. DVB subtitles are extracted with: ffmpeg -i input.ts -map 0:s output.srt or to SUP format for Blu-ray.

Yes, and it is the recommended method when the TS contains H.264 or H.265 and you only need to change the container. The FFmpeg command is: ffmpeg -i input.ts -c copy output.mp4. This operation is virtually instantaneous because there is no decoding or re-encoding: FFmpeg simply repackages the streams into a new container. The most common caveat is that some broadcast TS files have discontinuous timestamps (from commercial breaks, channel changes) that can confuse the MP4 player. In that case: ffmpeg -i input.ts -c copy -avoid_negative_ts make_zero output.mp4 normalizes the timestamps. For TS with MPEG-2 Video (old SD channels), mandatory re-encoding to H.264 is required as MP4 does not support MPEG-2 Video natively in most players.

The most common issues when converting DVR TS to MP4 are: (1) Discontinuous timestamps: DVB-T recorders sometimes capture the stream with interruptions creating timestamp jumps; solution: add -fflags +genpts to the FFmpeg command. (2) AC3/Dolby audio: European DVB-T recordings frequently use AC3 (Dolby Digital) which is not compatible with all MP4 players; re-encoding audio with -c:a aac solves the problem. (3) Partial streams: if the recording was interrupted, the TS file may be incomplete; FFmpeg has the -ignore_unknown option to attempt recovery of whatever is possible. (4) Multiple programs: a single TS can contain multiple TV channels (like the original multiplex); use -map 0:p:N where N is the Program ID of the desired channel.

MPEG Transport Stream: DVB digital broadcast history, HLS, DVR recordings, and MP4 conversion

MPEG Transport Stream (MPEG-TS, ISO/IEC 13818-1) was defined in 1995 as part of the MPEG-2 standard, designed to solve a specific problem in digital transmissions: how to multiplex multiple TV programs, audio, and data into a single digital transmission channel with synchronization guarantees and error tolerance. The choice of 188-byte packet size was not arbitrary: it corresponds to the ATM (Asynchronous Transfer Mode) cell size of that era plus 4 bytes of TS header, optimizing transmission over existing telecommunications networks. The DVB (Digital Video Broadcasting) standard, adopted in Europe in 1997 with the first DVB-S satellite transmission, chose MPEG-TS as the standard multiplexing format for the entire DVB family: DVB-T (terrestrial, 1998), DVB-C (cable, 1998), DVB-S2 (second generation satellite, 2003), DVB-T2 (second generation terrestrial, 2008), and DVB-H (mobile, 2004). The transition from analog to digital television in the UK completed in October 2012, and across European countries between 2007 and 2015. This massive digitalization generated an enormous ecosystem of DVR recorders and DVB-T tuner cards that generate TS files as the native recording format.

The digital TV recording ecosystem is more diverse and technically rich than it might appear. For capture hardware: HDHomeRun (SiliconDust) is the leader in network tuner cards, with models supporting DVB-T2, ATSC, ATSC 3.0, and CableCARD. Recordings generate TS files directly. For PVR software: MythTV (open source, Linux, founded 2002) was the first complete digital TV recording system for personal computers; Kodi + TVHeadend is the most popular combination for HTPCs currently; Plex DVR integrates recording directly into the media server. For dedicated hardware: set-top boxes with recording (TiVo, Humax, Philips) store internally in TS with operator DRM. HLS (HTTP Live Streaming), developed by Apple in 2009 and standardized as RFC 8216 in 2017, uses TS segments as the transport unit. An HLS stream consists of an .m3u8 file (playlist) referencing multiple .ts files of 2-10 seconds duration. Platforms like YouTube, Netflix, and most streaming services have adopted MPEG-DASH as an alternative to HLS, using MP4 fragments instead of TS. However, HLS with TS remains prevalent in live streaming and IP television broadcast.

For TS to MP4 conversion with FFmpeg, the optimal workflow depends on the TS content. Prior identification: ffprobe -v error -show_streams -show_format input.ts provides complete information about codecs, languages, and programs. For direct conversion with stream copy (H.264/H.265 in TS): ffmpeg -i input.ts -map 0:v:0 -map 0:a:0 -c copy output.mp4. For TS with MPEG-2 Video (SD channels): ffmpeg -i input.ts -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k output.mp4. For handling discontinuous timestamps (DVR recordings): ffmpeg -fflags +genpts -i input.ts -c copy output.mp4. For AVCHD (.mts) with H.264 High Profile: ffmpeg -i input.mts -c:v copy -c:a aac -strict experimental output.mp4. For multiple programs in a TS (DVB multiplex): first identify with ffprobe -show_programs, then: ffmpeg -i input.ts -map 0:p:1701 -c copy channel1.mp4 (where 1701 is the Program ID). To extract DVB Teletext subtitles to SRT: ffmpeg -i input.ts -map 0:s:0 subtitles.srt. For partial TS file corruption, the -err_detect ignore_err flag can recover playable segments from the damaged file.