| Crates.io | ts-to-mp4 |
| lib.rs | ts-to-mp4 |
| version | 0.1.0 |
| created_at | 2026-01-14 04:04:10.759781+00 |
| updated_at | 2026-01-14 04:04:10.759781+00 |
| description | Remux MPEG-TS to MP4 without transcoding (stream copy) |
| homepage | |
| repository | https://github.com/rajbot/ts-to-mp4 |
| max_upload_size | |
| id | 2042125 |
| size | 1,821,261 |
A pure Rust library and CLI tool for remuxing MPEG-TS to MP4 without transcoding, similar to ffmpeg -c copy.
remux(input, output)Try the converter in your browser: rajbot.github.io/ts-to-mp4
All processing happens locally in your browser using WebAssembly - no files are uploaded.
cargo install --git https://github.com/rajbot/ts-to-mp4 --features cli
# Convert input.ts to input.mp4
ts-to-mp4 input.ts
# Specify output filename
ts-to-mp4 input.ts -o output.mp4
# Show help
ts-to-mp4 --help
Add to your Cargo.toml:
[dependencies]
ts-to-mp4 = { git = "https://github.com/rajbot/ts-to-mp4" }
ts_to_mp4::remux_file("input.ts", "output.mp4")?;
use std::fs::File;
use std::io::BufReader;
let input = BufReader::new(File::open("input.ts")?);
let mut output = File::create("output.mp4")?;
ts_to_mp4::remux(input, &mut output)?;
To build and run the web version locally:
# Build WASM module
./build-wasm.sh
# Start local server
cd web && python3 -m http.server 8000
# Open http://localhost:8000
GNU Affero General Public License v3.0 (AGPL-3.0)