FFMPEGベースのスクリーンショットスクリプト

FFMPEGベースのスクリーンショットスクリプト

FFmpegに基づいて独自のスクリーンキャストスクリプトを作成しようとしています。開始点のx、y座標と選択した領域の解像度が必要なので、画面に長方形を描き、FFmpegにその領域のスクリーンキャストだけを作成させたいと思います。で長方形の領域を描くことができ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

関連情報