use of org.fagu.fmv.ffmpeg.filter.impl.Overlay in project fmv by f-agu.
the class FFHelper method backgroundBlurOverlayScale.
/**
* @param inFile
* @param outFile
* @throws IOException
*/
public static void backgroundBlurOverlayScale(File inFile, File outFile) throws IOException {
FFMPEGExecutorBuilder builder = FFMPEGExecutorBuilder.create();
// inFile is in HD720
InputProcessor inputProcessor = builder.addMediaInputFile(inFile);
// builder.filter(FilterComplex.create(AudioGenerator.build().silence()));
Boxblur boxblur = Boxblur.build().lumaRadius("8").lumaPower(8);
Hue hue = Hue.build().blackAndWhite();
FilterComplex blurAndBW = FilterComplex.create(boxblur, hue).addInput(inputProcessor);
FilterComplex scale = FilterComplex.create(Scale.build().size(Size.HD480)).addInput(inputProcessor);
Overlay overlay = Overlay.with(blurAndBW, scale).shortest(true).positionMiddle();
FilterComplex scale2 = FilterComplex.create(Scale.build().size(Size.HD480)).addInput(overlay);
builder.filter(scale2);
builder.addMediaOutputFile(outFile).overwrite();
FFExecutor<Object> executor = builder.build();
executor.execute();
}
use of org.fagu.fmv.ffmpeg.filter.impl.Overlay in project fmv by f-agu.
the class FFHelper method overlay4.
/**
* @param in1VideoFile
* @param in2VideoFile
* @param in3VideoFile
* @param in4VideoFile
* @param outFile
* @param size
* @throws IOException
*/
public static void overlay4(File in1VideoFile, File in2VideoFile, File in3VideoFile, File in4VideoFile, File outFile, Size size) throws IOException {
FFMPEGExecutorBuilder builder = FFMPEGExecutorBuilder.create();
InputProcessor video1InputProcessor = builder.addMediaInputFile(in1VideoFile);
InputProcessor video2InputProcessor = builder.addMediaInputFile(in2VideoFile);
InputProcessor video3InputProcessor = builder.addMediaInputFile(in3VideoFile);
InputProcessor video4InputProcessor = builder.addMediaInputFile(in4VideoFile);
Size quartSize = size.getRatio().getSizeByWidth(size.getWidth() / 2);
NullSourceVideo nullSource = NullSourceVideo.build().size(size);
FilterComplex nullSourceFC = FilterComplex.create(nullSource);
SetPTSVideo setPTS = SetPTSVideo.createStartAtFirstFrame();
Scale scale = Scale.to(quartSize, ScaleMode.fitToBox());
FilterComplex vfc1 = FilterComplex.create(setPTS, scale).addInput(video1InputProcessor);
FilterComplex vfc2 = FilterComplex.create(setPTS, scale).addInput(video2InputProcessor);
FilterComplex vfc3 = FilterComplex.create(setPTS, scale).addInput(video3InputProcessor);
FilterComplex vfc4 = FilterComplex.create(setPTS, scale).addInput(video4InputProcessor);
builder.filter(nullSourceFC);
builder.filter(vfc1);
builder.filter(vfc2);
builder.filter(vfc3);
builder.filter(vfc4);
Overlay overlay1 = Overlay.with(nullSourceFC, vfc1).shortest(true);
Overlay overlay2 = Overlay.with(overlay1, vfc2).shortest(true).x(quartSize.getWidth());
Overlay overlay3 = Overlay.with(overlay2, vfc3).shortest(true).y(quartSize.getHeight());
Overlay.with(overlay3, vfc4).shortest(true).x(quartSize.getWidth()).y(quartSize.getHeight());
builder.addMediaOutputFile(outFile).overwrite();
FFExecutor<Object> executor = builder.build();
executor.execute();
}
Aggregations