From 13d231b9ab50f5456392a1324b25d0c3cb69cdaf Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Thu, 15 Mar 2018 16:36:42 +0100 Subject: [PATCH] Video recording from MKV to MP4 --- .../docker/openvidu-recording/entrypoint.sh | 2 +- .../openvidu/server/config/ServletCustomizer.java | 13 +++++++------ .../server/recording/ComposedRecordingService.java | 10 +++++----- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/openvidu-server/docker/openvidu-recording/entrypoint.sh b/openvidu-server/docker/openvidu-recording/entrypoint.sh index 4aeca430..04829e6d 100755 --- a/openvidu-server/docker/openvidu-recording/entrypoint.sh +++ b/openvidu-server/docker/openvidu-recording/entrypoint.sh @@ -14,7 +14,7 @@ FRAMERATE="${FRAMERATE:-24}" VIDEO_SIZE="$RESOLUTION" ARRAY=(${VIDEO_SIZE//x/ }) VIDEO_NAME="${VIDEO_NAME:-video}" -VIDEO_FORMAT="${VIDEO_FORMAT:-mkv}" +VIDEO_FORMAT="${VIDEO_FORMAT:-mp4}" RECORDING_JSON="'${RECORDING_JSON}'" diff --git a/openvidu-server/src/main/java/io/openvidu/server/config/ServletCustomizer.java b/openvidu-server/src/main/java/io/openvidu/server/config/ServletCustomizer.java index 15e4f89d..11057405 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/config/ServletCustomizer.java +++ b/openvidu-server/src/main/java/io/openvidu/server/config/ServletCustomizer.java @@ -8,10 +8,11 @@ import org.springframework.stereotype.Component; @Component public class ServletCustomizer implements EmbeddedServletContainerCustomizer { - @Override - public void customize(ConfigurableEmbeddedServletContainer container) { - MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT); - mappings.add("mkv","video/x-matroska"); - container.setMimeMappings(mappings); - } + @Override + public void customize(ConfigurableEmbeddedServletContainer container) { + MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT); + mappings.add("mp4", "video/mp4"); + container.setMimeMappings(mappings); + } + } \ No newline at end of file diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/ComposedRecordingService.java b/openvidu-server/src/main/java/io/openvidu/server/recording/ComposedRecordingService.java index 72d078c4..b339d2d8 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/ComposedRecordingService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/ComposedRecordingService.java @@ -103,7 +103,7 @@ public class ComposedRecordingService { envs.add("RESOLUTION=1920x1080"); envs.add("FRAMERATE=30"); envs.add("VIDEO_NAME=" + videoId); - envs.add("VIDEO_FORMAT=mkv"); + envs.add("VIDEO_FORMAT=mp4"); envs.add("USER_ID=" + uid); envs.add("RECORDING_JSON=" + recording.toJson().toJSONString()); @@ -178,7 +178,7 @@ public class ComposedRecordingService { recording.setHasVideo(infoUtils.hasVideo()); if (openviduConfig.getOpenViduRecordingFreeAccess()) { - recording.setUrl(this.openviduConfig.getFinalUrl() + "recordings/" + recording.getName() + ".mkv"); + recording.setUrl(this.openviduConfig.getFinalUrl() + "recordings/" + recording.getName() + ".mp4"); } } catch (IOException | ParseException e) { @@ -311,7 +311,7 @@ public class ComposedRecordingService { if (Recording.Status.stopped.equals(recording.getStatus())) { recording.setStatus(Recording.Status.available); recording.setUrl( - this.openviduConfig.getFinalUrl() + "recordings/" + recording.getName() + ".mkv"); + this.openviduConfig.getFinalUrl() + "recordings/" + recording.getName() + ".mp4"); } } recordingEntities.add(recording); @@ -361,7 +361,7 @@ public class ComposedRecordingService { } private boolean isFileFromRecording(File file, String recordingId) { - return (((recordingId + ".info").equals(file.getName())) || ((recordingId + ".mkv").equals(file.getName())) + return (((recordingId + ".info").equals(file.getName())) || ((recordingId + ".mp4").equals(file.getName())) || ((".recording." + recordingId).equals(file.getName()))); } @@ -385,7 +385,7 @@ public class ComposedRecordingService { while (!isPresent) { try { Thread.sleep(150); - File f = new File(this.openviduConfig.getOpenViduRecordingPath() + recordingId + ".mkv"); + File f = new File(this.openviduConfig.getOpenViduRecordingPath() + recordingId + ".mp4"); isPresent = ((f.isFile()) && (f.length() > 0)); } catch (InterruptedException e) { e.printStackTrace();