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}"