なにができたのか
こんな感じで、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ファイルをffmpeg
とimagemagick
の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は使用しませんでしたが、、、) - 文字のサイズや、フォントを変えて遊んでみてください。
参考