Better guard against scrambled frames in screenrecording on slower systems

This commit is contained in:
David Heinemeier Hansson
2026-04-24 10:39:31 +02:00
parent 1cf28a9fda
commit 0be4648773
+4 -5
View File
@@ -164,12 +164,11 @@ finalize_recording() {
latest=$(cat "$RECORDING_FILE" 2>/dev/null)
[[ -f $latest ]] || return
# Trim the first frame, and normalize audio to -14 LUFS if present, in a single pass
local args=(-y -ss 0.1 -i "$latest")
# Re-encode to drop scrambled encoder-warmup frames (stream copy can't — it rewinds to the keyframe)
# and normalize audio to -14 LUFS if present, in a single pass
local args=(-y -ss 0.1 -i "$latest" -c:v libx264 -preset veryfast -crf 20)
if ffprobe -v error -select_streams a -show_entries stream=codec_type -of csv=p=0 "$latest" 2>/dev/null | grep -q audio; then
args+=(-af loudnorm=I=-14:TP=-1.5:LRA=11 -c:v copy)
else
args+=(-c copy)
args+=(-af loudnorm=I=-14:TP=-1.5:LRA=11)
fi
local processed="${latest%.mp4}-processed.mp4"