InputStream start()

in src/backend/transcriber/src/main/java/com/amazonaws/transcriber/Encoder.java [64:102]


    InputStream start() throws IOException {
        List<String> args = new ArrayList<>(Arrays.asList(
            path,
            "-hide_banner",
            "-loglevel", "level+" + convertLogLevel(),
            "-i", input,
            "-vn",
            "-ac", "1",
            "-ar", "16000",
            "-c:a", "pcm_s16le",
            "-f", inputFormat,
            "-" //output to stdout
        ));

        if (process != null) {
            throw new IllegalStateException("Already running");
        }

        logger.info("Starting with %s", args);
        ProcessBuilder processBuilder = new ProcessBuilder(args);


        process = processBuilder.start();
        BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
        stderrReaderThread = new Thread(() -> {
            Thread.currentThread().setName(logger.getName());
            this.error = reader.lines().reduce("", (err, line) -> {
                if (printFilter.matcher(line).matches()) {
                    logger.info(line);
                }
                err += line;
                return err;
            });
            logger.info("Completed with errors.");
        });
        stderrReaderThread.start();
        stdinWriter = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
        return process.getInputStream();
    }