Java FFMPEG - Форматирование Process Builder - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно выполнить команду 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;

Спасибо!

...