Convert TS to WEBA — Free Online Tool

Extract and convert the audio track from a MPEG-2 Transport Stream (.ts) file into a WEBA file encoded with the Opus codec — a modern, highly efficient lossy audio format optimized for web delivery. This is ideal for pulling broadcast or streaming audio out of a TS container and producing a lightweight, browser-native audio file.

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 are broadcast-oriented containers that typically carry multiplexed video, audio, and sometimes subtitle streams. During this conversion, FFmpeg discards all video streams entirely using the -vn flag and extracts only the audio track. That audio — which in a TS file is commonly AAC, AC-3, or MP3 — is then transcoded (re-encoded) into Opus format and wrapped in the WEBA container (an audio-only variant of the WebM format). Because Opus is a fundamentally different codec than the audio codecs typical in TS files, a full decode-and-re-encode pass is always required. The result is a compact, web-playback-ready audio file that browsers can play natively without any plugin.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool. In this browser-based tool, FFmpeg runs locally via WebAssembly (ffmpeg.wasm) — no data leaves your device. The same command can be run on your desktop if you have FFmpeg installed, which is especially useful for TS files larger than 1GB.
-i input.ts Specifies the input file — your MPEG-2 Transport Stream. FFmpeg will demultiplex it, separating the video, audio, and any subtitle streams packaged within the TS container for processing.
-c:a libopus Sets the audio codec to Opus via the libopus encoder. This re-encodes whatever audio codec was in the source TS file (commonly AAC, AC-3, or MP3) into the Opus format, which is the standard and most efficient codec for the WEBA container.
-b:a 128k Sets the target audio bitrate to 128 kilobits per second. At this bitrate, Opus produces high-quality audio suitable for both music and speech extracted from broadcast TS files. You can lower this to 64k for speech-only content or raise it to 192k or higher for music.
-vn Disables video output entirely, instructing FFmpeg to ignore all video streams from the TS file. This is required because WEBA is an audio-only container — without this flag, FFmpeg would attempt to process the video stream and produce an error or invalid output.
output.weba Specifies the output filename and container format. The .weba extension tells FFmpeg to use the WebM audio container, which wraps the Opus-encoded audio in a format that browsers can play natively using the HTML5 audio element.

Common Use Cases

  • Extract the audio commentary track from a recorded broadcast TV capture (.ts file from a DVR or SDR tuner) to archive or share it without the video
  • Pull the audio from a live-streamed or HLS-recorded .ts segment to create a podcast episode or audio clip for a website
  • Convert AC-3 or AAC audio embedded in a broadcast TS file into Opus for embedding in a web page using the HTML5 <audio> element, which natively supports WEBA/Opus
  • Strip the video from a large transport stream recording to produce a small audio-only file for review or transcription workflows
  • Prepare audio from a broadcast capture for upload to platforms that accept WebM-based audio, reducing file size compared to keeping the full TS intact
  • Convert the audio portion of a multi-program transport stream (MPTS) recording into a web-friendly Opus file for archiving a specific broadcast segment

Frequently Asked Questions

Yes, this conversion is lossy. The audio in the TS file — whether it was AAC, AC-3, or MP3 — is fully decoded and then re-encoded into Opus at the target bitrate (128k by default). Each re-encode introduces some quality degradation. However, Opus is one of the most efficient modern audio codecs, and at 128k it generally sounds excellent for most content including speech and music. If the source TS audio was already compressed (as it almost always is in broadcast streams), this is a lossy-to-lossy transcode.
The video stream is completely discarded. The -vn flag in the FFmpeg command explicitly tells FFmpeg to include no video output. Since WEBA is an audio-only container format, it cannot hold video data regardless. The output file will contain only the Opus-encoded audio track.
By default, FFmpeg selects the first audio stream it detects in the TS file. Transport streams from broadcasts often contain multiple audio tracks (e.g., different languages or commentary). If you need a specific track, you can modify the FFmpeg command with a stream selector, for example: ffmpeg -i input.ts -map 0:a:1 -c:a libopus -b:a 128k -vn output.weba — where 0:a:1 selects the second audio track (zero-indexed).
Yes, WEBA supports both Opus and Vorbis. To use Vorbis, change the codec flag in the command to -c:a libvorbis. However, Opus is the recommended choice: it consistently outperforms Vorbis at equivalent bitrates, especially at lower bitrates like 64k–128k, and has broader modern browser support. Opus is also the default codec for this tool for those reasons.
Audio quality is controlled by the -b:a flag, which sets the target bitrate. In the default command, -b:a 128k produces good quality for most use cases. For speech-heavy broadcast content you can go as low as -b:a 64k and still get acceptable clarity with Opus. For high-fidelity music extracted from a broadcast, try -b:a 192k or -b:a 256k. Replace 128k in the command with your desired value: ffmpeg -i input.ts -c:a libopus -b:a 192k -vn output.weba.
MPEG-2 Transport Streams store metadata differently from container formats like MP4 or MKV — TS files embed metadata via program-specific tables (PAT, PMT) and service descriptors that are not directly translatable to WebM/WEBA metadata fields. FFmpeg may carry over some basic tags if they are present, but broadcast-specific metadata such as channel name, program ID, or EPG information will not be preserved in the output WEBA file.

Technical Notes

MPEG-2 Transport Streams are designed for transmission reliability, using fixed-size 188-byte packets with error correction suited for broadcast environments. The audio codec inside a TS file varies widely depending on the source: DVB broadcasts commonly use AC-3 (Dolby Digital) or AAC; ATSC broadcasts often use AC-3; IPTV and HLS streams may use AAC or MP3. In all cases, converting to WEBA requires a full transcode since Opus is not natively carried in TS containers. The -vn flag is essential here because FFmpeg would otherwise attempt to encode the video stream into the output, which would fail since WEBA cannot contain video. The WEBA format is essentially a WebM container restricted to audio-only use, and browsers that support WebM audio (Chrome, Firefox, Edge) will play it natively. One known limitation is that WEBA does not support chapter markers or embedded subtitle tracks, both of which can exist in source TS files — these will be silently dropped. Additionally, if the source TS has multiple audio programs (as in a multi-program transport stream), only the default stream is extracted unless the FFmpeg command is explicitly modified with stream mapping.

Related Tools