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

관련 정보