Convert TS to AAC — Free Online Tool

Extract and convert audio from MPEG-2 Transport Stream (.ts) broadcast files into AAC, a widely compatible lossy audio format. This tool strips the video and any subtitle streams, outputting a standalone .aac file using the native FFmpeg AAC encoder at 128k bitrate — ideal for isolating audio from broadcast recordings or live stream captures.

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 used in broadcast and live streaming typically carry multiplexed video, audio, and sometimes subtitle streams bundled together. During this conversion, FFmpeg demuxes the .ts container to extract only the audio stream, discards the video and subtitle data entirely, and re-encodes the audio using the AAC codec. Because TS files commonly carry audio in AC-3, MP2, or AAC formats depending on the broadcast source, re-encoding to AAC is almost always necessary rather than a simple stream copy — the encoder normalizes the output into a clean, standalone .aac file. The result is a pure audio file with no container overhead beyond a basic AAC bitstream.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg command-line tool, which handles the demuxing of the .ts broadcast container, decoding of the source audio stream, and re-encoding to AAC output.
-i input.ts Specifies the input MPEG-2 Transport Stream file. FFmpeg will parse the TS container, identify all multiplexed streams (video, audio, subtitles, PAT/PMT tables), and make them available for mapping — in this case only the audio stream will be used.
-c:a aac Sets the audio codec to FFmpeg's built-in AAC encoder. This re-encodes whatever audio codec is present in the source .ts file — whether AC-3, MP2, or existing AAC — into a fresh AAC bitstream suitable for the output .aac file.
-b:a 128k Sets the target audio bitrate to 128 kilobits per second. For AAC, 128k is a standard default that delivers good quality for stereo audio derived from broadcast sources, balancing file size against audible fidelity.
output.aac Specifies the output filename with the .aac extension, which tells FFmpeg to write a raw ADTS-framed AAC bitstream. This is a containerless audio file, distinct from .m4a which wraps AAC inside an MP4 container with fuller metadata support.

Common Use Cases

  • Extracting the audio commentary track from a recorded over-the-air TV broadcast captured as a .ts file
  • Pulling the audio from an HLS live stream segment recorded in .ts format for archiving or transcription
  • Isolating a music performance or audio segment from a broadcast .ts recording to play on an AAC-compatible device like an iPhone or iPod
  • Converting broadcast audio from a .ts DVR recording into AAC for uploading as a podcast episode or audio clip
  • Stripping audio from a .ts file captured by a TV tuner card to create a lightweight audio-only file for review without the large video payload
  • Preparing extracted broadcast audio in AAC format for use in iTunes, Apple Music libraries, or iOS apps that natively support AAC

Frequently Asked Questions

Yes, this is a lossy conversion in almost all cases. Broadcast .ts files typically carry audio encoded as AC-3 (Dolby Digital), MP2, or sometimes AAC at various bitrates. Re-encoding any of these to AAC at 128k introduces a generation of lossy compression. If your source .ts file already contains AAC audio, a stream copy (-c:a copy) would preserve the original quality, but that outputs a raw AAC bitstream anyway — so re-encoding at a matching or higher bitrate keeps quality degradation minimal and practically inaudible.
No. MPEG-2 Transport Streams store metadata in specialized broadcast structures like PAT, PMT, and PSIP tables, which have no equivalent in a raw AAC bitstream. The output .aac file will not carry title, artist, timestamps, or any broadcast-specific metadata. If metadata preservation matters, consider outputting to a container format like .m4a (which wraps AAC in an MP4 container) instead, where ID3-style tags can be embedded.
By default, FFmpeg selects the first audio stream it identifies in the .ts file, which is usually the default or primary language track. If you need a specific audio track — for example, the second audio stream — you can modify the command to add a stream selector: ffmpeg -i input.ts -map 0:a:1 -c:a aac -b:a 128k output.aac, where '0:a:1' selects the second audio track (zero-indexed). Raw .aac files cannot contain multiple audio tracks, so only one stream can be extracted per output file.
Change the value after -b:a in the command. For higher quality, use values like 192k or 256k — for example: ffmpeg -i input.ts -c:a aac -b:a 192k output.aac. For a smaller file at reduced quality, use 96k or 64k. AAC is generally efficient enough that 128k produces near-transparent audio for most broadcast content, but 192k is recommended if the source was originally high-bitrate AC-3 surround audio being downmixed to stereo.
Yes, libfdk_aac is widely considered to produce higher-quality AAC output than FFmpeg's built-in aac encoder, particularly at lower bitrates like 96k–128k. To use it, replace -c:a aac with -c:a libfdk_aac in the command: ffmpeg -i input.ts -c:a libfdk_aac -b:a 128k output.aac. However, libfdk_aac is not included in most pre-built FFmpeg binaries due to licensing restrictions, so you may need to compile FFmpeg with --enable-libfdk-aac or use a third-party build that includes it.
Yes, you can process multiple files using a shell loop. On Linux or macOS: for f in *.ts; do ffmpeg -i "$f" -c:a aac -b:a 128k "${f%.ts}.aac"; done. On Windows Command Prompt: for %f in (*.ts) do ffmpeg -i "%f" -c:a aac -b:a 128k "%~nf.aac". Each .ts file in the directory will be converted to a corresponding .aac file. This is especially practical for processing large batches of recorded broadcast segments or HLS chunks that exceed the 1GB browser-based limit of the online tool.

Technical Notes

MPEG-2 Transport Streams are designed for broadcast environments and can carry audio in several codecs — most commonly AC-3 (Dolby Digital) for North American ATSC broadcasts, MPEG-1 Layer II (MP2) for DVB broadcasts in Europe, or AAC for digital radio and some streaming applications. This conversion always re-encodes to AAC regardless of the source codec, since the output is a raw AAC bitstream rather than a container that could hold a stream copy. A raw .aac file (as opposed to .m4a) is an ADTS-framed AAC bitstream with no container wrapper, which means it has limited metadata support and no chapter or subtitle capability. The native FFmpeg aac encoder used here is a solid general-purpose choice, but it does not support multi-channel surround encoding beyond 5.1 without additional flags, so AC-3 surround source audio from broadcast TS files will be downmixed to stereo by default. If your TS source has very high-bitrate AC-3 (e.g., 384k or 640k Dolby Digital 5.1), consider bumping the output bitrate to 192k or 256k to better preserve perceived audio quality after downmixing.

Related Tools