dotfiles-mirror/local/bin/Xrec
2025-12-30 16:08:52 +03:30

32 lines
863 B
Bash
Executable file

#!/usr/bin/env sh
VIDEO_SIZE="1920x1080"
DISPLAY_NUM=":0.0"
AUDIO_SOURCE="default"
FPS="60"
OUTPUT_FILE="recording_$(date +%Y%m%d_%H%M%S).mkv"
AUDIO_BITRATE="128k"
record() {
local out_file="${1:-$OUTPUT_FILE}"
echo "Starting screen + mic recording..."
echo "Resolution: $VIDEO_SIZE @ ${FPS}fps"
echo "Audio source: $AUDIO_SOURCE"
echo "Output: $out_file"
ffmpeg -y \
-thread_queue_size 1024 \
-f x11grab -framerate "$FPS" -video_size "$VIDEO_SIZE" -i "$DISPLAY_NUM" \
-thread_queue_size 1024 \
-f pulse -i "$AUDIO_SOURCE" \
-c:v h264_nvenc -preset p1 -rc vbr -cq 23 \
-pix_fmt yuv420p \
-c:a aac -b:a "$AUDIO_BITRATE" \
-vsync 1 \
"$out_file"
}
show_help() {
echo "Usage: $0 record [output_file]"
}
if [ "$1" = "--record" ]; then
record "$2"
else
show_help
fi