基于FFMPEG的截屏脚本

基于FFMPEG的截屏脚本

我正在尝试基于 FFmpeg 编写自己的截屏脚本。我希望能够在屏幕上绘制一个矩形并强制 FFmpeg 仅制作该区域的截屏视频,因为我需要起点的 x,y 坐标以及所选区域的分辨率。我可以用 绘制一个矩形区域scrot -s,也可以用 获取坐标,xdotool getmouselocation但我不知道如何保存scrot起始位置的位置。

我想象我的脚本会是这样的:

  1. scrot -s- 在屏幕上绘制一个矩形区域
  2. 将 start_x、start_y 位置保存在变量中
  3. ffmpeg -i scrot_screenshot- 获取所选区域的分辨率
  4. 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"

在您要记录的区域上使用透明术语。

参考; https://stackoverflow.com/a/5970472/1133275

相关内容