Added additional args for FFmpeg

This commit is contained in:
Ziver Koc 2021-02-13 16:02:47 +01:00
parent 2eb62ac0a8
commit 2606cd8811
2 changed files with 29 additions and 0 deletions

View file

@ -24,6 +24,12 @@
package zutil.osal.app.ffmpeg;
import zutil.StringUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Class includes data related to a single input into FFmpeg
*/
@ -34,6 +40,7 @@ public class FFmpegInput {
private Float duration;
private Float positionStart;
private Float positionEnd;
private List<String> additionalArgs = new ArrayList<>();
// Audio Options
@ -77,6 +84,13 @@ public class FFmpegInput {
this.positionEnd = position;
}
/**
* Add additional args that may not be supported by the API, these values will be inserted to the command line as is.
*/
public void addAdditionalArg(String... args) {
additionalArgs.addAll(Arrays.asList(args));
}
// ----------------------------------------------------
// Audio Options
// ----------------------------------------------------
@ -135,6 +149,7 @@ public class FFmpegInput {
if (!subtitleEnabled)
command.append(" -sn");
command.append(StringUtil.join(" ", additionalArgs));
command.append(" -i ").append(input);
return command.toString().trim();
}

View file

@ -24,10 +24,15 @@
package zutil.osal.app.ffmpeg;
import zutil.StringUtil;
import zutil.osal.app.ffmpeg.FFmpegConstants.FFmpegAudioCodec;
import zutil.osal.app.ffmpeg.FFmpegConstants.FFmpegSubtitleCodec;
import zutil.osal.app.ffmpeg.FFmpegConstants.FFmpegVideoCodec;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Class includes data related to a single output from FFmpeg
*/
@ -40,6 +45,7 @@ public class FFmpegOutput {
private Float positionEnd;
private Long fileSize;
private Integer encodingPass;
private List<String> additionalArgs = new ArrayList<>();
// Video Options
@ -115,6 +121,13 @@ public class FFmpegOutput {
this.encodingPass = pass;
}
/**
* Add additional args that may not be supported by the API, these values will be inserted to the command line as is.
*/
public void addAdditionalArg(String... args) {
additionalArgs.addAll(Arrays.asList(args));
}
// ----------------------------------------------------
// Video Options
// ----------------------------------------------------
@ -336,6 +349,7 @@ public class FFmpegOutput {
if (!subtitleEnabled)
command.append(" -sn");
command.append(StringUtil.join(" ", additionalArgs));
command.append(' ').append(output);
return command.toString().trim();
}