自动控制手机拍照 及 电脑截图
1..修改端口

adb -s CB512EJYYN tcpip 5555

2..脚本

#!/bin/bash

# 相机应用的包名
CAMERA_PACKAGE="com.sonyericsson.android.camera"
SCREENSHOT_DIR="/Users/macm2/Documents/日记"
# FTP server details
FTP_SERVER="192.168.2.65"
FTP_PORT=7275
REMOTE_DIR="/device/DCIM/100ANDRO"
LOCAL_DIR="/Users/macm2/Documents/日记/拍照"

while true; do
    
    date +"%Y-%m-%d %H:%M:%S"
    # 记录当前时间
    START_TIME=$(date +%s)

    # 亮屏
    screen_state=$(adb -s 192.168.2.65:5555 shell "dumpsys window policy | grep 'screenState='")
    if [[ $screen_state == *"screenState=2"* ]]; then
        echo "屏幕已点亮"
    else
        echo "屏幕未点亮"
        echo 亮屏
        adb -s 192.168.2.65:5555 shell input keyevent 26
        # echo sleep 3
        sleep 3
    fi


    # 检查相机应用是否在运行
    if ! adb -s 192.168.2.65:5555 shell dumpsys activity top | grep -q "TASK com.sonyericsson.android.camera"; then
        # 如果不在运行,则进入拍照模式
        echo 进入拍照模式
        adb -s 192.168.2.65:5555 shell am start -a android.media.action.IMAGE_CAPTURE
        # 等待直到照片被拍摄,这里我们简单地等待5秒
        # echo sleep 3
        sleep 3
    fi

    # 模拟点击快门按钮
    echo 快门
    adb -s 192.168.2.65:5555 shell input keyevent 24
    # 等待照片保存完成
    # echo sleep 3
    sleep 3
    # 获取当前时间戳作为文件名
    TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
    # 构建完整的文件路径
    FILEPATH="$SCREENSHOT_DIR/$TIMESTAMP.png"
    # 执行截图并保存
    screencapture -x "$FILEPATH"

    echo 熄屏
    adb -s 192.168.2.65:5555 shell input keyevent 26

    lftp -c "open -u anonymous,anonymous $FTP_SERVER:$FTP_PORT; mirror $REMOTE_DIR $LOCAL_DIR"
    
    # 计算本次循环的实际用时
    ELAPSED_TIME=$(( $(date +%s) - START_TIME ))
    echo 本轮耗时:$ELAPSED_TIME

    # 计算还需要等待多少时间才能达到60秒
    WAIT_TIME=$((60 - ELAPSED_TIME))

    # 如果WAIT_TIME是正数,说明还没到一分钟,需要等待
    if [ $WAIT_TIME -gt 0 ]; then
        sleep $WAIT_TIME
    fi

done

3..为图片添加时间水印 ( 修改时间 )

#!/bin/bash

# 创建processed目录,如果它还不存在的话
mkdir -p processed

# 设置计数器
counter=1

# 遍历目录下的所有.jpg等文件
for file in *.jpg *.JPG *.jpeg *.JPEG *.png *.PNG ; do
    if [ -f "$file" ]; then
        # 获取文件的原始扩展名
        extension="${file##*.}"
        # 获取文件的修改时间,并转换为易读的格式
        # 注意这里的修改,使用-f选项
        mod_time=$(stat -f %m "$file")
        readable_time=$(date -r "$mod_time" "+%Y-%m-%d %H:%M:%S")
	filename="image_$(printf "%04d" $counter).$extension"
	# 增加计数器
	((counter++))
        # 使用ImageMagick的magick命令来添加时间水印
        magick \
            "$file" \
            -font Arial \
            -pointsize 120 \
            -fill '#FFFFFF55' \
            -gravity southeast \
            -annotate +10+10 "$readable_time" \
            "processed/$filename"
    fi
done

4..将图片合成视频


ffmpeg -framerate 10 -i image_%04d.png -c:v libsvtav1 -crf 32 -pix_fmt yuv420p video1.mp4

#当排序不是从 0001 开始的时候
ffmpeg -framerate 10 -pattern_type glob -i 'image_*.png' -c:v libsvtav1 -crf 32 -pix_fmt yuv420p video1.mp4

ffmpeg -framerate 10 -i DSC_%04d.JPG -c:v libsvtav1 -crf 36 -pix_fmt yuv420p video2.mp4