All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.spikeify.ffmpeg.builder.commands.BasicCommandBuilder Maven / Gradle / Ivy

package com.spikeify.ffmpeg.builder.commands;

import com.spikeify.ffmpeg.builder.elements.VideoObject;

public class BasicCommandBuilder {

	private VideoObject videoObject;
	private int seqNum;
	private String basicCmd = "";
	private String audioTrimCmd = "";
	private String videoStreamInput;
	private String videoStreamOutput;
	private String audioStreamInput;
	private String audioStreamOutput;

	private BasicCommandBuilder(VideoObject videoObject, int seqNum) {
		this.videoObject = videoObject;
		this.seqNum = seqNum;
	}

	private BasicCommandBuilder build() {
		if (videoObject != null) {
			this.videoStreamInput = "[" + String.valueOf(seqNum) + ":v]";
			this.videoStreamOutput = "[v" + String.valueOf(seqNum) + "]";
			this.audioStreamInput = "[" + String.valueOf(seqNum) + ":a]";
			this.audioStreamOutput = "[a" + String.valueOf(seqNum) + "]";

			//process video and audio trim operations
			if (videoObject.getStart() > 0 || videoObject.getEnd() > 0) {
				this.basicCmd = "trim=";
				this.audioTrimCmd = "atrim=";

				this.basicCmd += String.valueOf(videoObject.getStart()) + ":" + String.valueOf(videoObject.getEnd()) + ", ";
				this.audioTrimCmd += String.valueOf(videoObject.getStart()) + ":" + String.valueOf(videoObject.getEnd());
				this.audioTrimCmd += ", asetpts=PTS-STARTPTS";

				videoObject.setEnd(videoObject.getEnd() - videoObject.getStart()); //reset video end

			}
			this.basicCmd += "format=pix_fmts=yuva420p, setpts=PTS-STARTPTS";
		}
		return this;
	}

	public static BasicCommandBuilder set(VideoObject videoObject, int seqNum) {
		return new BasicCommandBuilder(videoObject, seqNum).build();
	}

	public String getBasicCmd() {
		return basicCmd;
	}

	public String getAudioTrimCmd() {
		return audioTrimCmd;
	}

	public String getVideoStreamInput() {
		return videoStreamInput;
	}

	public String getVideoStreamOutput() {
		return videoStreamOutput;
	}

	public String getAudioStreamInput() {
		return audioStreamInput;
	}

	public String getAudioStreamOutput() {
		return audioStreamOutput;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy