이 사이트에서 스크린 캐스트 (아래 그림과 같은)의 애니메이션 GIF 이미지가 답변을 개선하는 방법으로 몇 번 홍보되는 것을 보았습니다.
이를 작성하기 위해 어떤 툴체인이 사용되고 있습니까? 이것을 자동적으로 수행하는 프로그램이 있습니까, 아니면 사람들이 스크린 캐스트를 찍어 일련의 정적 프레임으로 변환 한 다음 GIF 이미지를 만드는 프로그램이 있습니까?
답변
몰래 엿보다
화면에서 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 리포지토리 에서 찾으십시오 .
답변
비 잔츠
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
답변
먼저 이것을 설치하십시오 :
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
답변
개요
이 답변에는 세 가지 셸 스크립트가 포함되어 있습니다.
byzanz-record-window
-녹화 할 창을 선택합니다.byzanz-record-region
-녹화 화면의 일부를 선택합니다.- MHC 의 간단한 GUI 프론트 엔드 .
소개
소개해byzanz
주셔서 감사합니다 Bruno Pereira ! GIF 애니메이션을 만드는 데 매우 유용합니다. 경우에 따라 색상이 꺼져있을 수 있지만 파일 크기가이를 보완합니다. 예 : 40초, 3.7MB .
용법
다음 두 스크립트 중 하나 / 모두를에있는 폴더에 저장하십시오 $PATH
. 다음은 첫 번째 스크립트를 사용하여 특정 창의 스크린 캐스트를 만드는 예입니다.
- 운영
byzanz-record-window 30 -c output.gif
- 캡처하려는 창 (alt-tab)으로 이동하십시오. 그것을 클릭하십시오.
$DELAY
녹음 준비를하는 10 초 동안 (하드 코딩 됨 ) 기다립니다 .- 경고음 (
beep
함수에 정의 된) 후에byzanz
시작됩니다. - 30 초 후 (
30
1 단계 의 의미 )byzanz
종료됩니다. 경고음이 다시 방송됩니다.
쉘 스크립트에 대한 인수가 자체에 추가됨을 설명하기 위해 -c
플래그를 포함 시켰습니다 . 플래그는 이야기 도 스크린 캐스트에서 커서를 포함 할 수 있습니다.
보기 또는 자세한 내용은.byzanz-record-window
byzanz-record
-c
byzanz
man byzanz-record
byzanz-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"
답변
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
이것은 예제 1366×768 비디오 크기를 26Mb로 줄였습니다.
영원히 루프
때로는 GIF가 영원히 반복되기를 원할 수 있습니다.
옵션을 사용하십시오 -loop_output 0
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif
더욱 최적화 및 축소
imagemagick
convert
3 %에서 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
예
답변
사일런트 캐스트
Silentcast는 애니메이션 .gif 이미지를 만들기위한 훌륭한 GUI 기반 도구입니다. 기능은 다음과 같습니다.
-
4 가지 녹화 모드 :
-
전체 화면
-
내부 창
-
장식 창
-
맞춤 선택
-
-
3 가지 출력 형식 :
-
.gif
-
.mp4
-
.webm
-
.png
(프레임) -
.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/silentcast
zless 또는 좋아하는 편집기에 저장된 로컬 버전 인 README를 살펴보십시오 .
노트:
Silentcast는 여전히 개발 단계에 있으며 상당히 안정적이지만 몇 가지 버그가 발생할 수 있습니다. 그렇다면 프로젝트의 GitHub 이슈 트래커에 보고하십시오 . PPA에서 설치하는 데 문제가 있고 지원되는 Ubuntu 버전을 실행중인 경우 아래에 의견을 남기거나 Launchpad 의 관리자 에게 문의하십시오 .
답변
여기에 나열된 모든 종류의 복잡하고 잘 작동하는 (아마도) 방법이 있습니다. 그러나 나는 그 과정을 이전과 이후로 진행하고 싶지 않았습니다. 그래서, 나는 몇 번이나 필요에 맞는 온라인 변환기를 사용합니다. 이 사이트를 사용했습니다 :
그것은 내 사이트가 아니며 어떤 식 으로든 그들과 제휴하지 않습니다. 그들은 내 북마크에있는 것 중 하나이며 더 많은 것들이 있습니다.