a script to screen recording


#!/bin/sh
# 检查是否安装了 ffmpeg
if ! command -v ffmpeg >/dev/null 2>&1; then
    echo "错误:未安装 ffmpeg。请安装后再继续"
    exit 1
fi
clear
echo -ne "\e[?25l"
# 获取屏幕尺寸
SCREEN_SIZE=$(xdpyinfo | grep dimensions | awk '{print $2}')
if [ -z "$SCREEN_SIZE" ]; then
    echo "错误:无法获取屏幕尺寸。"
    exit 1
fi

# 获取输出文件名
OUTPUT_FILE="output.mp4"
read -p "请输入输出文件名(默认:output.mp4):" USER_INPUT
if [ ! -z "$USER_INPUT" ]; then
    OUTPUT_FILE="$USER_INPUT"
    # 确保文件名有 .mp4 扩展名
    if [[ ! "$OUTPUT_FILE" == *.mp4 ]]; then
        OUTPUT_FILE="$OUTPUT_FILE.mp4"
    fi
fi

# 开始录制屏幕和系统音频
echo -e "开始屏幕和系统音频录制...(按 Q 停止)"

# 使用 pulseaudio 来录制音频,并增加音量
ffmpeg -y -loglevel error -r 30 -f x11grab -s "$SCREEN_SIZE" -i :0.0 \
    -f pulse -i default -c:v libx264 -preset ultrafast -filter:a "volume=40" -c:a aac -strict experimental "$OUTPUT_FILE" 

echo -ne "\e[?25h"
# 一旦 ffmpeg 完成,通知用户
echo -e "屏幕和系统音频录制完成。文件名:${OUTPUT_FILE}"