and*_*ing 537 screencast
我已经看到在本网站上多次宣传屏幕投射的动画 GIF 图像(如下所示),以此作为改进答案的一种方式。
使用什么工具链来创建这些?是否有自动执行此操作的程序,或者人们是否正在截屏,将它们转换为一系列静态帧,然后创建 GIF 图像?
sto*_*ack 355
是一个新的应用程序,可让您轻松地从屏幕录制 GIF。
无论如何,请记住,GIF 的调色板非常有限,因此使用它们并不是一个好主意。
从 Ubuntu 18.10 开始,您可以直接安装 Peek。
sudo apt install peek
Run Code Online (Sandbox Code Playgroud)
对于旧版本的 Ubuntu,您可以从其PPA安装最新版本的 Peek 。
sudo add-apt-repository ppa:peek-developers/stable
sudo apt update
sudo apt install peek
Run Code Online (Sandbox Code Playgroud)
在GitHub 存储库中查找更多信息。
Bru*_*ira 277
我发现的用于录制 GIF 截屏视频的最佳软件是 Byzanz。
Byzanz 很棒,因为它直接记录到 GIF,质量和 FPS 令人印象深刻,同时将文件的大小保持在最小。
Byzanz 现在可以从 Universe 存储库中获得:
sudo apt-get install byzanz
Run Code Online (Sandbox Code Playgroud)
安装后,您可以在终端中运行它。
这是我刚才做的一个小例子
byzanz-record --duration=15 --x=200 --y=300 --width=700 --height=400 out.gif
Run Code Online (Sandbox Code Playgroud)
man*_*k13 235
首先安装这个:
sudo apt-get install imagemagick mplayer gtk-recordmydesktop
Run Code Online (Sandbox Code Playgroud)
这些是必需的东西,ImageMagick、MPlayer 和 Desktop Recorder。然后使用Desktop Recorder捕获屏幕/应用程序的一部分以用作截屏视频。在 Desktop Recorder 将录制内容保存为OGV 视频后,MPlayer将用于捕获 JPEG 屏幕截图,并将它们保存到“输出”目录中。
在终端上:
mplayer -ao null <video file name> -vo jpeg:outdir=output
Run Code Online (Sandbox Code Playgroud)
使用ImageMagick将屏幕截图转换为动画 gif。
convert output/* output.gif
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式优化屏幕截图:
convert output.gif -fuzz 10% -layers Optimize optimised.gif
Run Code Online (Sandbox Code Playgroud)
Rob*_*b W 144
这个答案包含三个 shell 脚本:
byzanz-record-window
- 选择一个窗口进行录制。byzanz-record-region
- 选择屏幕的一部分进行录制。感谢布鲁诺·佩雷拉 (Bruno Pereira)向我介绍byzanz
!它对于创建 GIF 动画非常有用。在某些情况下颜色可能会关闭,但文件大小弥补了它。示例:40 秒,3.7Mb。
将以下两个脚本中的一个/全部保存在$PATH
. 下面是使用第一个脚本制作特定窗口的截屏视频的示例。
byzanz-record-window 30 -c output.gif
$DELAY
),您准备在其中进行录制。beep
函数中定义)后,byzanz
将启动。30
步骤 1 中的含义),byzanz
结束。将再次广播哔声。我在其中包含了-c
标志,byzanz-record-window
以说明我的 shell 脚本的任何参数都附加到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
Run Code Online (Sandbox Code Playgroud)
byzanz-record-region
依赖:xrectsel
来自xrectsel。克隆存储库并运行make
以获取可执行文件。(如果它抗议没有makefile,运行./bootstrap
和./configure
之前运行`make)。
#!/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
Run Code Online (Sandbox Code Playgroud)
byzanz-record-window
带有简单 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"
Run Code Online (Sandbox Code Playgroud)
也可以看看:
byzanz-record-region
。fos*_*dom 53
我使用的最好的工具之一是ffmpeg
. 它可以从截屏工具中获取大部分视频kazam
,并将其转换为另一种格式。
从软件中心安装它 - 如果你安装了优秀的ubuntu-restricted-extras
软件包,它会自动安装。
Kazam 可以输出视频格式mp4
或webm
. 通常,以mp4
格式输出会获得更好的结果。
将视频转换为 gif 的基本语法是:
ffmpeg -i [inputvideo_filename] -pix_fmt rgb24 [output.gif]
Run Code Online (Sandbox Code Playgroud)
已转换的 GIF - 特别是那些具有标准每秒 25/29 帧的 GIF 可能非常大。例如 - 一个 800Kb 的 webm 15 秒 25fps 视频可以输出到 435 MB!
您可以通过多种方法减少这种情况:
使用选项-r [frame-per-second]
。例如
ffmpeg -i Untitled_Screencast.webm -r 1 -pix_fmt rgb24 out.gif
Run Code Online (Sandbox Code Playgroud)
大小从 435 MB 减少到 19 MB
使用选项-fs [filesize]
。例如
ffmpeg -i Untitled_Screencast.webm -fs 5000k -pix_fmt rgb24 out.gif
Run Code Online (Sandbox Code Playgroud)
注意:这是一个近似的输出文件大小,因此大小可能比指定的略大。
使用选项-s [widthxheight]
。例如
ffmpeg -i Untitled_Screencast.webm -s 320x200 -pix_fmt rgb24 out.gif
Run Code Online (Sandbox Code Playgroud)
这将示例 1366x768 视频大小减少到 26 MB
有时您可能希望 GIF 永远循环播放。
使用选项-loop_output 0
。例如
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif
Run Code Online (Sandbox Code Playgroud)
如果使用imagemagick
convert
3% 到 10% 之间的模糊因子,则可以显着减小图像大小
convert output.gif -fuzz 3% -layers Optimize finalgif.gif
Run Code Online (Sandbox Code Playgroud)
结合这些选项中的一些,以减少对 Ask Ubuntu 的管理。
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -r 5 -s 320x200 -pix_fmt rgb24 out.gif
Run Code Online (Sandbox Code Playgroud)
其次是
convert output.gif -fuzz 8% -layers Optimize finalgif.gif
Run Code Online (Sandbox Code Playgroud)
Set*_*eth 34
Silentcast 是另一个很棒的基于 gui 的工具,用于创建动画 .gif 图像。其特点包括:
4种录音模式:
全屏
内窗
带装饰的窗户
自定义选择
3种输出格式:
.gif
.mp4
.webm
.png
(帧)
.mkv
无需安装(便携式)
自定义工作目录
自定义帧率
如果您想要常规安装并运行受支持的 Ubuntu 版本,您可以通过 PPA 安装 Silentcast:
sudo add-apt-repository ppa:sethj/silentcast
sudo apt-get update
sudo apt-get install silentcast
Run Code Online (Sandbox Code Playgroud)
如果您没有运行受支持的 Ubuntu 版本(您真的应该升级!),您需要从 GitHub 页面下载最新版本并手动满足依赖项(您可以分别从这里和这里获取 yad 和 ffmpeg )或者,如果您运行的是稍微更新的版本,例如 13.10,您可以尝试直接下载 .deb。
如果您正在使用 Gnome,您可能需要安装Topicons 扩展,以便更轻松地停止 Silentcast。
从桌面环境的 gui 启动 Silentcast 或silentcast
在终端中运行该命令。选择您的设置并按照屏幕上的提示进行操作。完成录制后,您将看到一个对话框,用于通过删除一定数量的帧来优化最终输出。
有关更深入的使用指南,请查看自述文件,无论是在线 GitHub 版本还是/usr/share/doc/silentcast
使用 zless 或您喜欢的编辑器存储的本地版本。
Silentcast 仍处于开发阶段,尽管它非常稳定,但您可能会遇到一些错误。如果您这样做,请在项目的 GitHub 问题跟踪器上报告它们。如果您在从 PPA 安装时遇到问题并且正在运行受支持的 Ubuntu 版本,请在下面发表评论或联系Launchpad 上的维护者(我)。
这里列出了各种复杂且有效(大概)的方法来做到这一点。但是,我之前和之后都不想经历这个过程。所以,我只是使用一个适合我需要的在线转换器,我需要这样做几次。我用过这个网站:
这不是我的网站,我与他们没有任何关联。它们只是我书签中的一个,还有更多。
我创建record-gif.sh
了Rob W 的byzanz-record-region
改进版本:
一个蹩脚的图形
byzanz
用户界面,改善了用户体验(鼠标可选择区域、记录进度条、可重播记录)。
duration
;save_as
目的地;$HOME/record.again
)。我还创建了一个安装脚本
curl --location https://git.io/record-gif.sh | bash -
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
165520 次 |
最近记录: |