1. 커맨드 작성 클래스
- 아래 예제 처럼 공백, 파라미터, argument를 작성하면 가독성이 너무 떨어지고, 작업 시 어렵다.
String ffmpegCommand = "ffmpeg -i"
                + " "
                + originFilePath
                + " "
                + "-vf fps=1/"
                + fp
                + " "
                + thumbImg;
- StringBuilder 로 클래스를 만들어서 사용하면 편한 것 같다.
public class CommandBuilder {
    private StringBuilder builder;
    public CommandBuilder() {
        builder = new StringBuilder();
    }
    
    public CommandBuilder appendArgs(String arg) {
        builder.append(arg).append(" "); 
        return this;
    }
    
    public CommandBuilder appendParam(String param) {
        builder.append(param).append(" "); 
        return this;
    }
    public String done() {
        return builder.toString().trim(); 
    }
}
2. 커맨드
CommandBuilder ffmpegCommandBuilder = new CommandBuilder();
CommandBuilder command = ffmpegCommandBuilder.appendParam("ffmpeg")
                                             .appendParam("-i").appendArgs(inputFilePath);
       
for (ProfileDto profile : profiles) {
	command.appendParam("-map").appendArgs("0:v")
           .appendParam("-map").appendArgs("0:a");
}
- 파라미터는 관리 대상으로 처리하면 "-i" 같이 직접 입력하지 않고, 사전에 실수를 예방할지도..