Extract Audio from TS to AMR — Free Online Tool

Extract audio from MPEG-2 Transport Stream (.ts) broadcast files and convert it to AMR format using the libopencore_amrnb codec — optimized for speech and compatible with mobile telephony systems. Ideal for pulling voice content from broadcast recordings and compressing it into a compact, speech-tuned format.

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

TS files are broadcast containers that commonly carry AAC or AC3 audio alongside H.264 or H.265 video streams. This tool drops the video entirely using the -vn flag and re-encodes only the audio stream into AMR-NB (Adaptive Multi-Rate Narrowband) using the libopencore_amrnb codec. AMR-NB is a lossy, speech-optimized codec that operates at fixed bitrates between 4.75 kbps and 12.2 kbps — far lower than typical broadcast audio. The source audio (often AAC at 128–320 kbps) is fully decoded and then re-encoded at the selected AMR bitrate, which means this is a full transcode rather than a copy or remux. The resulting .amr file contains only the primary audio track, as AMR does not support multiple audio tracks.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the underlying engine that powers this browser-based tool via WebAssembly (FFmpeg.wasm). The same command runs identically on a desktop FFmpeg installation for files over 1GB.
-i input.ts Specifies the input MPEG-2 Transport Stream file. FFmpeg will parse the TS container and detect all available streams — typically H.264 or H.265 video plus one or more AAC or AC3 audio tracks from the broadcast.
-vn Disables video output entirely, discarding all video streams from the TS file. Since the target AMR format is audio-only, this flag ensures no video encoding is attempted, speeding up the conversion significantly.
-c:a libopencore_amrnb Sets the audio encoder to libopencore_amrnb, which encodes the audio as AMR Narrowband — a speech-optimized codec operating at 8 kHz sample rate used in mobile telephony. The source audio from the TS file (typically AAC or AC3) is fully decoded and re-encoded into this codec.
-b:a 12200 Sets the AMR-NB encoding bitrate to 12,200 bits per second (Mode 7), the highest quality mode available in AMR-NB. Unlike typical audio encoders, AMR-NB only accepts specific fixed bitrate values corresponding to its codec modes, and 12200 bps provides the most intelligible speech output.
output.amr Defines the output filename with the .amr extension, which tells FFmpeg to write a raw AMR file with the standard AMR file header. This format is directly playable on Android devices and many mobile telephony systems without additional wrapping.

Common Use Cases

  • Extracting speech segments from broadcast news recordings (.ts files from DVR systems) for use in voice-over telephony or IVR systems that require AMR format
  • Converting recorded conference calls or interviews captured as MPEG-TS streams into compact AMR files for archiving on mobile devices with limited storage
  • Pulling the commentary or narration track from a broadcast sports recording to create a lightweight audio file for playback on older mobile handsets that support AMR natively
  • Preparing voice content from broadcast TV recordings for integration into mobile apps that use AMR for in-app audio messaging features
  • Compressing speech-heavy audio from live streaming recordings (HLS/TS segments) into AMR for transmission over low-bandwidth mobile networks

Frequently Asked Questions

Yes — this conversion involves substantial quality reduction, and that is by design for specific use cases. AMR-NB is engineered exclusively for speech, operating at a maximum of 12.2 kbps compared to the AAC or AC3 audio in a typical TS file which may be 128–384 kbps. Music, ambient sound, and complex audio will sound noticeably degraded in AMR. If your TS file contains speech or voice content, AMR will reproduce it reasonably intelligibly, but it is not suitable for music or high-fidelity audio.
FFmpeg will select the default audio stream from the TS file, which is typically the first audio track. TS files from broadcast sources often carry multiple tracks — for example, stereo plus a secondary language track. Since AMR does not support multiple audio tracks, only one track will be included in the output. If you need a specific non-default track, you can modify the command to add -map 0:a:1 (or the appropriate track index) before the output filename to select a different audio stream.
This tool uses AMR-NB (Narrowband), encoded with libopencore_amrnb, which operates on an 8 kHz audio sample rate and is designed for standard voice telephony. AMR-WB (Wideband), encoded with libopencore_amrwb, uses a 16 kHz sample rate and delivers noticeably better speech clarity. AMR-NB is more universally compatible with older mobile devices and telephony infrastructure, making it the default choice. If your target system supports AMR-WB, you can modify the command by replacing libopencore_amrnb with libopencore_amrwb for higher-quality speech output.
Replace the value after -b:a in the command with one of the AMR-NB fixed bitrates: 4750, 5150, 5900, 6700, 7400, 7950, 10200, or 12200 (in bits per second, not kbps). For example, to use the lowest bitrate, change -b:a 12200 to -b:a 4750. Lower bitrates produce smaller files but with reduced speech intelligibility. The default of 12200 bps corresponds to the highest AMR-NB mode (Mode 7) and provides the best quality available within the AMR-NB codec.
Yes, on a desktop with FFmpeg installed you can use a shell loop to process multiple files. On Linux or macOS, run: for f in *.ts; do ffmpeg -i "$f" -vn -c:a libopencore_amrnb -b:a 12200 "${f%.ts}.amr"; done. On Windows Command Prompt, use: for %f in (*.ts) do ffmpeg -i "%f" -vn -c:a libopencore_amrnb -b:a 12200 "%~nf.amr". The browser-based tool on this page processes one file at a time, so the FFmpeg command is especially useful for bulk conversions of TS recordings.
No. AMR is a bare audio codec container with no support for subtitles, chapter markers, or rich metadata. Any subtitle streams, EPG data, or program information embedded in the TS file will be discarded during conversion. Metadata such as track title or artist may not carry over either, as AMR file headers have very limited metadata fields. If preserving subtitles or metadata is important, consider extracting the audio to a more feature-rich format like AAC in an M4A container instead.

Technical Notes

AMR-NB enforces a fixed 8 kHz sample rate, so if the source audio in the TS file is sampled at 44.1 kHz or 48 kHz (standard for AAC or AC3 broadcast audio), FFmpeg will automatically downsample it as part of the transcode. Stereo or multi-channel audio from the TS stream will also be downmixed to mono, since AMR-NB supports only single-channel audio. This makes the output file extremely compact — a 12.2 kbps AMR file is roughly 10–30 times smaller than a typical broadcast AAC stream — but at the cost of audio bandwidth and fidelity. The libopencore_amrnb encoder operates in fixed bitrate mode only; variable bitrate encoding is not available. AMR files use the .amr extension with a simple file header (#!AMR) and are natively playable on many Android and older Nokia/feature phone platforms. Note that TS files from DVR or broadcast sources may have slight timestamp discontinuities or stream errors that could affect the decoded audio; adding -fflags +discardcorrupt to the command can help skip corrupted packets in problematic recordings.

Related Tools