最近リモートワークが増え、コミュ二ケーション方法を見直す機会が多いですね。
同じ空間にいる時は
「アプリの実装どんな感じですか?」
「こんな感じです。」
がすぐできたのですが、このやりとりはリモートワークのzoomごしだとなかなかやりづらいです。
PullRequestやBacklog、slackなどで作業報告する際に動画で説明すると伝わりやすいのですが、動画は容量を食うため、アップロード制限にかかることが多々あります。
この記事ではコマンド一つでmp4ファイルとmovファイルをgifに変換できる環境を作ります。
iPhoneやandroidでスクリーン録画すると.mp4,mac のquick timeplayerで撮影すると.movになるので、この2種類をgifに変換するスクリプトを作成していきます。
といっても実態はFFmpegをベースに、Makefileでよく使うFFmpegコマンドをまとめているだけです。
(FFmpeg(エフエフエムペグ)は動画と音声を記録・変換・再生するためのフリーソフトウェアであるhttps://ja.wikipedia.org/wiki/FFmpeg)
macにffmpegをインストール
まずはFFmpegをベースなのでFFmpegをインストール。
brew install ffmpeg
Makefileを作成
vi Makefile
などで、ファイルを作り、以下をコピペしましょう。
help: ## Usage
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
mp4togif:
ffmpeg -i screen.mp4 -r 7 output.gif
movtogif:
ffmpeg -i screen.mov -r 7 output.gif
これで mp4
からgifを生成するコマンド
make mp4togif
これで mov
からgifを生成するコマンド
make movtogif
が使える様になります。
Makefileの設置
作業ディレクトリに先ほど作ったMakefileを配置。
今後このディレクトリにmp4やmovをおいて、Makefileを実行します。
僕はムービーディレクトリの配下においてます。
実行
撮影したmp4やmovファイルをMakefileがある場所と同じディレクトリ.movや.mp4を配置。
撮影したファイルを screen.mp4
や screen.mov
にリネームしましょう。
変換したいファイルが screen.mp4
の場合は
make mp4togif
変換したいファイルが screen.mov
の場合は
make movtogif
を実行しましょう。
既に作ってる場合は、上書き保存するか聞かれます。
File 'output.gif' already exists. Overwrite ? [y/N]
応用
gifにしても、容量制限に引っかかる場合は、リサイズや、フレームレートを調整したコマンドも追加。
ex.) 動画の高さ(height)を 720 にする。横幅(width)はアスペクト比を維持して自動で設定する
movtogif_720:
ffmpeg -i screen.mov -vf scale=-1:720 output.gif
リサイズ
https://moewe-net.com/uncategorized/ffmpeg-resize-image