Мне нужно выполнить команду ffmpeg с помощью Java Process Builder, я нашел this , который помог с некоторыми частями форматирования, но теперь должен иметь возможность разбить это:
ffmpeg -i in.mp4 -af astats=metadata=1:reset=1,ametadata=print:key=lavfi.astats.Overall.RMS_level:file=log.txt -f null -
Я ожидаю, что это будет в форме:
"-i", inputFile, "-ss", String.valueOf(peakVolPoint(logLocation)), "-vframes", "1", outputFile
и может выглядеть примерно так:
"-i", inputFile ,"-af", "astats=metadata=1:reset=1,ametadata=print:key=lavfi.astats.Overall.RMS_level:file=C:\\newlog.txt" ,"-f", "null", "-"
, но нужна рука.
Это мой код:
Main:
ffmpeg(ffmpeg_path, "-i", inputFile ,"-af", "astats=metadata=1:reset=1,ametadata=print:key=lavfi.astats.Overall.RMS_level:file=C:\\newlog.txt" ,"-f", "null", "-");
Функция:
public static String ffmpeg(String... strings) throws IOException {
List<String> params = Arrays.asList(strings);
Process processDuration = new ProcessBuilder(params).redirectErrorStream(true).start();
StringBuilder strBuild = new StringBuilder();
try (BufferedReader processOutputReader = new BufferedReader(
new InputStreamReader(processDuration.getInputStream(), Charset.defaultCharset()));) {
String line;
while ((line = processOutputReader.readLine()) != null) {
strBuild.append(line + System.lineSeparator());
}
try {
processDuration.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
String outputJson = strBuild.toString().trim();
System.out.println(outputJson);
return outputJson;
Спасибо!