Opinionated D wrapper library for ffmpeg, that allows reading and writing image buffers to/from video files. Does not support seeking. Depends on https://code.dlang.org/packages/simple-image. Example Usage:
module simple_video.app;
import std.algorithm;
import std.exception;
import std.stdio;
import simple_image;
import simple_video;
// TODO: Rename this? Fix config
void main(string[] args) {
enforce(args.length == 3);
VideoReader reader;
openVideoFile(&reader, args[1]);
auto writer = initVideoWriter(new VideoWriterOpts(
fps: reader.fps,
bitrate: 700_000, // chosen for test file
width: reader.width,
height: reader.height,
cpu_used: 0,
));
openVideoFile(&writer, args[2]);
writeln("Opened!");
auto width = reader.width;
auto height = reader.height;
auto image = Image(width, height);
while (image.readVideoFrame(&reader)) {
image.writeVideoFrame(&writer);
writeln("Wrote frame");
}
close(&reader);
// Remember to close writer to finish writing, otherwise trailer may not be written
close(&writer);
writeln("Finished!");
}