Files
ReplayModCinematic/src/main/java/eu/crushedpixel/replaymod/settings/EncodingPreset.java
2015-08-04 12:32:04 +02:00

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);
}
}