From d260bbceaa5237c1b0a3f9550c747aa2132c09bd Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Tue, 19 Oct 2021 13:47:20 +0200 Subject: [PATCH] openvidu-test-browsers: fix webm file extension limitations --- .../test/browsers/utils/MultimediaFileMetadata.java | 10 ++++------ .../java/io/openvidu/test/browsers/utils/Unzipper.java | 8 +++++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/utils/MultimediaFileMetadata.java b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/utils/MultimediaFileMetadata.java index ce69fe0e..b5640ea8 100644 --- a/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/utils/MultimediaFileMetadata.java +++ b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/utils/MultimediaFileMetadata.java @@ -19,25 +19,22 @@ package io.openvidu.test.browsers.utils; import java.io.File; import java.io.IOException; -import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.io.Files; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; -import io.openvidu.test.browsers.utils.CommandLineExecutor; - public class MultimediaFileMetadata { private static final Logger log = LoggerFactory.getLogger(MultimediaFileMetadata.class); private CommandLineExecutor executer = new CommandLineExecutor(); - private JsonParser parser = new JsonParser(); private JsonObject json; private JsonObject formatJson; @@ -155,13 +152,14 @@ public class MultimediaFileMetadata { private JsonObject executeFfprobeCommand(String filePath) { log.info("Running ffprobe command on '{}'", filePath); String cmd = "ffprobe -v quiet -print_format json -show_format -show_streams " + filePath; - return this.parser.parse(this.executer.executeCommand(cmd)).getAsJsonObject(); + return JsonParser.parseString(this.executer.executeCommand(cmd)).getAsJsonObject(); } private void fixWebmFile(String filePath) throws IOException { Path source = Paths.get(filePath); + String extension = Files.getFileExtension(source.getFileName().toString()); String pathCopy = null; - pathCopy = Files.move(source, source.resolveSibling("COPY.webm")).toString(); + pathCopy = java.nio.file.Files.move(source, source.resolveSibling("COPY." + extension)).toString(); log.warn("Fixing file '{}' with ffmpeg", filePath); String cmd = "ffmpeg -i " + pathCopy + " -vcodec copy -acodec copy " + filePath; this.executer.executeCommand(cmd); diff --git a/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/utils/Unzipper.java b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/utils/Unzipper.java index b196f23d..66c01504 100644 --- a/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/utils/Unzipper.java +++ b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/utils/Unzipper.java @@ -24,16 +24,21 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; +import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.io.Files; + public class Unzipper { private static final Logger log = LoggerFactory.getLogger(Unzipper.class); + private final Set VIDEO_EXTENSIONS = Set.of("webm", "mkv", "mp4"); + public List unzipFile(String path, String fileName) { final int BUFFER = 2048; final List recordingFiles = new ArrayList<>(); @@ -44,7 +49,8 @@ public class Unzipper { ZipEntry entry; while ((entry = zis.getNextEntry()) != null) { log.info("Extracting: " + entry); - if (entry.getName().endsWith(".webm")) { + String fileExtension = Files.getFileExtension(entry.getName()); + if (VIDEO_EXTENSIONS.contains(fileExtension)) { recordingFiles.add(new File(path + entry.getName())); } int count;