LoginSignup
2
1

More than 1 year has passed since last update.

ターミナルでBadAppleする

Last updated at Posted at 2022-11-30

なにができたのか

こんな感じで、Terminal上で動画をASCIIで再生してます。
今回は、qeesungさんのこちらのリポジトリを使って遊んでいきたいと思います。

動作環境

WSLでもできると思いますが、未確認です。

# macOS
CPU: Apple M1
OS : Monterey 12.6

# Ubuntu
CPU: Intel i5-11500
OS : Ubuntu 20.04.5

セットアップ

以下、macOSでの方法を紹介します。
僕のREADMEにUbuntuでの方法も書いているので、WSLなどでやってみたい人はそちらをご確認ください!

bash
brew install ffmpeg imagemagick
go install github.com/qeesung/asciiplayer@latest

git clone git@github.com:Yokohide0317/movie4gif.git
cd movie4gif

Gifへの変換

やることを並べているだけの単純なBashスクリプトですが、
指定された.mp4ファイルをffmpegimagemagickのconvertを使って.gifへ変換しています。

movie2gif.sh
#!/bin/bash

realpath ()
{
    f=$@;
    if [ -d "$f" ]; then
        base="";
        dir="$f";
    else
        base="/$(basename "$f")";
        dir=$(dirname "$f");
    fi;
    dir=$(cd "$dir" && /bin/pwd);
    echo "$dir$base"
}

INP_MP4=$(realpath $1)
OUT_GIF=$(realpath $2)
TMP_DIR=$(realpath ./movie2gif_tmp)

if [ ${INP_MP4##*.} == "mp4" ]; then
    :
else
    echo "error: .mp4を指定してください。"
    exit 0
fi

if [ -s "$OUT_GIF" ]; then
    echo "error: OUTPUTを指定してください"
    exit 0
else
    :
fi

echo "Convert開始"

mkdir $TMP_DIR
cd $TMP_DIR

ffmpeg -i $INP_MP4 -an -r 10 %04d.png
convert *.png -resize 40% output_%04d.png
convert output_*.png $OUT_GIF

cd ../
rm -r $TMP_DIR
bash
# Example
## .mp4ファイルのファイル名に空白は入れないでください。
./movie2gif.sh badapple.mp4 badapple.gif

再生!

bash
asciiplayer play BadApple.gif

その他のオプションは、元のリポジトリを確認してください。

その他

  • エミュレーターのKittyはGPUでレンダリングしているそうで、iTerm2よりもカクカクせずに再生できたりします。
    (普段はIterm2使っているので、今回はKittyは使用しませんでしたが、、、)
  • 文字のサイズや、フォントを変えて遊んでみてください。

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1