use of org.fagu.fmv.ffmpeg.executor.FFExecutor in project fmv by f-agu.
the class FFHelper method videoMetadatas.
/**
* @param inFile
* @return
* @throws IOException
*/
public static MovieMetadatas videoMetadatas(File inFile) throws IOException {
MediaInput input = new FileMediaInput(inFile);
InfoOperation infoOperation = new InfoOperation(input);
FFExecutor<MovieMetadatas> executor = new FFExecutor<>(infoOperation);
Executed<MovieMetadatas> execute = executor.execute();
return execute.getResult();
}
use of org.fagu.fmv.ffmpeg.executor.FFExecutor in project fmv by f-agu.
the class MockFFMPEGExecutorBuilder method mock.
/**
* @param movieMetadatasSupplier
* @param commandExecute
*/
public static void mock(Supplier<Function<String, MovieMetadatas>> movieMetadatasSupplier, final Consumer<String> commandExecute) {
FFMPEGExecutorBuilder.setFactory(() -> {
final FFExecutorFactory ffExecutorFactory = new FFExecutorFactory() {
@Override
public <R> FFExecutor<R> create(Operation<R, ?> operation, FFMPEGExecutorBuilder ffmpegExecutorBuilder) {
return new FFExecutor<R>(operation) {
/**
* @see org.fagu.fmv.ffmpeg.executor.FFExecutor#execute()
*/
@Override
public Executed<R> execute() throws IOException {
commandExecute.accept(getCommandLine());
return null;
}
};
}
};
Require require = new Require(false);
DefaultFFMPEGOperation<?> defaultFFMPEGOperation = new DefaultFFMPEGOperation<Object>(new FilterNaming(), require);
defaultFFMPEGOperation.getInputParameters().setInputProcessorFactory(new InputProcessorFactory() {
/**
* @see org.fagu.fmv.ffmpeg.operation.InputProcessorFactory#create(org.fagu.fmv.ffmpeg.operation.InputParameters,
* org.fagu.fmv.ffmpeg.operation.MediaInput, int, org.fagu.fmv.ffmpeg.require.Require)
*/
@Override
public InputProcessor create(InputParameters inputParameters, MediaInput input, int index, Require require) {
return new MyInputProcessor(movieMetadatasSupplier.get(), inputParameters, input, index, require);
}
});
return new MyFFMPEGExecutorBuilder(ffExecutorFactory, defaultFFMPEGOperation);
});
}
use of org.fagu.fmv.ffmpeg.executor.FFExecutor in project fmv by f-agu.
the class AudioSampleFormat method runnable.
/**
* @return
*/
private static Runnable runnable() {
return () -> {
LinesFFMPEGOperation operation = new LinesFFMPEGOperation();
operation.addParameter("-sample_fmts");
try {
FFExecutor<List<String>> executor = new FFExecutor<>(operation);
Consumer<AudioSampleFormatHelp> cacheConsumer = HELP_CACHE.consumer();
AvailableHelp<AudioSampleFormatHelp> availableHelp = AvailableHelp.create();
availableHelp.title().legend().reader(l -> {
if (StringUtils.isBlank(l)) {
return false;
}
String name = StringUtils.substringBefore(l, " ");
int depth = Integer.parseInt(StringUtils.substringAfter(l, " ").trim());
cacheConsumer.accept(new AudioSampleFormatHelp(name, depth));
return true;
}).parse(executor.execute().getResult());
} catch (IOException e) {
throw new RuntimeException(e);
}
};
}
Aggregations