我們一般用錄像機錄製終端,但輸出的視頻普遍模糊,質量不高。 ASCIINEMA 是一種輕量級工具,可記錄和共享具有高質量視頻的終端會話。 asciinema 的缺點是視頻不包含音頻。 recterm是一個可以將終端錄製成mp4文件的工具。 它不需要像 vlc、mplayer 這樣的任何視頻播放器來錄製帶有音頻的 mp4。 本文介紹了安裝 Recterm 以使用 asciinema、asciinema2gif 和 ffmpeg 將終端錄製為帶音頻的 mp4。
安裝 asciinema
ASCIINEMA 是一個記錄終端活動的輕量級工具。 終端錄製完成後,它會提供一個 URL 來共享錄製的會話。 觀眾可以簡單地暫停視頻,突出顯示命令並將其複制/粘貼到他們的終端中。 安裝 海鞘, 從終端執行以下命令。
# sudo curl -sL https://asciinema.org/install | sh
Downloading asciinema v1.2.0 for linux-amd64...
########################################100.0%
Installing to /usr/local/bin/asciinema...
Success.
安裝 linuxbrew
Linuxbrew 是 Mac OS 包管理器 Homebrew 的一個分支。 它可以安裝在主目錄中,不需要 root 訪問權限。 Linuxbrew 幾乎沒有我們將首先安裝的依賴項。 我們需要 linuxbrew 來安裝 asciinema2gif。
# sudo apt-get install build-essential curl git python-setuptools ruby
現在安裝 linuxbrew
# ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install)"
==> This script will install:
/home/ubuntu/.linuxbrew/bin/brew
/home/ubuntu/.linuxbrew/Library/...
/home/ubuntu/.linuxbrew/share/doc/homebrew
/home/ubuntu/.linuxbrew/share/man/man1/brew.1
/home/ubuntu/.linuxbrew/share/zsh/site-functions/_brew
/home/ubuntu/.linuxbrew/etc/bash_completion.d/brew
/home/ubuntu/.cache/Homebrew/
.................................................
.................................................
將 linuxbrew 二進制路徑添加到 PATH,將手冊頁添加到 MANPATH,並將信息路徑添加到 ~/.bash_profile 中的 INFOPATH 環境變量。
# echo 'export PATH="/home/ubuntu/.linuxbrew/bin:$PATH"' >>~/.bash_profile
# echo 'export MANPATH="/home/ubuntu/.linuxbrew/share/man:$MANPATH"' >>~/.bash_profile
# echo 'export INFOPATH="/home/ubuntu/.linuxbrew/share/info:$INFOPATH"' >>~/.bash_profile
加載新環境。
# source ~/.bash_profile
Linuxbrew 建議安裝 gcc。 我們需要它,因為在安裝 asciinema2gif 時,brew 將為它編譯依賴項。
# brew install gcc
通過從終端執行以下命令來檢查 brew 的安裝。
# brew install hello
安裝 asciinema2gif
使用 linuxbrew 安裝 asciinema2gif。 在安裝 asciinema2gif 時,brew 還將安裝所有依賴項,包括 gifsicle、xz、pkg-config、libtool、bzip2、jpeg、zlib、libpng、libtiff、freetype、imagemagick、gpatch、openssl、icu4c、libxml2、phantomjs。
# brew install asciinema2gif
==> Tapping homebrew/dupes
Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/homebrew/homebrew-dupes'...
remote: Counting objects: 42, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 42 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (42/42), done.
.....................................................
.....................................................
安裝 ffmpeg/sox
當我們開始錄製終端時,需要SOX單獨開始錄音。 FFMPEG 需要用於將所有 gif 轉換為 mp4 文件並將音頻 (WAV) 與最終的 MP4 文件結合起來。 安裝 bc 是一種任意精度的數字處理語言。 這是重新調整 mp4 大小和正確組合 mp4 和 wav 所必需的。
# sudo apt-get install sox ffmpeg bc
安裝 recterm
要安裝 recterm,只需克隆 github 存儲庫並更改腳本的權限。
# git clone https://github.com/rascoro1/recterm.git
# cd recterm/
# chmod +x recterm.sh
# chmod +x to_gif.sh
現在在 vi 編輯器中打開 asciinema2gif 腳本並編輯第 116 行。您可以在終端中使用“which asciinema2gif”找到它的位置。 這是必需的,因為 asciinema2gif 在第 14 行配置的臨時目錄中創建 gif/png 文件,即
readonly tempdir="$(mktemp -d -t asciinema2gif.XXXX)"
編輯以下文件並更改 png/gif 文件的位置。 如果您使用不同版本的 asciinema2gif,文件路徑可能會有所不同。
# vim /home/ubuntu/.linuxbrew/Cellar/asciinema2gif/0.5/libexec/bin/asciinema2gif
因此,要通過 convert 命令在適當的目錄中找到 gif/png 文件,請將 gif/png 文件的目錄位置更改為 /tmp/asciinema2gif*/幀/*.png gif 使最後一行看起來像這樣-
convert -delay 5 -loop 0 /tmp/asciinema2gif*/frames/*.png gif:- | gifsicle --colors=256 --delay=6 --optimize=3 --output="asciicast.gif"
在 asciinema2gif 腳本的末尾,添加以下行以刪除臨時目錄。
rm -rf /tmp/asciinema2gif*/
在轉換為 mp4 時,如果輸出包含“gifsicle:
現在切換到 recterm 目錄並執行它。
# ./recterm.sh new_term
~ Asciicast recording started.
~ Hit Ctrl-D or type "exit" to finish.
將有一個名為 new_term 的文件夾,從那裡執行了 recterm 腳本,並且可以在此處找到最終的 mp4 文件。
結論
recterm 是一個輕量級的終端錄音工具以及音頻。 它利用 asciinema、asciinema2gif 和 ffmpeg 來執行任務。 如果您有安裝問題,請在 直腸問題 github 中的部分。 感謝您閱讀文章。