Convert TS to M4A — Free Online Tool

Extract and convert audio from MPEG-2 Transport Stream (.ts) broadcast files into M4A, encoding the audio as AAC inside an MPEG-4 container — ideal for pulling clean audio from TV recordings, live stream captures, or HLS segments. The video stream is discarded entirely, producing a compact, iTunes-compatible audio file ready for playback, podcasting, or archiving.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

MPEG-2 Transport Stream files typically carry multiplexed video and audio streams designed for broadcast delivery, often with AC-3, AAC, or MP3 audio alongside H.264 or H.265 video. During this conversion, FFmpeg demuxes the .ts container, discards all video streams entirely (via the -vn flag), and re-encodes the extracted audio as AAC at 128k bitrate, then wraps it in an MPEG-4 audio container (.m4a). If the source audio in the .ts file is already AAC, some quality is still lost in the re-encode — there is no stream copy happening here because the M4A container requires proper MPEG-4 framing that differs from the TS packetization. The result is a standalone audio file stripped of broadcast metadata overhead and transport stream padding.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine running here via WebAssembly in your browser. All processing happens locally; no data leaves your machine.
-i input.ts Specifies the input MPEG-2 Transport Stream file. FFmpeg demuxes the .ts container, making its internal video, audio, and data streams available for processing or discard.
-c:a aac Sets the audio codec to AAC (Advanced Audio Coding) for the output. This re-encodes whatever audio codec was in the source .ts file — whether AC-3, MP2, or existing AAC — into AAC formatted correctly for the MPEG-4 container.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, a standard quality level suitable for speech, podcasts, and general listening. Increase this value (e.g., 192k or 256k) when converting music or high-fidelity broadcast audio.
-vn Disables video output entirely, instructing FFmpeg to skip all video streams from the .ts file. This is essential for producing an audio-only M4A file and avoids any attempt to encode or copy the H.264/H.265 video track into a container that does not support it.
output.m4a Defines the output file as an M4A — an MPEG-4 audio container. The .m4a extension signals to FFmpeg to use the MP4 muxer in audio-only mode, producing a file compatible with iTunes, Apple Music, iOS, and most modern media players.

Common Use Cases

  • Extract the audio track from a recorded over-the-air TV broadcast (.ts from a DVR or HDHomeRun) to save a radio drama, documentary narration, or music performance as a portable audio file
  • Pull the audio from a recorded live stream or HLS capture to create a podcast episode or audio-only archive of a webinar or live event
  • Convert a .ts file recorded from a set-top box into an M4A to import into iTunes or Apple Music for offline listening on an iPhone or iPad
  • Strip the audio from broadcast news footage stored as .ts files for transcription, captioning workflows, or speech-to-text processing
  • Reduce storage size of large broadcast recordings by discarding the video and keeping only the audio commentary or soundtrack as a compact M4A
  • Prepare audio extracted from HLS-compatible .ts segments for upload to a podcast hosting platform that requires AAC-encoded M4A files

Frequently Asked Questions

Yes, there will be a generation of quality loss. Most broadcast .ts files carry AC-3 (Dolby Digital) or sometimes AAC audio, and this conversion re-encodes that audio to AAC at 128k bitrate regardless of the source codec. If the source is AC-3 at 384k or higher, you are decoding a lossy format and re-encoding to another lossy format, which introduces additional compression artifacts. To minimize loss, increase the output bitrate to 192k or 256k by adjusting the -b:a flag before converting.
It depends on the source audio codec. If the .ts file contains AAC audio, it is theoretically possible to stream-copy it (using -c:a copy) into M4A since both containers support AAC — though the ADTS framing used in transport streams must be converted to the LATM/raw framing expected in MPEG-4, which FFmpeg handles automatically on remux. However, if the source audio is AC-3, MP2, or MP3 — all common in broadcast TS files — those codecs are not supported in the M4A container, making re-encoding to AAC mandatory.
Broadcast-specific metadata embedded in the MPEG-2 Transport Stream, such as program map tables (PMT), service information, and EPG data, is not carried over into the M4A file. Standard audio tags like title or artist are also unlikely to transfer unless your .ts file was recorded with ID3 tags or similar. The M4A format supports iTunes-style metadata (title, artist, album, etc.), but you would need to add those tags separately after conversion using a tool like MusicBrainz Picard or FFmpeg's -metadata flag.
By default, FFmpeg selects the first audio stream it encounters in the .ts file, which is typically the primary language track. Since M4A supports only a single audio track, only one stream can be included in the output. If you need a specific language track, you can target it by adding -map 0:a:1 (for the second audio stream) to the FFmpeg command before the output filename, replacing the index number as needed.
Replace the 128k value in the -b:a 128k flag with your desired bitrate. For example, use -b:a 192k for a good balance of quality and file size, or -b:a 256k for near-transparent AAC quality suitable for music recordings. The command would become: ffmpeg -i input.ts -c:a aac -b:a 256k -vn output.m4a. For speech-only content like news or podcasts, 96k is often sufficient.
Yes. On Linux or macOS, you can use a shell loop: for f in *.ts; do ffmpeg -i "$f" -c:a aac -b:a 128k -vn "${f%.ts}.m4a"; done. On Windows Command Prompt, use: for %f in (*.ts) do ffmpeg -i "%f" -c:a aac -b:a 128k -vn "%~nf.m4a". Each .ts file in the directory will be processed individually and saved as a corresponding .m4a file, which is useful for bulk-converting a folder of DVR recordings.

Technical Notes

MPEG-2 Transport Streams are designed for robust broadcast delivery, using fixed-size 188-byte packets with error correction overhead — meaning .ts files are often significantly larger than their actual audio/video content warrants. Extracting only the audio as M4A eliminates all of this transport overhead and video data, typically reducing file size by 90% or more depending on video bitrate. The AAC encoder used here is FFmpeg's native AAC implementation, which produces compliant MPEG-4 AAC-LC audio suitable for all major platforms including iOS, Android, macOS, and Windows. M4A technically supports chapter markers, which can be useful if you are archiving a segmented broadcast, but this tool does not inject chapter data from the source TS. Subtitle streams present in the .ts file (such as DVB subtitles or teletext) are also discarded, as M4A has no subtitle support. One known limitation: some .ts files recorded from encrypted broadcast streams or DRM-protected sources may fail to decode correctly — this is a content restriction, not a format issue. Timestamp discontinuities common in live-stream .ts captures can occasionally cause audio sync drift; if you encounter this, adding -async 1 to the command can help resync the audio during encoding.

Related Tools