我正在尝试基于 FFmpeg 编写自己的截屏脚本。我希望能够在屏幕上绘制一个矩形并强制 FFmpeg 仅制作该区域的截屏视频,因为我需要起点的 x,y 坐标以及所选区域的分辨率。我可以用 绘制一个矩形区域scrot -s
,也可以用 获取坐标,xdotool getmouselocation
但我不知道如何保存scrot
起始位置的位置。
我想象我的脚本会是这样的:
scrot -s
- 在屏幕上绘制一个矩形区域- 将 start_x、start_y 位置保存在变量中
ffmpeg -i scrot_screenshot
- 获取所选区域的分辨率ffmpeg -video_size $area_resolution -f x11grab -i :0.0+start_x,start_y screen_capture.mp4
- 创建截屏视频
所以我只需要 2 的解决方案,我可以自己完成脚本的其余部分。
当然,我可以使用不同的scrot
命令来绘制屏幕的矩形区域,但到目前为止,我没有找到合适的替代品。
最终目标是创建这样一个脚本,我肯定会将其发布在我的 Github 帐户上,并附带有关如何使用它的相应文档。
答案1
尝试这个;
#!/bin/bash
echo click T.L.
echo -ne "\e[?1000h"
while read -srn 6; do
eval "$(xdotool getmouselocation --shell)"
TL=$X,$Y
echo -ne "\e[?1000l"
break
done
sleep 0.5
echo click B.R.
echo -ne "\e[?1000h"
while read -srn 6; do
eval "$(xdotool getmouselocation --shell)"
BR=$X,$Y
echo -ne "\e[?1000l"
break
done
echo "$TL.$BR"
在您要记录的区域上使用透明术语。