Add metadata injection for 360 degree videos (mp4 format only)

Add com.googlecode.mp4parser:isoparser Library to build.gradle
Create inject360Metadata boolean setting in RenderOptions and added respective checkbox to GuiRenderSettings
Create MetadataInjector to inject 360 Degree Spherical Metadata into mp4 videos
This commit is contained in:
CrushedPixel
2015-09-12 13:04:27 +02:00
committed by johni0702
parent 664e788f7b
commit 8bd051eb27
6 changed files with 176 additions and 4 deletions

View File

@@ -6,7 +6,7 @@ import eu.crushedpixel.replaymod.holders.AdvancedPosition;
import eu.crushedpixel.replaymod.holders.Keyframe;
import eu.crushedpixel.replaymod.holders.SpectatorData;
import eu.crushedpixel.replaymod.holders.TimestampValue;
import eu.crushedpixel.replaymod.interpolation.*;
import eu.crushedpixel.replaymod.interpolation.KeyframeList;
import eu.crushedpixel.replaymod.renderer.ChunkLoadingRenderGlobal;
import eu.crushedpixel.replaymod.replay.ReplayHandler;
import eu.crushedpixel.replaymod.replay.ReplaySender;
@@ -15,6 +15,7 @@ import eu.crushedpixel.replaymod.timer.EnchantmentTimer;
import eu.crushedpixel.replaymod.timer.ReplayTimer;
import eu.crushedpixel.replaymod.video.capturer.RenderInfo;
import eu.crushedpixel.replaymod.video.frame.RGBFrame;
import eu.crushedpixel.replaymod.video.metadata.MetadataInjector;
import eu.crushedpixel.replaymod.video.rendering.Pipeline;
import eu.crushedpixel.replaymod.video.rendering.Pipelines;
import net.minecraft.client.Minecraft;
@@ -25,6 +26,7 @@ import org.lwjgl.opengl.Display;
import org.lwjgl.util.Dimension;
import org.lwjgl.util.ReadableDimension;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.FutureTask;
@@ -104,6 +106,11 @@ public class VideoRenderer implements RenderInfo {
renderingPipeline.run();
if(options.isInject360Metadata()) {
File outputFile = options.getOutputFile();
MetadataInjector.inject360Metadata(new File(outputFile.getParentFile(), outputFile.getName() + ".mp4"));
}
finish();
return !cancelled;
}