diff --git a/src/main/java/net/knarcraft/ffmpegconverter/FFMpegConvert.java b/src/main/java/net/knarcraft/ffmpegconverter/FFMpegConvert.java index ac27f46..eab5108 100644 --- a/src/main/java/net/knarcraft/ffmpegconverter/FFMpegConvert.java +++ b/src/main/java/net/knarcraft/ffmpegconverter/FFMpegConvert.java @@ -8,6 +8,7 @@ import net.knarcraft.ffmpegconverter.converter.DownScaleConverter; import net.knarcraft.ffmpegconverter.converter.MKVToMP4Transcoder; import net.knarcraft.ffmpegconverter.converter.MkvH264Converter; import net.knarcraft.ffmpegconverter.converter.MkvH265ReducedConverter; +import net.knarcraft.ffmpegconverter.converter.StreamOrderConverter; import net.knarcraft.ffmpegconverter.converter.SubtitleEmbed; import net.knarcraft.ffmpegconverter.converter.VideoConverter; import net.knarcraft.ffmpegconverter.converter.WebAnimeConverter; @@ -94,7 +95,8 @@ public class FFMpegConvert { 7. MKV to MP4 transcoder 8. DownScaleConverter 9. mp4 Subtitle Embed - 10. Anime to h265 all streams""", 1, 10); + 10. Anime to h265 all streams + 11. Stream reorder""", 1, 11); return switch (choice) { case 1 -> generateWebAnimeConverter(); @@ -107,6 +109,7 @@ public class FFMpegConvert { case 8 -> generateDownScaleConverter(); case 9 -> new SubtitleEmbed(FFPROBE_PATH, FFMPEG_PATH); case 10 -> generateAnimeConverter(); + case 11 -> generateStreamOrderConverter(); default -> null; }; } @@ -194,6 +197,34 @@ public class FFMpegConvert { } } + /** + * Initializes and returns a stream reorder converter + * + * @return

The initialized stream order converter

+ */ + @Nullable + private static Converter generateStreamOrderConverter() { + OutputUtil.println("Note that a * in the sort order matches any stream not yet matched, and 0 matches " + + "undefined language streams. The subtitle name filter will include any streams with titles " + + "containing the filter, but if it contains RegEx expressions, a RegEx match will be performed " + + "instead.\nYour input: "); + OutputUtil.println("