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 @@
+