diff --git a/client/src/main/resources/logback.xml b/client/src/main/resources/logback.xml index dbd3a502..75a77817 100644 --- a/client/src/main/resources/logback.xml +++ b/client/src/main/resources/logback.xml @@ -43,6 +43,7 @@ + diff --git a/common/src/main/java/ctbrec/Settings.java b/common/src/main/java/ctbrec/Settings.java index 59c1eac5..5c41f34d 100644 --- a/common/src/main/java/ctbrec/Settings.java +++ b/common/src/main/java/ctbrec/Settings.java @@ -56,6 +56,7 @@ public class Settings { public String colorBase = "#FFFFFF"; public int concurrentRecordings = 0; public boolean confirmationForDangerousActions = false; + public String contactsheetTimestampLook = "font=sans-serif:fontcolor=white:fontsize=60:box=1:boxcolor=black@0.5:boxborderw=5"; public boolean determineResolution = false; public List disabledSites = new ArrayList<>(); public String downloadFilename = "${modelSanitizedName}-${localDateTime}"; diff --git a/common/src/main/java/ctbrec/io/ProcessStreamRedirector.java b/common/src/main/java/ctbrec/io/ProcessStreamRedirector.java index 2b68b8c8..61486ad4 100644 --- a/common/src/main/java/ctbrec/io/ProcessStreamRedirector.java +++ b/common/src/main/java/ctbrec/io/ProcessStreamRedirector.java @@ -4,6 +4,7 @@ import static java.util.concurrent.TimeUnit.*; import java.io.InputStream; import java.io.OutputStream; +import java.util.Objects; import java.util.concurrent.ScheduledExecutorService; import org.slf4j.Logger; @@ -37,7 +38,9 @@ public class ProcessStreamRedirector implements Runnable { executor.schedule(this, 100, MILLISECONDS); } } catch (Exception e) { - LOG.debug("Error while reading from process output stream: {}", e.getLocalizedMessage()); + if (!Objects.equals(e.getMessage(), "Stream Closed")) { + LOG.debug("Error while reading from process output stream: {}", e.getLocalizedMessage(), e); + } keepGoing = false; } } diff --git a/common/src/main/java/ctbrec/recorder/FFmpeg.java b/common/src/main/java/ctbrec/recorder/FFmpeg.java index 1c7d80a8..b6bb9ebc 100644 --- a/common/src/main/java/ctbrec/recorder/FFmpeg.java +++ b/common/src/main/java/ctbrec/recorder/FFmpeg.java @@ -46,7 +46,7 @@ public class FFmpeg { } public void exec(String[] cmdline, String[] env, File executionDir) throws IOException { - LOG.debug("FFmpeg command line: {}", Arrays.toString(cmdline)); + LOG.trace("FFmpeg command line: {}", Arrays.toString(cmdline)); process = Runtime.getRuntime().exec(cmdline, env, executionDir); afterStart(); } @@ -57,7 +57,7 @@ public class FFmpeg { } public void shutdown(int exitCode) throws IOException { - LOG.debug("FFmpeg exit code was {}", exitCode); + LOG.trace("FFmpeg exit code was {}", exitCode); ffmpegLogStream.flush(); ffmpegLogStream.close(); stdoutRedirector.setKeepGoing(false); @@ -77,7 +77,7 @@ public class FFmpeg { if (ffmpegLog == null) { ffmpegLog = File.createTempFile("ffmpeg_", ".log"); } - LOG.debug("Logging FFmpeg output to {}", ffmpegLog); + LOG.trace("Logging FFmpeg output to {}", ffmpegLog); ffmpegLog.deleteOnExit(); ffmpegLogStream = new FileOutputStream(ffmpegLog); } else { diff --git a/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java b/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java index 7ec798d2..5459dcdc 100644 --- a/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java +++ b/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java @@ -78,7 +78,7 @@ public class CreateContactSheet extends AbstractPlaceholderAwarePostProcessor { output.getCanonicalPath() }; String[] cmdline = OS.getFFmpegCommand(args); - LOG.debug("Executing {} in working directory {}", Arrays.toString(cmdline), executionDir); + LOG.trace("Executing {} in working directory {}", Arrays.toString(cmdline), executionDir); File ffmpegLog = new File(System.getProperty("java.io.tmpdir"), "create_contact_sheet_" + rec.getId() + ".log"); FFmpeg ffmpeg = new FFmpeg.Builder() .logOutput(config.getSettings().logFFmpegOutput) @@ -102,6 +102,7 @@ public class CreateContactSheet extends AbstractPlaceholderAwarePostProcessor { int numberOfThumbs = rows * cols; long lengthInSeconds = rec.getLength().getSeconds(); double thumbnailInterval = lengthInSeconds / (double)numberOfThumbs; + String timestampLook = config.getSettings().contactsheetTimestampLook; NumberFormat nf = new DecimalFormat("000"); for (int i = 0; i < numberOfThumbs; i++) { @@ -114,8 +115,7 @@ public class CreateContactSheet extends AbstractPlaceholderAwarePostProcessor { int minutes = (int) (startTimeInSeconds % 3600 / 60); int seconds = (int) (startTimeInSeconds % 60); String timestamp = String.format("%02d\\:%02d\\:%02d", hours, minutes, seconds); - videoFilter += ",drawtext='text=" + timestamp - + ":fontcolor=white:fontsize=48:box=1:boxcolor=black@0.5:boxborderw=5:x=(w-text_w-20):y=(h-text_h-20)'"; + videoFilter += ",drawtext='text=" + timestamp + ":" + timestampLook + ":x=(w-text_w-20):y=(h-text_h-20)'"; } File input = getInputFile(rec); @@ -135,7 +135,7 @@ public class CreateContactSheet extends AbstractPlaceholderAwarePostProcessor { output.getCanonicalPath() }; String[] cmdline = OS.getFFmpegCommand(args); - LOG.info("Executing {} in working directory {}", Arrays.toString(cmdline), executionDir); + LOG.trace("Executing {} in working directory {}", Arrays.toString(cmdline), executionDir); FFmpeg ffmpeg = new FFmpeg.Builder() .logOutput(config.getSettings().logFFmpegOutput) diff --git a/server/src/main/resources/logback.xml b/server/src/main/resources/logback.xml index 9510a00e..14012204 100644 --- a/server/src/main/resources/logback.xml +++ b/server/src/main/resources/logback.xml @@ -37,6 +37,7 @@ +