package be.tarsos.transcoder.ffmpeg; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * This class provides tries to find an ffmpeg binary in the PATH * * @author Joren Six */ public final class PathFFMPEGLocator extends FFMPEGLocator { private final String path; public PathFFMPEGLocator() { if (pickMe()) { path = "ffmpeg"; } else { path = null; } } Boolean ffmpegInPath = null; @Override public boolean pickMe() { if (ffmpegInPath == null) { FFMPEGExecutor executor = new FFMPEGExecutor("ffmpeg"); executor.addArgument("-version"); try { String out = executor.execute(); Pattern versionPattern = Pattern.compile(".*Version.*", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.UNIX_LINES); Matcher versionMatcher = versionPattern.matcher(out); ffmpegInPath = versionMatcher.find(); } catch (IOException e) { ffmpegInPath = false; } } return ffmpegInPath.booleanValue(); } @Override protected String getFFMPEGExecutablePath() { return path; } }