如何在 Linux 上录制你的终端操作
Posted Linux无限探索
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 Linux 上录制你的终端操作相关的知识,希望对你有一定的参考价值。
录制一个终端操作可能是一个帮助他人学习 Linux 、展示一系列正确命令行操作的和分享知识的通俗易懂方法。不管是出于什么目的,从终端复制粘贴文本需要重复很多次,而录制视频的过程也是相当麻烦,有时候还不能录制。在这次的文章中,我们将简单的了解一下以 gif 格式记录和分享终端会话的方法。 |
如果你只是希望能记录你的终端会话,并且能在终端进行回放或者和他人分享,那么你只需要一个叫做:ttyrec 的软件。Ubuntu 用户可以通过运行这行代码进行安装:
sudo apt-get install ttyrec
如果你想将生成的视频转换成一个 gif 文件,这样能够和那些不使用终端的人分享,就可以发布到网站上去,或者你只是想做一个 gif 方便使用而不想写命令。那么你需要安装额外的两个软件包。第一个就是 imagemagick , 你可以通过以下的命令安装:
sudo apt-get install imagemagick
第二个软件包就是:tty2gif.py,访问其项目网站下载。这个软件包需要安装如下依赖:
sudo apt-get install python-opster
开始录制终端操作,你需要的仅仅是键入 ttyprec ,然后回车。这个命令将会在后台运行一个实时的记录工具。我们可以通过键入exit或者ctrl+d来停止。ttyrec 默认会在主目录下创建一个ttyrecord的文件。
回放这个文件非常简单。你只需要打开终端并且使用 ttyplay 命令打开 ttyrecord 文件即可。(在这个例子里,我们使用 ttyrecord 作为文件名,当然,你也可以改成你用的文件名)
然后就可以开始播放这个文件。这个视频记录了所有的操作,包括你的删除,修改。这看起来像一个拥有自我意识的终端,但是这个命令执行的过程并不是只是为了给系统看,而是为了更好的展现给人。
注意一点,播放这个记录是完全可控的,你可以通过点击 + 或者 - 进行加速减速,或者 0和 1 暂停和恢复播放。
为了方便,我们通常会将视频记录转换为 gif 格式,并且,这个非常容易做到。以下是方法:
将之前下载的 tty2gif.py 这个文件拷贝到 ttyprecord 文件(或者你命名的那个视频文件)相同的目录,然后在这个目录下打开终端,输入命令:
python tty2gif.py typing ttyrecord
如果出现了错误,检查一下你是否有安装 python-opster 包。如果还是有错误,使用如下命令进行排除。
sudo apt-get install xdotool export WINDOWID=$(xdotool getwindowfocus)
然后重复这个命令 python tty2gif.py并且你将会看到在 ttyrecord 目录下多了一些 gif 文件。
接下来的一步就是整合所有的 gif 文件,将他打包成一个 gif 文件。我们通过使用 imagemagick 工具。输入下列命令:
convert -delay 25 -loop 0 *.gif example.gif
你可以使用任意的文件名,我用的是 example.gif。 并且,你可以改变这个延时和循环时间。 Enjoy。
via: https://www.howtoforge.com/tutorial/how-to-record-your-terminal-session-on-linux/
作者:Bill Toulas 译者:MikeCoder 校对:wxy
本文来自博客园,作者:linux_pro,转载请注明原文链接:https://www.cnblogs.com/linuxpro/p/17328261.html
如何在 linux 上使用 ffmpeg 录制音频?
【中文标题】如何在 linux 上使用 ffmpeg 录制音频?【英文标题】:How to record audio with ffmpeg on linux? 【发布时间】:2013-11-18 15:26:51 【问题描述】:我想用我的麦克风录制音频。我的操作系统是 ubuntu。我已经尝试了以下并得到了错误
$ ffmpeg -f alsa -ac 2 -i hw:1,0 -itsoffset 00:00:00.5 -f video4linux2 -s 320x240 -r 25 /dev/video0 out.mpg
ffmpeg version 0.8.8-4:0.8.8-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav
developers
built on Oct 22 2013 12:31:55 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release.
Please use avconv instead.
ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library
libasound_module_conf_pulse.so
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM hw:1,0
[alsa @ 0xbda7a0] cannot open audio device hw:1,0 (No such file or directory)
hw:1,0: Input/output error
然后我尝试了
$ ffmpeg -f oss -i /dev/dsp audio.mp3
ffmpeg version 0.8.8-4:0.8.8-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav
developers
built on Oct 22 2013 12:31:55 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release.
Please use avconv instead.
[oss @ 0x1ba57a0] /dev/dsp: No such file or directory
/dev/dsp: Input/output error
我无法让 ffmpeg 找到我的麦克风。如何让 ffmpeg 从我的麦克风录音? 由于this topic,似乎可以忽略“已弃用”消息
【问题讨论】:
您需要在每个命令中包含完整的 ffmpeg 控制台输出。 好的,我添加了所有内容。这有帮助吗? 输出是什么:arecord -l
是的,记录输出工作吗?参考:help.ubuntu.com/community/AudioCapture
这个问题似乎是题外话,因为它是关于 Unix 和 Linux (unix.stackexchange.com)
【参考方案1】:
我意识到这有点老了。以防万一其他人正在寻找:
ffmpeg -f alsa -ac 2 -i default -itsoffset 00:00:00.5 -f video4linux2 -s 320x240 -r 25 -i /dev/video0 out.mpg
这样它将使用默认设备进行录制。您还缺少一个 -i 在视频捕获设备之前 - /dev/device0
如果您想更具体一些,您应该查看 /proc/asound。 检查 cards、devices、pcm 文件和 card 子目录。您应该能够在那里收集到足够的信息,以便能够做出有根据的猜测;例如 hw:1,0 或 hw:2,0
文档可能会提供更多线索:
http://www.alsa-project.org/main/index.php/DeviceNames网络摄像头也是如此 - 它可能不是 /dev/video0,也许您插入了一个外部网络摄像头,它位于 /dev/video1 - 有查看 /dev 目录并查看可用的内容
【讨论】:
使用脉冲音频时,能够准确选择要录制的音频设备非常有用。ffmpeg -sources pulse
将列出可用的脉冲源。就我而言,我想要的是系统的默认混合声音输出设备 (alsa_output.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo.monitor
)。 ffmpeg 命令则变为:ffmpeg -i pulse -ac 2 -i 'alsa_output.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo.monitor'
【参考方案2】:
解决了!
ffmpeg -f pulse -ac 2 -i default -f x11grab -r 30 -s 1920x1080 -i :0.0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -threads 0 -y /media/t/TBVolume/desktop/output.mkv
【讨论】:
提供一个简短的描述来解释这是如何解决问题的。【参考方案3】:首先,列出您使用的 AV 设备:
ffmpeg -list_devices true -f dshow -i dummy
假设您的音频设备是“麦克风阵列”,您可以使用:
ffmpeg -f dshow -i audio="Microphone Array" -c:a libmp3lame -b:a 128k OUTPUT.mp3
这里,128k 是采样率。您可以检查采样率 (CBR) here 的所有选项。
【讨论】:
问题是关于 Linux 的,但你的答案是关于 Windows 的。 可以将“dshow”替换为“avfoundation”,以便在 Linux 和 Mac OS 上工作。 @KeithBennett avfoundation 仅适用于 macOS/iOS。 Linux 可以使用 alsa 和 pulse。以上是关于如何在 Linux 上录制你的终端操作的主要内容,如果未能解决你的问题,请参考以下文章