private String[] internalGetSinglePass() {

    switch (type) {
      case TYPE_NO_GOOD:
        Log.v("");
      case TYPE_NO_CHANGE:
      case TYPE_TWO_PASS:
        return null;
    }

    ArrayList<String> cmd = new ArrayList<String>();
    cmd.add("ffmpeg");
    cmd.add("-i");
    cmd.add(conversionSetting.getOriginalVideoFile().getAbsolutePath());
    cmd.add("-vcodec");
    cmd.add("copy");
    if (type == TYPE_CONVERT_ONLY_AUDIO) {
      addAudioConversion(cmd);
    } else {
      cmd.add("-acodec");
      cmd.add("copy");
    }

    cmd.add("-movflags");
    cmd.add("+faststart");
    cmd.add(conversionSetting.getTempVideoFile().getAbsolutePath());

    return getArray(cmd);
  }
  private String[] internalGetCrfSinglePass() {

    if (type != TYPE_CRF) return null;

    ArrayList<String> cmd = new ArrayList<String>();
    cmd.add("ffmpeg");
    cmd.add("-i");
    cmd.add(conversionSetting.getOriginalVideoFile().getAbsolutePath());
    cmd.add("-c:v");
    cmd.add("libx264");
    cmd.add("-profile:v");
    cmd.add("high");
    cmd.add("-level");
    cmd.add("5");
    cmd.add("-preset");
    cmd.add(Settings.ARRAY_SPEED[conversionSetting.getSpeed()]);
    cmd.add("-crf");
    switch (conversionSetting.getQuality()) {
      case Settings.QUALITY_SUPER:
        cmd.add("15");
        break;
      case Settings.QUALITY_NORMAL:
        cmd.add("23");
        break;
      case Settings.QUALITY_HIGH:
      default:
        cmd.add("18");
        break;
    }

    String videoBitRate = getVideoBitrate();
    if (videoBitRate != null) {
      cmd.add("-maxrate");
      cmd.add(videoBitRate);
      cmd.add("-bufsize");
      cmd.add("5M");
    }

    addAudioConversion(cmd);
    cmd.add("-movflags");
    cmd.add("+faststart");
    cmd.add(conversionSetting.getTempVideoFile().getAbsolutePath());

    return getArray(cmd);
  }
  //
  // ffmpeg command generation
  // =================================================================================================================
  private String[] internalGetFirstPass() {

    if (type != TYPE_TWO_PASS) return null;

    ArrayList<String> cmd = new ArrayList<String>();
    cmd.add("ffmpeg");
    cmd.add("-i");
    cmd.add(conversionSetting.getOriginalVideoFile().getAbsolutePath());
    String videoBitrate = getVideoBitrate();

    if (videoBitrate == null) return null;

    addVideoConversion(cmd, videoBitrate);

    cmd.add("-an");
    cmd.add("-pass");
    cmd.add("1");
    cmd.add(conversionSetting.getTempVideoFile().getAbsolutePath());

    return getArray(cmd);
  }