docs: protected List<String> build(FFmpegBuilder parent, int pass) {
      checkNotNull(parent);
  
      if (pass > 0) {
        // TODO Write a test for this:
        checkArgument(format != null, "Format must be specified when using two-pass");
      }
  
      ImmutableList.Builder<String> args = new ImmutableList.Builder<>();
  
      addGlobalFlags(parent, args);
  
      if (video_enabled) {
        addVideoFlags(parent, args);
      } else {
        args.add("-vn");
      }
  
      if (audio_enabled && pass != 1) {
        addAudioFlags(args);
      } else {
        args.add("-an");
      }
  
      if (subtitle_enabled) {
        if (!Strings.isNullOrEmpty(subtitle_preset)) {
          args.add("-spre", subtitle_preset);
        }
      } else {
        args.add("-sn");
      }
  
      args.addAll(extra_args);
  
      if (filename != null && uri != null) {
        throw new IllegalStateException("Only one of filename and uri can be set");
      }
  
      // Output
      if (pass == 1) {
        args.add(DEVNULL);
      } else if (filename != null) {
        args.add(filename);
      } else if (uri != null) {
        args.add(uri.toString());
      } else {
        assert (false);
      }
  
      return args.build();
    }