Wavファイルをtwitterに上げられる形式の動画にするコマンド

Twitter に音声ファイル上げたいじゃん

でも、動画しかだめなので、適当な画像ファイルを持って来て動画にします。

必要な物は、画像ファイルと、音声ファイルと、ffmpeg の 3 点セットです。

mp4 に対応してるとか言っておいてわながある

image.gif と audio.wav を使う場合、コマンドはこうです。


ffmpeg -i audio.wav -i image.gif -loop 1 -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -pix_fmt yuv420p output.mp4

解説

まずは、 -i オプションで入力ファイルを指定します。

次に、 -loop 1 で、画像ファイルを無限ループする設定にします。ほんとにループしてるかは、見てないので知りませんが。w

縦横のサイズが 2 で割れないとき、エラーが出るので、その辺を補正するために -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" というオマジナイを入れます。

ほんとはこれでいいはずなのですが、コーデックを yuv420p というのに設定しないと、なぜか Twitter にアップロードするときに失敗します。動画を指定したあとのプレビュー画面ではちゃんと再生できてるのにですよ。ということで、 -pix_fmt yuv420p というオマジナイを入れます。

最後に出力ファイル名を書けば完成です。