This library requires a working FFMpeg install. You will need both FFMpeg and FFProbe binaries to use it.
You can download FFmpeg Cli Wrapper via Github Here
or If you want install via Vanat. *recommended
$ vanat require robertsanseries/ffmpeg-wrapper
- FFmpeg 2.8.14+
- Vala 0.36+
You can find the complete documentation on our Wiki. Or parse the source code.
FFmpeg ffmpeg2 = new FFmpeg ()
.set_input ("/home/robertsanseries/Documentos/doc.mp4")
.set_output ("/home/robertsanseries/Documentos/doc.avi")
.set_format ("avi")
.set_override_output (true);
// output: ffmpeg -y -hide_banner -i /home/robertsanseries/Documentos/doc.mp4 -f avi /home/robertsanseries/Documentos/doc.avi
GLib.message (ffmpeg2.get_command ());
FFconvert ffconvert = new FFconvert (ffmpeg2);
GLib.MainLoop mainloop = new GLib.MainLoop();
ffconvert.convert.begin ((obj, async_res) => {
try {
GLib.Subprocess subprocess = ffconvert.convert.end (async_res);
if (subprocess != null && subprocess.wait_check ()) {
GLib.message ("Success");
} else {
GLib.message ("Error");
}
} catch (Error e) {
GLib.critical (e.message);
}
mainloop.quit();
});
mainloop.run();
FFprobe ffprobe = ffmpeg2.get_ffprobe ();
// output: /home/robertsanseries/Documentos/doc.mp4
stdout.printf(ffprobe.format.filename);
To use the FFmpeg Cli Wrapper you need to add the namespace:
using com.github.robertsanseries.FFmpegCliWrapper;
Starting the class:
FFmpeg ffmpeg = new FFmpeg ();
You may already set some optional values when starting the class:
- Input
- Output
- Override Files
- Force Format
FFmpeg ffmpeg = new FFmpeg (
"/home/Vídeos/MarcusMiller.mkv",
"/home/Vídeos/MarcusMiller.avi"
);
FFmpeg ffmpeg = new FFmpeg (
"/home/Vídeos/MarcusMiller.mkv",
"/home/Vídeos/MarcusMiller.avi",
true
);
FFmpeg ffmpeg = new FFmpeg (
"/home/Vídeos/MarcusMiller.mkv",
"/home/Vídeos/MarcusMiller.avi",
true,
"avi"
);
You can set the values in two other ways:
FFmpeg ffmpeg = new FFmpeg ();
ffmpeg.set_input ("/home/Vídeos/MarcusMiller.mkv");
ffmpeg.set_output ("/home/Vídeos/MarcusMiller.avi");
ffmpeg.set_format ("avi");
ffmpeg.set_override_output (true);
FFmpeg ffmpeg = new FFmpeg ()
.set_input ("/home/Vídeos/MarcusMiller.mkv")
.set_output ("/home/Vídeos/MarcusMiller.avi")
.set_format ("avi")
.set_override_output (true);
Use the get_cmd ()
function to get the generated command string:
FFmpeg ffmpeg = new FFmpeg ();
ffmpeg.set_input ("/home/Vídeos/MarcusMiller.mkv");
ffmpeg.set_output ("/home/Vídeos/MarcusMiller.avi");
ffmpeg.set_format ("avi");
ffmpeg.set_override_output (true);
stdout.printf (ffmpeg.get_cmd ());
$ ffmpeg -y -i /home/Vídeos/MarcusMiller.mkv -f avi /home/Vídeos/MarcusMiller.avi
$ valac --pkg json-glib-1.0 --pkg gio-2.0 --pkg gee-0.8 src/FFconvert.vala src/FFmpeg.vala src/FFprobe.vala src/exceptions/CodecNotEnabledException.vala src/exceptions/FileOrDirectoryNotFoundException.vala src/exceptions/NullReferenceException.vala src/utils/StringUtil.vala test/FFmpegTest.vala src/exceptions/IllegalArgumentException.vala src/exceptions/IOException.vala src/probe/FFprobeDisposition.vala src/probe/FFprobeFormat.vala src/probe/FFprobeStream.vala -o ffmpeg-cli-wrapper
$ ./ffmpeg-cli-wrapper
This project is licensed under the MIT license.