55 lines
2.2 KiB
Java
55 lines
2.2 KiB
Java
package eu.crushedpixel.replaymod.settings;
|
|
|
|
import eu.crushedpixel.replaymod.holders.GuiEntryListEntry;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Getter;
|
|
import net.minecraft.client.resources.I18n;
|
|
|
|
@AllArgsConstructor
|
|
public enum EncodingPreset implements GuiEntryListEntry {
|
|
|
|
MP4CUSTOM("replaymod.gui.rendersettings.presets.mp4.custom",
|
|
"-y -f rawvideo -pix_fmt rgb24 -s %WIDTH%x%HEIGHT% -r %FPS% -i - -an -c:v libx264 -b:v %BITRATE% -pix_fmt yuv420p \"%FILENAME%.mp4\"", "mp4"),
|
|
|
|
MP4HIGH("replaymod.gui.rendersettings.presets.mp4.high",
|
|
"-y -f rawvideo -pix_fmt rgb24 -s %WIDTH%x%HEIGHT% -r %FPS% -i - -an -c:v libx264 -preset ultrafast -qp 1 -pix_fmt yuv420p \"%FILENAME%.mp4\"", "mp4"),
|
|
|
|
MP4DEFAULT("replaymod.gui.rendersettings.presets.mp4.default",
|
|
"-y -f rawvideo -pix_fmt rgb24 -s %WIDTH%x%HEIGHT% -r %FPS% -i - -an -c:v libx264 -preset ultrafast -pix_fmt yuv420p \"%FILENAME%.mp4\"", "mp4"),
|
|
|
|
MP4POTATO("replaymod.gui.rendersettings.presets.mp4.potato",
|
|
"-y -f rawvideo -pix_fmt rgb24 -s %WIDTH%x%HEIGHT% -r %FPS% -i - -an -c:v libx264 -preset ultrafast -crf 51 -pix_fmt yuv420p \"%FILENAME%.mp4\"", "mp4"),
|
|
|
|
WEBMCUSTOM("replaymod.gui.rendersettings.presets.webm.custom",
|
|
"-y -f rawvideo -pix_fmt rgb24 -s %WIDTH%x%HEIGHT% -r %FPS% -i - -an -c:v libvpx -b:v %BITRATE% \"%FILENAME%.webm\"", "webm"),
|
|
|
|
MKVLOSSLESS("replaymod.gui.rendersettings.presets.mkv.lossless",
|
|
"-y -f rawvideo -pix_fmt rgb24 -s %WIDTH%x%HEIGHT% -r %FPS% -i - -an -c:v libx264 -preset ultrafast -qp 0 \"%FILENAME%.mkv\"", "mkv"),
|
|
|
|
PNGSEQUENCE("replaymod.gui.rendersettings.presets.png",
|
|
"-y -f rawvideo -pix_fmt rgb24 -s %WIDTH%x%HEIGHT% -r %FPS% -i - \"%FILENAME%-%06d.png\"", "png");
|
|
|
|
private String name;
|
|
|
|
@Getter
|
|
private String commandLineArgs;
|
|
|
|
@Getter
|
|
private String fileExtension;
|
|
|
|
public boolean hasBitrateSetting() {
|
|
return commandLineArgs.contains("%BITRATE%");
|
|
}
|
|
|
|
public boolean isYuv420() { return commandLineArgs.contains("-pix_fmt yuv420p"); }
|
|
|
|
@Override
|
|
public String getDisplayString() {
|
|
return getI18nName();
|
|
}
|
|
|
|
public String getI18nName() {
|
|
return I18n.format(name);
|
|
}
|
|
}
|