Your files stay on your Mac.
Convertessa hands your transport streams to FFmpeg, reads the program tables to find the video and audio inside, and writes them into an MP4 carrying the sample index broadcast recordings never had. Drop one DVR capture or a folder of them, set quality when you want the output smaller than the original, and everything runs on your Mac. The finished MP4 opens in QuickTime, Photos, Final Cut and Safari.
A .ts file is not really a document format — it is a broadcast pipe written to disk. MPEG-TS chops audio and video into fixed 188-byte packets, tags each one with a stream ID, and repeats its program tables every few hundred milliseconds so a tuner joining halfway through a football match can still work out what it is receiving. That design is why ATSC and DVB broadcasts, DVR captures, IPTV feeds and HLS segments all arrive as transport streams.
It is also why a .ts is awkward on a Mac. There is no index. Nothing at the front of the file states the duration or says where frame 40,000 begins, so a player scrubbing that timeline is guessing. MP4 stores a moov atom — a sample table listing every frame's size, offset and timestamp — which is why seeking in the result is exact, and why QuickTime and Photos will open it at all.
The classic gotcha is the timestamp discontinuity. Recorders that started mid-broadcast, or dropped packets during an ad break, leave gaps in the 90 kHz clock; FFmpeg, which does the work here, reports non-monotonic timestamps and either shifts or drops the affected frames. A capture with signal dropouts can land slightly shorter than the recorder claimed, or carry a lip-sync jump at the seam, so play that seam once before deleting the original.
Drag .ts captures, a whole DVR folder, or an evening of HLS segments into the queue. Convertessa reads each transport stream's program tables to work out which video and audio streams it actually carries.
Choose MP4 as the target. It is a lossy target, so a quality value applies: keep it at max for archive copies of broadcast material, and lower it when the recording is only going to a phone.
FFmpeg writes the MP4 with a full sample table, so the timeline becomes properly scrubbable. On captures that lost signal mid-recording, play the join once before you delete the source .ts.
Images, audio, video, documents, archives, eBooks and fonts — all converted natively, right on your Mac.
Pick a format you have — see everything Convertessa can turn it into.
Convert hundreds of files at once with per-type group defaults and individual overrides.
First-class support for HEIC, AVIF and WebP — encode and decode, both ways. Read JPEG XL and a dozen more modern formats too.
Drop files anywhere on the window. Native, instant, and exactly what you’d expect on a Mac.
Dial in compression, resolution and bitrate. Keep originals pristine or shrink for sharing.
Never overwrite a file by accident. Convertessa appends safe suffixes automatically.
Every job is logged locally. Re-run a previous conversion or revisit recent outputs in a click.
Bundle your converted files straight into a single ZIP, TAR or 7z — packaged and ready to share the moment a job finishes.
Right-click any file in Finder and choose Convert. A Quick Action handles it on the spot — no need to open the app first.
Shrink Convertessa to a tidy mini window that tucks into a corner — just a drop zone and a format picker for quick, one-off conversions.
No cloud. No account. No upload. Every conversion happens entirely on-device, using the power already in your Mac. What you convert is nobody’s business but yours.
Script conversions, wire them into your build, or batch a folder from the terminal. The same engine, no GUI required.
Read the full CLI documentation →Shrink Convertessa down to a small, focused window — drop, convert, done, with your recent conversions one click away.
macOS 14+ · Apple Silicon & Intel
New formats, new features, and fixes — every release, on the record.
QuickTime and Photos read a short list of containers — MP4, MOV, M4V — and MPEG-TS is not on it, even when the H.264 video inside is something they play perfectly well. The codec was never the problem; the packaging was. VLC and IINA parse transport streams directly, which is why the same file plays there and nowhere else. Converting to MP4 puts the identical picture into a container macOS understands.
Transport streams and MP4 hold the same codec family — H.264, HEVC, AAC — so the fundamental change is the packaging and the index rather than the nature of the picture. The quality value governs how much detail the encoder keeps: the CLI defaults to max, and the presets run web, balanced, high, max. Stay at the top for anything you intend to archive.
That is interlacing, and it arrived with the broadcast. Most 1080i and 576i television is transmitted as two half-height fields per frame; a TV set weaves them, most Mac players do not. MP4 stores those interlaced frames exactly as the transport stream held them, so the combing is in the source rather than something conversion introduced. Convertessa does not deinterlace — a video editor with a deinterlace filter is the tool for that job.
A little. Every 188-byte transport packet spends four bytes on its header, and the program tables are retransmitted continuously so a tuner can lock on at any moment. That overhead is typically a few percent of a broadcast recording, and it disappears in MP4, which stores its index once. Any larger reduction comes from the quality value you chose, not from the container change itself.
No. Convertessa converts file to file, so 400 segments produce 400 MP4s; it does not join media together. The batch itself is one command:
convertessa ~/Downloads/stream/*.ts --to mp4 -o ~/Movies/Converted
If you want a single continuous video, join the segments first with a tool built for that, then convert the joined file.
Because the original never stated one. A transport stream has no header field for length, so players estimate it from whatever timestamps they see — and the estimates differ between VLC, Finder and your recorder. MP4 records the real duration in its moov atom, so the number on the output is usually the accurate one. Transport-stream timestamps also wrap around roughly every 26 hours, which can confuse very long continuous captures.
It depends which kind your broadcaster sent. North American EIA-608 and CEA-708 captions live inside the H.264 video stream itself, so they travel with the picture. European DVB subtitles are bitmap images carried as their own stream, and MP4 has no equivalent track type for them. Check the output before archiving the source: to a viewer the two systems look identical, but only one of them survives this conversion.