스크린 캐스트의 애니메이션 GIF 이미지를 만드는 방법은 무엇입니까?


476

이 사이트에서 스크린 캐스트 (아래 그림과 같은)의 애니메이션 GIF 이미지가 답변을 개선하는 방법으로 몇 번 홍보되는 것을 보았습니다.

애니메이션 GIF 이미지

이를 작성하기 위해 어떤 툴체인이 사용되고 있습니까? 이것을 자동적으로 수행하는 프로그램이 있습니까, 아니면 사람들이 스크린 캐스트를 찍어 일련의 정적 프레임으로 변환 한 다음 GIF 이미지를 만드는 프로그램이 있습니까?


6
LICEcap (http://www.cockos.com/licecap) 은 GUI 기반이기 때문에 아래 솔루션보다 훨씬 간단합니다. 자유와 가격 에서처럼 무료입니다. 유일한 단점은 와인을 통해 그것을 실행해야한다는 것입니다.
Dennis

4
관련 : GIF 스크린 캐스팅; 유닉스 및 리눅스 스택 교환에서 유닉스 방식 .
Cristian Ciupitu


2
이 예제 스크린 샷은 Windows에서 촬영 되었습니까?
Clément

@ Clément 저도 처음 눈에 was 것입니다 :)
UniversallyUniqueID

답변:


269

몰래 엿보다

화면에서 GIF를 쉽게 기록 할 수있는 새로운 응용 프로그램입니다.

엿보기 스크린 캐스트 데모

어쨌든 GIF는 색상 팔레트가 매우 제한되어 있으므로 사용하는 것이 좋지 않습니다.

Ubuntu 18.10부터 Peek를 직접 설치할 수 있습니다.

sudo apt install peek

이전 버전의 Ubuntu의 경우 PPA 에서 최신 버전의 Peek를 설치할 수 있습니다 .

sudo add-apt-repository ppa:peek-developers/stable
sudo apt update
sudo apt install peek

자세한 내용은 GitHub 리포지토리 에서 찾으십시오 .


2
예, 이거 훌륭합니다. 유일한 X11으로 작동하고 GNOME 3을 대상으로
Ajith R 나이 르

2
@BeastWinterwolf 및 ExillustX : 여기에 버그 보고서를 게시하지 마십시오. 사람들이 실제로보고 싶어하는 이슈 트래커를 사용하십시오! 여기에보고하십시오 : github.com/phw/peek/issues
oligofren

2
이것은 훌륭한 도구입니다.
Mike

1
@Jop V. 레코드 기록은 어떻게 했습니까?
milkovsky

1
@ milkovsky 나는 이것을 기록하지 않았다. 그것은 그들이 가상 머신을 사용하고 그것을 기록했다고 생각합니다.
stommestack

272

비 잔츠

GIF 스크린 캐스트를 기록한 최고의 소프트웨어는 Byzanz입니다.

Byzanz는 GIF에 직접 기록하기 때문에 훌륭합니다. 파일 크기를 최소로 유지하면서 품질과 FPS가 인상적입니다.

설치

Byzanz는 이제 유니버스 저장소에서 사용할 수 있습니다.

sudo apt-get install byzanz

용법

설치되면 터미널에서 실행할 수 있습니다.

이것은 지금 막 내가 한 작은 예입니다

byzanz-record --duration=15 --x=200 --y=300 --width=700 --height=400 out.gif

여기에 이미지 설명을 입력하십시오


3
고마워, 좋은 도구! 색상이 항상 정확한 것은 아니지만 사소한 세부 사항입니다. 아래 답변에 게시 된 창 (사용자가 런타임에 선택한)을 캡처하는 데 도움이되는 쉘 스크립트를 작성했습니다 .
Rob W

57
비 잔츠에는 UI가 없습니다! 기록하려는 영역의 x, y, 너비 및 높이를 추측해야합니까? 2014 년에도 여전히이 작업을 수행해야한다는 것은 말도 안됩니다.
Dan Dascalescu

5
@DanDascalescu 아무도 당신이 그것을 사용해야한다고 말하지 않습니다 ... 나는 GUI보다 터미널을 선호합니다. 무엇이 잘못 되었습니까?
Bruno Pereira

31
@DanDascalescu 추측 할 필요가 없습니다. xwininfo창 속성을 얻는 데 사용할 수 있습니다 .
Marcus Møller

4
미리 기간을 알 필요가없는 방법은 무엇입니까? 녹음 할 때 시간이 얼마나 걸리는지 미리 알 수 없습니다.
Nicolas Raoul 2016 년

236

먼저 이것을 설치하십시오 :

sudo apt-get install imagemagick mplayer gtk-recordmydesktop

이것들은 ImageMagick, MPlayer 및 Desktop Recorder와 같은 필수 항목입니다. 그런 다음 Desktop Recorder 를 사용하여 스크린 캐스트로 사용할 화면 / 응용 프로그램의 일부를 캡처하십시오. 바탕 화면 레코더가로 녹음을 저장 한 후 OGV 비디오 , MPlayer는이 '출력'디렉토리로 저장, JPEG 스크린 샷을 캡처하는 데 사용됩니다.

터미널에서 :

mplayer -ao null <video file name> -vo jpeg:outdir=output

ImageMagick 을 사용 하여 스크린 샷을 애니메이션 GIF로 변환하십시오.

convert output/* output.gif

이 방법으로 스크린 샷을 최적화 할 수 있습니다.

convert output.gif -fuzz 10% -layers Optimize optimised.gif

35
gif를 최적화하는 또 다른 방법은 gifsicle을 사용하는 gifsicle -O in.gif -o out.gif것입니다. 방금 파일 크기를 100 배 줄였습니다.
Yrogirg

10
궁금해하는 사람들을 위해 @Yrogirg 명령의 첫 번째 플래그는 숫자 "0"이 아닌 대문자 "O"입니다. :)
brandizzi

2
와, gifsicle은 방금 내 속도는 빨랐지만 더 작게 만들지 않았으며 convert optimize 명령은 그것을 추악하게 만들었습니다.
MalcolmOcean

6
마지막 두 convert단계를 하나로 결합하는 것이 좋습니다 convert output/* -layers Optimize output.gif.. 나에게 이것은 처리 시간을 단축시키고 출력 파일을 작게 만들었습니다. 해당 단계를 별도로 수행해야 할 이유가 없습니다. (나는 -fuzz 10%논쟁을 시도하지 않았다 .)
thejoshwolfe

1
@MalcolmOcean과 마찬가지로 convert성명서는 끔찍한 것 이상이었습니다. 문서 ( imagemagick.org/script/command-line-options.php#layers )에 따르면 optimize구현은 시간이 지남에 따라 변경 될 수 있습니다. 그러나 깃발 로 약간 수정 된 convert진술은 -coalesce개선되었지만 여전히 수용 가능한 곳은 아닙니다. -layers optimize-transparency최상의 결과를 위해 설정 을 사용해야했습니다 .convert 'output/*.jpg' -coalesce -layers optimize-transparency optimised.gif

136

개요

이 답변에는 세 가지 셸 스크립트가 포함되어 있습니다.

  1. byzanz-record-window -녹화 할 창을 선택합니다.
  2. byzanz-record-region -녹화 화면의 일부를 선택합니다.
  3. MHC 의 간단한 GUI 프론트 엔드 .

소개

소개해byzanz 주셔서 감사합니다 Bruno Pereira ! GIF 애니메이션을 만드는 데 매우 유용합니다. 경우에 따라 색상이 꺼져있을 수 있지만 파일 크기가이를 보완합니다. 예 : 40초, 3.7MB .

용법

다음 두 스크립트 중 하나 / 모두를에있는 폴더에 저장하십시오 $PATH. 다음은 첫 번째 스크립트를 사용하여 특정 창의 스크린 캐스트를 만드는 예입니다.

  1. 운영 byzanz-record-window 30 -c output.gif
  2. 캡처하려는 창 (alt-tab)으로 이동하십시오. 그것을 클릭하십시오.
  3. $DELAY녹음 준비를하는 10 초 동안 (하드 코딩 됨 ) 기다립니다 .
  4. 경고음 ( beep함수에 정의 된) 후에 byzanz시작됩니다.
  5. 30 초 후 ( 301 단계 의 의미 ) byzanz종료됩니다. 경고음이 다시 방송됩니다.

쉘 스크립트에 대한 인수가 자체에 추가됨을 설명하기 위해 -c플래그를 포함 시켰습니다 . 플래그는 이야기 도 스크린 캐스트에서 커서를 포함 할 수 있습니다. 보기 또는 자세한 내용은.byzanz-record-windowbyzanz-record-cbyzanz
man byzanz-recordbyzanz-record --help

byzanz-record-window

#!/bin/bash

# Delay before starting
DELAY=10

# Sound notification to let one know when recording is about to start (and ends)
beep() {
    paplay /usr/share/sounds/KDE-Im-Irc-Event.ogg &
}

# Duration and output file
if [ $# -gt 0 ]; then
    D="--duration=$@"
else
    echo Default recording duration 10s to /tmp/recorded.gif
    D="--duration=10 /tmp/recorded.gif"
fi
XWININFO=$(xwininfo)
read X <<< $(awk -F: '/Absolute upper-left X/{print $2}' <<< "$XWININFO")
read Y <<< $(awk -F: '/Absolute upper-left Y/{print $2}' <<< "$XWININFO")
read W <<< $(awk -F: '/Width/{print $2}' <<< "$XWININFO")
read H <<< $(awk -F: '/Height/{print $2}' <<< "$XWININFO")

echo Delaying $DELAY seconds. After that, byzanz will start
for (( i=$DELAY; i>0; --i )) ; do
    echo $i
    sleep 1
done

beep
byzanz-record --verbose --delay=0 --x=$X --y=$Y --width=$W --height=$H $D
beep

byzanz-record-region

종속성 : xrectselxrectsel 로부터 . 저장소를 복제하고 실행 파일을 가져 오십시오. (이 항의 경우에는 메이크 파일, 실행이없는 과 `메이크업을 실행하기 전에이).make./bootstrap./configure

#!/bin/bash

# Delay before starting
DELAY=10

# Sound notification to let one know when recording is about to start (and ends)
beep() {
    paplay /usr/share/sounds/KDE-Im-Irc-Event.ogg &
}

# Duration and output file
if [ $# -gt 0 ]; then
    D="--duration=$@"
else
    echo Default recording duration 10s to /tmp/recorded.gif
    D="--duration=10 /tmp/recorded.gif"
fi

# xrectsel from https://github.com/lolilolicon/xrectsel
ARGUMENTS=$(xrectsel "--x=%x --y=%y --width=%w --height=%h") || exit -1

echo Delaying $DELAY seconds. After that, byzanz will start
for (( i=$DELAY; i>0; --i )) ; do
    echo $i
    sleep 1
done
beep
byzanz-record --verbose --delay=0 ${ARGUMENTS} $D
beep

의 GUI 버전 byzanz-record-window

( MHC의 주석 ) : 간단한 GUI 대화로 스크립트를 수정하는 자유를 얻었습니다.

#!/bin/bash

# AUTHOR:   (c) Rob W 2012, modified by MHC (https://askubuntu.com/users/81372/mhc)
# NAME:     GIFRecord 0.1
# DESCRIPTION:  A script to record GIF screencasts.
# LICENSE:  GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
# DEPENDENCIES:   byzanz,gdialog,notify-send (install via sudo add-apt-repository ppa:fossfreedom/byzanz; sudo apt-get update && sudo apt-get install byzanz gdialog notify-osd)

# Time and date
TIME=$(date +"%Y-%m-%d_%H%M%S")

# Delay before starting
DELAY=10

# Standard screencast folder
FOLDER="$HOME/Pictures"

# Default recording duration
DEFDUR=10

# Sound notification to let one know when recording is about to start (and ends)
beep() {
    paplay /usr/share/sounds/freedesktop/stereo/message-new-instant.oga &
}

# Custom recording duration as set by user
USERDUR=$(gdialog --title "Duration?" --inputbox "Please enter the screencast duration in seconds" 200 100 2>&1)

# Duration and output file
if [ $USERDUR -gt 0 ]; then
    D=$USERDUR
else
    D=$DEFDUR
fi

# Window geometry
XWININFO=$(xwininfo)
read X < <(awk -F: '/Absolute upper-left X/{print $2}' <<< "$XWININFO")
read Y < <(awk -F: '/Absolute upper-left Y/{print $2}' <<< "$XWININFO")
read W < <(awk -F: '/Width/{print $2}' <<< "$XWININFO")
read H < <(awk -F: '/Height/{print $2}' <<< "$XWININFO")

# Notify the user of recording time and delay
notify-send "GIFRecorder" "Recording duration set to $D seconds. Recording will start in $DELAY seconds."

#Actual recording
sleep $DELAY
beep
byzanz-record -c --verbose --delay=0 --duration=$D --x=$X --y=$Y --width=$W --height=$H "$FOLDER/GIFrecord_$TIME.gif"
beep

# Notify the user of end of recording.
notify-send "GIFRecorder" "Screencast saved to $FOLDER/GIFrecord_$TIME.gif"

17
이 스크립트는 github와 같은 곳에 유지됩니까? 그것들은 매우 유용합니다 .StackOverflow 답변의 텍스트보다 나은 곳을 유지하면 좋을 것입니다.
KFro

1
@KFro 이것은 Ask Ubuntu입니다. SO는 아닙니다.) 아니요, 스크립트 자체가 잘못 문서화되어 있기 때문에 git 저장소에 넣지 않았습니다 (사용자의 경우). 함께 제공되는 설명서가 답변에 포함되어 있으므로 Git 리포지토리에서 파일과 설명서를 분할해도 아무런 이점이 없습니다.
Rob W

1
더 이상 편집에 대한 크레딧은 없지만 ;-)를 수행했습니다.
Rmano

2
이 답변에 큰 감사를 표하고 싶었습니다. 여기에 내가 가진 것이 있습니다. notify-send소리가 나지 않을 때도 사용 하고 싶습니다 .
Daniel Buckmaster

2
@Masi Byzanz-이 스크립트는 16.04에서 잘 작동합니다
Jeff Puckett

51

ffmpeg ffmpeg 설치

내가 사용하는 가장 좋은 도구 중 하나는 ffmpeg입니다. 스크린 캐스트 도구에서 대부분의 비디오를 가져 와서 kazam다른 형식으로 변환 할 수 있습니다.

소프트웨어 센터 에서 설치하십시오 -우수한 ubuntu-restricted-extras패키지 를 설치하면 자동으로 설치됩니다 .

Kazam은 비디오 형식으로 mp4또는을 출력 할 수 있습니다 webm. 일반적으로 더 나은 결과를 mp4형식으로 출력 합니다.

GIF 만들기 구문 예

비디오를 gif로 변환하는 기본 구문은 다음과 같습니다.

ffmpeg -i [inputvideo_filename] -pix_fmt rgb24 [output.gif]

변환 된 GIF-특히 표준 초당 25/29 프레임의 GIF는 매우 클 수 있습니다. 예를 들어, 25fps에서 800Kb webm 15 초 비디오를 435Mb로 출력 할 수 있습니다!

여러 가지 방법으로이를 줄일 수 있습니다.

프레임 속도

옵션을 사용하십시오 -r [frame-per-second]

예를 들어 ffmpeg -i Untitled_Screencast.webm -r 1 -pix_fmt rgb24 out.gif

크기가 435Mb에서 19Mb로 감소

파일 크기 제한

옵션을 사용하십시오 -fs [filesize]

예를 들어 ffmpeg -i Untitled_Screencast.webm -fs 5000k -pix_fmt rgb24 out.gif

참고-대략적인 출력 파일 크기이므로 지정된 크기보다 약간 클 수 있습니다.

출력 비디오의 크기

옵션을 사용하십시오 -s [widthxheight]

예를 들어 ffmpeg -i Untitled_Screencast.webm -s 320x200 -pix_fmt rgb24 out.gif

이것은 예제 1366x768 비디오 크기를 26Mb로 줄였습니다.

영원히 루프

때로는 GIF가 영원히 반복되기를 원할 수 있습니다.

옵션을 사용하십시오 -loop_output 0

ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif

더욱 최적화 및 축소

imagemagick convert3 %에서 10 % 사이의 퍼즈 팩터 를 사용 하면 이미지 크기를 크게 줄일 수 있습니다

convert output.gif -fuzz 3% -layers Optimize finalgif.gif

드디어

Ask Ubuntu에서 관리하기 쉬운 것으로 줄이기 위해 이러한 옵션 중 일부를 결합하십시오.

ffmpeg -i Untitled_Screencast.webm -loop_output 0 -r 5 -s 320x200 -pix_fmt rgb24 out.gif

뒤에

convert output.gif -fuzz 8% -layers Optimize finalgif.gif

여기에 이미지 설명을 입력하십시오


당신이 도커을 가지고 비디오 인 경우 demo.mkv이 명령을 실행할 수 있습니다 docker run --rm -v $(pwd):/tmp/video/ jrottenberg/ffmpeg -i /tmp/video/demo.mkv -framerate 1/2 -pix_fmt rgb24 -loop 0 /tmp/video/demo.gif,sudo chown $USER:$USER demo.gif
czerasz

2
나에게 그것은 같은 옵션이 없다고 불평합니다 -loop_output...

1
+1 최고의 답변. 그러나 하나의 질문은 여전히 ubuntu-restricted-extras우수 하다고 생각합니까 ??
Severus Tux

1
@ParanoidPanda 이제 옵션은 -loop입니다. 그렇습니다 -loop 0. 다음은 Ubuntu 16.04.01의 작동 명령입니다 ffmpeg -f x11grab -r 25 -s 100x100 -i :0.0+500,500 -pix_fmt rgb24 -loop 0 out2.gif. +500,500100x100 직사각형을 시작하는 X, Y 위치입니다. xgrab화면을 입력으로 사용합니다.
sanbor

34

사일런트 캐스트

Silentcast는 애니메이션 .gif 이미지를 만들기위한 훌륭한 GUI 기반 도구입니다. 기능은 다음과 같습니다.

  • 4 가지 녹화 모드 :

    1. 전체 화면

    2. 내부 창

    3. 장식 창

    4. 맞춤 선택

  • 3 가지 출력 형식 :

    1. .gif

    2. .mp4

    3. .webm

    4. .png (프레임)

    5. .mkv

  • 설치 불필요 (휴대용)

  • 사용자 정의 작업 디렉토리

  • 커스텀 FPS

설치

정기적으로 설치하고 지원되는 Ubuntu 버전을 실행중인 경우 PPA로 Silentcast를 설치할 수 있습니다.

sudo add-apt-repository ppa:sethj/silentcast  
sudo apt-get update  
sudo apt-get install silentcast  

당신이 (당신이 정말로 업그레이드해야합니다!) 우분투의 지원되는 버전을 실행하지 않는 경우 최신 버전을 다운로드해야합니다 GitHub의 페이지에서 수동으로 (당신이에서 야드와는 FFmpeg을 조달 할 수있는 종속 관계를 만족 여기여기에 각각)이나, 13.10과 같은 약간 더 최신 버전을 실행중인 경우 .deb를 직접 다운로드 할 수 있습니다 .

Gnome을 사용하는 경우 Topicons 확장 프로그램 을 설치하여 Silentcast를보다 쉽게 ​​중지 할 수 있습니다.

용법

데스크탑 환경의 GUI에서 Silentcast를 시작하거나 silentcast터미널 에서 명령을 실행하십시오 . 설정을 선택하고 화면의 지시를 따릅니다. 녹음이 끝나면 특정 수의 프레임을 제거하여 최종 출력을 최적화하기위한 대화 상자가 표시됩니다.

자세한 사용 지침은 온라인 GitHub 버전 또는 /usr/share/doc/silentcastzless 또는 좋아하는 편집기에 저장된 로컬 버전 인 README를 살펴보십시오 .

예

노트:

Silentcast는 여전히 개발 단계에 있으며 상당히 안정적이지만 몇 가지 버그가 발생할 수 있습니다. 그렇다면 프로젝트의 GitHub 이슈 트래커에 보고하십시오 . PPA에서 설치하는 데 문제가 있고 지원되는 Ubuntu 버전을 실행중인 경우 아래에 의견을 남기거나 Launchpad 의 관리자 에게 문의하십시오 .


내가 '중지'를 누르 자마자 충돌이 발생합니다 ...
Francisco Corrales Morales

@FranciscoCorralesMorales 명령 줄에서 실행 한 다음 사용해 볼 수 있습니까? 충돌이 발생하면 출력을 가져 와서 paste.ubuntu.com에 업로드하고 여기에 다시 연결하여 살펴볼 수 있습니다. 감사!
세스

1
이것이 잘 작동하는지 확인할 수 있습니다! 이 답변에 표시된 것처럼 열린 창 밖에서 큰 해상도로 매우 작은 (650 KB) .gif 파일을 만듭니다. askubuntu.com/questions/882419/… @Seth 포스터를 추가 할 수 있습니다 일반 대화방 설정 :)
WinEunuuchs2Unix

프로젝트가 취소 되었습니까? 거의 2 년 동안 저장소에 대한 커밋은 없었습니다.
플럭스

불행히도 @flux는 건강 문제와 uni 사이에 있습니다. 저장소가 현재 폐기되었습니다. 그러나 GitHub의 프로젝트는 아니지만 최신 코드를 얻을 수 있습니다.
Seth

8

여기에 나열된 모든 종류의 복잡하고 잘 작동하는 (아마도) 방법이 있습니다. 그러나 나는 그 과정을 이전과 이후로 진행하고 싶지 않았습니다. 그래서, 나는 몇 번이나 필요에 맞는 온라인 변환기를 사용합니다. 이 사이트를 사용했습니다 :

http://ezgif.com/video-to-gif

그것은 내 사이트가 아니며 어떤 식 으로든 그들과 제휴하지 않습니다. 그들은 내 북마크에있는 것 중 하나이며 더 많은 것들이 있습니다.


나는 이것을 좋아한다. 이미 simplescreenrecorder를 사용하여 occassion에서 YouTube의 데스크톱을 녹화하므로 mkv를 gif로 쉽게 전환 할 수 있습니다.
isaaclw

8

Rob W의record-gif.sh 개선 된 버전을 만들었습니다 .byzanz-record-region

byzanz사용자 경험 향상 ( 마우스 선택 가능 영역 , 레코딩 진행률 표시 줄, 재생 가능 레코딩 )을 위한 절름발이 GUI .

포탄을 가진 기록 데스크탑

  • 녹화 설정 duration;
  • save_as목적지 설정 ;
  • 마우스 로 기록 할 영역을 선택하십시오 .
  • 녹음을 재생할 스크립트를 작성하십시오 (참조 $HOME/record.again).

설치

또한 설치 스크립트를 만들었습니다

curl --location https://git.io/record-gif.sh | bash -

1
sudo apt install autoconf byzanz이 스크립트를 실행하기 전에 수행해야합니다 . 그것은 우분투에서 기본적으로 설치되지 않습니다
Crantisz

감사 @Crantisz, 내가 설치하는 설치 스크립트를 업데이트 autoconf하고 byzanz. 당신은 그것을 시도 할 수 있습니까?
Édouard Lopez

방금 다른 PC에서 테스트했습니다. 새로 설치된 우분투 시스템에는 자식이 없습니다. 그리고 나는 왜 그런지 모르겠지만 두 번째 apt-get Y / N 질문 직후 스크립트가 중지됩니다. 모든 의존성을 하나의 명령으로 묶을 수 있습니까?
Crantisz

@Crantisz 명령은 인스톨러 스크립트입니다. 단지 record-gif.sh를 원한다면 repo에서 얻을
Édouard Lopez

4
  1. 다음 3 가지 패키지를 설치하십시오. imagemagick mplayer gtk-recordmydesktop
  2. Desktop Recorder 를 실행 하여 스크린 캐스트로 사용할 화면 / 응용 프로그램의 일부를 캡처 하십시오.
  3. https://github.com/nicolas-raoul/ogv2gifogv2gif.sh 에서 다운로드
  4. 운영: ./ogv2gif.sh yourscreencast.ogv
  5. GIF 파일은 같은 디렉토리에 저장됩니다

maniat1k의 답변 에서 100 % 영감을 얻었습니다 .


3

더 화려하게 만들고 싶다면 HTMl5 캔버스 스크린 캐스팅을 사용하는 애니메이션 GIF보다 더 정교한 방법을 사용할 수 있습니다. X11-캔버스 스크린 캐스트의 프로젝트는 HTML5 캔버스 애니메이션 화면 캡처를 작성합니다.

Sublime Text 웹 사이트에서이 기술의 유명한 예 를 보았을 것 입니다. x11-canvas-screencast마우스 커서 추적을 통합하여이 방법을 한 단계 더 발전시킵니다. 다음은 x11-canvas-screencast가 생산 하는 데모입니다.

결과는 색상 수에 제한되지 않고 대역폭을 덜 사용하기 때문에 애니메이션 GIF보다 좋습니다.


1
그것은 훌륭하지만 모두 당신이 쉽게 공유 할 수는 없습니다. 예 : 슬랙, 트위터 등
Elijah Lynn

@ElijahLynn은 매우 사실입니다. 이 솔루션은 높은 프레임 속도, 낮은 대역폭, 풀 컬러 깊이에 최적화되어 있습니다. 자바 스크립트가 필요하므로 이식 할 수 없습니다 (예 : 트윗에 포함).
gene_wood

3

마우스 클릭을 캡처하기 위해 내가 찾은 유일한 것은 key-mon(의 README를 통해 screenkey) :

그럼 내가:

  • 스타트 key-mon
  • 사용 xrectsel화면을 얻기 위해 투입 좌표 byzanz명령
  • 실행 byzanz명령을

... 그리고 다음과 같이 보입니다.

out.gif

그 주 key-mon --visible_click마우스 클릭시 마우스 포인터 주위에 원 그리는 것 - (내가 선호하지만,이 원이 표시 올바르게 클릭을 설명하기 위해 충분히 빠르게 사라지지 않는 한 우분투 14.04.5 LTS에서이 다소 깨진 즉, 마우스를 눌렀다 놓습니다).


2

최근에 여기에 게시 된 통합 스크립트 버전을 만들었습니다.
기본적으로 간단한 GUI로 화면 영역을 기록 할 수 있습니다.

멋진 스크립트를 제공 해준 Rob W 에게 감사합니다

다음은 코드입니다 (또는 원하는 경우 요점 ).

#!/bin/bash

#Records selected screen region, with GUI

#This is combined version of GIF recording scripts, that can be found here: https://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast
#Thanks to Rob W, and the other author (unmentioned), for creating this lovely scripts

#I do not own any rights to code I didn't write
#                                     ~Jacajack

DELAY=5 #Delay before starting
DEFDUR=10 #Default recording duration
TIME=$(date +"%Y-%m-%d_%H%M%S") #Timestamp
FOLDER="$HOME/Pictures/Byzanz" #Default output directory

#Sound notification to let one know when recording is about to start (and ends)
beep() {
    paplay /usr/share/sounds/freedesktop/stereo/message-new-instant.oga &
}

#Custom recording duration as set by user
USERDUR=$(gdialog --title "Duration?" --inputbox "Please enter the screencast duration in seconds" 200 100 2>&1)

#Duration and output file
if [ $USERDUR -gt 0 ]; then
    D=$USERDUR
else
    D=$DEFDUR
fi

#Get coordinates using xrectsel from https://github.com/lolilolicon/xrectsel
REGION=$(xrectsel "--x=%x --y=%y --width=%w --height=%h") || exit -1

notify-send "GIFRecorder" "Recording duration set to $D seconds. Recording will start in $DELAY seconds."

for (( i=$DELAY; i>0; --i )) ; do
    sleep 1
done

#Record
beep
byzanz-record --cursor --verbose --delay=0 ${REGION} --duration=$D "$FOLDER/byzanz-record-region-$TIME.gif"
beep

notify-send "GIFRecorder" "Screencast saved to $FOLDER/byzanz-record-region-$TIME.gif"

2

마우스 클릭이나 키 스트로크를 눈에 띄게 녹화하려면 screenkey를 사용하는 것이 가장 좋습니다. https://github.com/wavexx/screenkey


2
screenkey마우스 클릭을 처리 하는 방법을 보지 못했지만 (키보드 표시 만 해당) README는 key-mon어떤 작업을 수행 할 수 있는지 나타냅니다 . 아래 답변을 참조하십시오 .
sdaau

1

사용 gtk-recordmydesktopffmpeg:

apt-get install gtk-recordmydesktop ffmpeg

RecordMyDesktop을 실행하여 스크린 캐스트로 사용할 화면 / 응용 프로그램의 일부를 캡처하십시오.

gtk-recordmydesktop

ogv2gif.sh다음 내용으로 작성하십시오 .

INPUT_FILE=$1
FPS=15
WIDTH=320
TEMP_FILE_PATH="~/tmp.png"
ffmpeg -i $INPUT_FILE -vf fps=$FPS,scale=$WIDTH:-1:flags=lanczos,palettegen $TEMP_FILE_PATH
ffmpeg -i $INPUT_FILE -i $TEMP_FILE_PATH -loop 0 -filter_complex "fps=$FPS,scale=$WIDTH:-1:flags=lanczos[x];[x][1:v]paletteuse" $INPUT_FILE.gif
rm $TEMP_FILE_PATH

그걸 써 :

./ogv2gif.sh yourscreencast.ogv

참고 문헌 :


1

위의 모든 방법을 테스트했는데 가장 간단한 방법은 다음과 같습니다.

  1. 사용 GTK - recordmydesktop키 - 월을 OGV를 얻을 수
  2. ffmpeg -i xx.ogv xx.gif <- 매개 변수없이 .

fps는 원본이며 gif 크기는 ogv 파일보다 작습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.