ffmpreg-0.1.0 has been yanked.
io → container → codec → transform → codec → container → io
Todo
-
Minimal WAV pipeline
End-to-end pipeline, audible audio.
- Create project and basic folders (core, containers/wav, codecs/pcm, cli)
- Implement Packet, Frame, Timebase
- Read WAV and produce Packets (containers/wav/read.rs)
- Write Packets back (containers/wav/write.rs)
- PCM passthrough codec (decode → encode)
- Connect pipeline: read → decode → encode → write
- Minimal CLI: ffmpreg -i input.wav -o output.wav
- Test with a simple WAV file
-
Frame inspection / Media info
Show internal frame info, minimal ffprobe alternative.
- Add CLI option --show
- Iterate over Packets → Frames
- Display pts, sample count, channels, sample rate
- Test output with example WAV
-
Basic transform
Apply simple operation on frames (e.g., gain)
- Create transforms/gain.rs
- Implement trait Transform
- Integrate pipeline: read → decode → transform → encode → write
- CLI: ffmpreg -filter gain=2.0
- Test amplified audio
-
Multi-file / batch
Process multiple files using the same pipeline
- CLI accepts multiple files or wildcard (folder/*.wav)
- Iterate files → pipeline
- Create separate output for each file
- Test with 2-3 WAV files
-
More containers
Add raw video support (Y4M)
- Create containers/y4m/read.rs and write.rs
- Parse Y4M header (width, height, framerate, colorspace)
- Produce Packets/Frames
- Minimal pipeline: decode → encode → write
- CLI: ffmpreg -i input.y4m -o output.y4m
- Test with a Y4M file
-
More codecs
ADPCM, multi-channel PCM
- Add ADPCM codec
- Support multi-channel PCM
- Pipeline: decode → transform → encode → write
- Roundtrip tests for each codec
-
Chained filters
Apply multiple transforms in sequence
- CLI: ffmpreg-filter gain=2.0 -filter normalize
- Create transforms/normalize.rs
- Pipeline applies filters in sequence
- Test audio with two chained filters