Recterm-Linuxターミナルでオーディオ付きのビデオを録画する

私たちは通常、ビデオレコーダーで端末を録画しますが、出力ビデオは一般的にぼやけており、高品質ではありません。 ASCIINEMAは、ターミナルセッションを高品質のビデオで記録および共有する軽量ツールです。 asciinemaの欠点は、ビデオにオーディオが含まれていないことです。 rectermは、端末をmp4ファイルに記録できるツールです。 オーディオ付きのmp4に録音するために、vlcやmplayerなどのビデオプレーヤーは必要ありません。 この記事では、asciinema、asciinema2gif、ffmpegを使用して端末をオーディオ付きのmp4に録音するためのRectermのインストールについて説明します。

asciinemaをインストールします

ASCIINEMAは、端末のアクティビティを記録するための軽量ツールです。 ターミナルの記録が完了すると、記録されたセッションを共有するためのURLが提供されます。 視聴者は、ビデオを一時停止し、コマンドを強調表示して、それをコピーして端末に貼り付けるだけです。 インストールするには asciinema、ターミナルから次のコマンドを実行します。

 # 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は、MacOSパッケージマネージャーであるHomebrewのフォークです。 ホームディレクトリにインストールでき、rootアクセスは必要ありません。 Linuxbrewには、最初にインストールする依存関係がほとんどありません。 asciinema2gifをインストールするにはlinuxbrewが必要です。

 # 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/
 .................................................
 .................................................

〜/ .bash_profileで、linuxbrewバイナリパスをPATHに、manページをMANPATHに、infopathを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を編集します。ターミナルから「whichasciinema2gif」を使用すると、スクリプトの場所を見つけることができます。 これが必要なのは、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* /フレーム/*最終行が次のようになるように.pnggif-

 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*/

出力に ‘gifsicle::empty files’が含まれている場合、mp4への変換中に、convertコマンドがpng / gifファイルを見つけることができないか、png / gifをmp4に変換するためのメモリが不足していることを意味します。 大きなファイルを記録しようとしている場合は、少なくとも2GBのRAMが必要です。そうでない場合、convertコマンドは「killed」ステータスで終了します。

次に、rectermディレクトリに移動して実行します。

 # ./recterm.sh new_term
 ~ Asciicast recording started.
 ~ Hit Ctrl-D or type "exit" to finish.

rectermスクリプトが実行されたnew_termという名前のフォルダがあり、最終的なmp4ファイルはここにあります。

結論

Rectermは、オーディオを備えた軽量の端末録音ツールです。 asciinema、asciinema2gif、ffmpegを利用してタスクを実行します。 インストールに関して問題がある場合は、に投稿してください レクタームの問題 githubのセクション。 記事を読んでいただきありがとうございます。