0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

お絵描き伝言ゲームのgifファイルをmp4動画に変換する方法

Last updated at Posted at 2022-03-27

はじめに

お絵描き伝言ゲーム(Gartic Phone)では、
みんなで振り返りするときにみんなの回答と絵をgifファイルとして保存できます。
保存したGifをTwitterなどにそのまま投稿できますが、
(面白すぎて)厳選できなかったので1つの動画にしたいなと思ったのがきっかけです。

前提条件

  • 動作環境はWindows
  • FFmpegをインストールしておく

処理手順

  1. 保存したgifファイルを1つのフォルダに格納
  2. gifファイルをmp4ファイルに変換
  3. mp4を1つに結合
gif2mp4.cmd
rem gifファイルの保存先フォルダ
SET INDIR=D:\dengongame\20220328
rem mp4一覧のファイル
SET LISTFILE=D:\dengongame\20220328\mylist.txt
rem 出力するmp4動画のパスとファイル名
SET OUTFILE=D:\dengongame\20220328output.mp4
rem FFmpegの実行ファイルのパス
SET FFMPEGEXE=C:\ffmpeg\bin\ffmpeg.exe

rem カレントディレクトリを移動
CD /D "%INDIR%"

rem フォルダのgif->mp4に変換
for /r "%INDIR%" %%f in (*.gif) do (
"%FFMPEGEXE%" -i %%f -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" %%f.mp4
)

rem フォルダ内のmp4フォルダを一覧に出力
TYPE NUL > "%LISTFILE%"
FOR %%I in (*.mp4) DO (
    ECHO file '%%~FI' >> "%LISTFILE%"
)

rem 一覧のフォルダを1つのmp4ファイルに結合
"%FFMPEGEXE%" -f concat -safe 0 -i "%LISTFILE%" -c copy "%OUTFILE%"

解説

実行時のパス設定

SETコマンドで実行時のフォルダやパスを指定しています。
mylist.txtはgifからmp4に変換したmp4一覧を出力するために使用します。

gif2mp4.cmd
rem gifファイルの保存先フォルダ
SET INDIR=D:\dengongame\20220117
rem mp4一覧のファイル
SET LISTFILE=D:\dengongame\20220117\mylist.txt
rem 出力するmp4動画のパスとファイル名
SET OUTFILE=D:\dengongame\20220117output.mp4
rem FFmpegの実行ファイルのパス
SET FFMPEGEXE=C:\ffmpeg\bin\ffmpeg.exe

カレントディレクトリの移動

/Dオプションを使いドライブ変更も行っています。

rem カレントディレクトリを移動
CD /D "%INDIR%"

gifファイルをmp4に変換

フォルダ内のgifファイルでループし、FFmpegにオプション指定しながらmp4に変換しています。
-i %%f :入力ファイル
-movflags faststart :メタデータを動画ファイルの先頭に
-pix_fmt yuv420p :動画フォーマット
-vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" %%f.mp4 :おまじない1

rem フォルダのgif->mp4に変換
for /r "%INDIR%" %%f in (*.gif) do (
"%FFMPEGEXE%" -i %%f -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" %%f.mp4
)

mp4を1つに結合

フォルダ内のmp4ファイルを%LISTFILE%(mylist.xt)に出力し、
出力したmp4ファイルを1つのファイルに結合します。

rem フォルダ内のmp4フォルダを一覧に出力
TYPE NUL > "%LISTFILE%"
FOR %%I in (*.mp4) DO (
    ECHO file '%%~FI' >> "%LISTFILE%"
)

rem 一覧のフォルダを1つのmp4ファイルに結合
"%FFMPEGEXE%" -f concat -safe 0 -i "%LISTFILE%" -c copy "%OUTFILE%"

コマンド実行

gif2mp4.cmdをダブルクリック

改善点

  • 保存フォルダのドラッグ&ドロップにする
  • 作業完了したmp4ファイルを削除する

おわり

変換した動画はyoutubeにアップできます。
これでいつでもどこでも思い出し笑いができますね:joy:

参考リンク

  1. 動画変換時のエラー対応

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?