macで録画、mp4の変換、ffmpegでgif生成の方法をまとめておきます。
Contents
ffmpegのインストール【Mac】
ffmpeg -version // 入っているか確認
brew install ffmpeg
ffmpeg -version
cd path // Macのフォルダをドラック&ドロップ
ffmpegの使い方(FFmpegで容量ぴったりの動画を作成する方法)
サイズはビットレート*長さです。
他に解像度、フレームレートなどもありますけど、都合により変えられないこともあります。
音声のビットレートは変えても容量があまり変わらないため、調整には不向きです。
今回、都合により尺は変えられなかったので、ビットレートで調整します。
容量ぴったりの動画を作る際にffmpegは便利です。この場合、必要以上に圧縮されないように工夫が必要です。
ffmpeg -i test.mp4 -c:v libx264 -preset medium -b:v 3M -minrate 3M -maxrate 3M -bufsize 6M -nal-hrd cbr -c:a copy converted_3m_cbr.mp4
このコマンドのポイント:
-c:v libx264
:H.264コーデックを使用-preset medium
:圧縮効率と速度のバランスが取れた設定-b:v 3M -minrate 3M -maxrate 3M
:映像のビットレートを3Mbpsに固定-nal-hrd cbr
:固定ビットレート(CBR)モードを強制-c:a copy
:音声はそのままコピー(音声ビットレートは約0.32Mbps)
理論上のサイズ計算:
- 合計ビットレート = 3Mbps(映像)+ 0.32Mbps(音声)= 3.32Mbps
- ファイルサイズ = 3.32Mbps × 132秒 ÷ 8 = 54.78MB
ffmpeg -i test.mp4 -c:v libx264 -preset ultrafast -tune zerolatency -b:v 3M -minrate 3M -maxrate 3M -bufsize 6M -nal-hrd cbr -c:a copy converted_3m_ultrafast.mp4
このコマンドのポイント:
-preset ultrafast
:最も速いが圧縮効率が最も悪いプリセット-tune zerolatency
:低遅延用の設定(圧縮効率を下げる)- その他は上記のコマンドと同じ
このコマンドは、同じビットレートでもあえて非効率的な圧縮を行うことで、より多くのデータを使わせる設定です。ただし、品質は1番目のコマンドより低くなる可能性があります。
ffmpeg -i test.mp4 -c:v libx264 -preset medium -b:v 2.41M -minrate 2.41M -maxrate 2.41M -bufsize 4.82M -nal-hrd cbr -c:a copy converted_45mb_target.mp4
ビットレートを2.41Mに下げている
45MBの動画を作るには、同じ計算方法で最適なビットレートを求めます。
- 目標サイズ = 45MB
- 動画の長さ = 132秒
- 音声ビットレート = 0.32Mbps
- 合計ビットレート = (45MB × 8) ÷ 132秒 = 2.73Mbps
- 映像ビットレート = 2.73Mbps – 0.32Mbps = 2.41Mbps
この計算を割り出すために動画の詳細情報が必要です。
動画の詳細情報を確認する
ffprobe -v error -show_format -show_streams test.mp4
FFmpegの一部であるffprobe
ツールを使って、動画ファイルの詳細情報を取得するためのものです。
コマンドの各部分の意味:
ffprobe
:- FFmpegに含まれるマルチメディアファイル分析ツールです。
- 動画・音声ファイルの詳細な技術情報を調べるために使用します。
-v error
:- 冗長性(verbosity)レベルを「error」に設定します。
- エラーメッセージのみを表示し、警告や情報メッセージは表示しません。
- これにより、出力が簡潔になります。
-show_format
:- ファイル全体のフォーマット情報を表示します。
- 例えば、コンテナ形式(MP4, MOV等)、ファイルサイズ、総再生時間、全体のビットレートなどの情報が含まれます。
-show_streams
:- ファイル内の各ストリーム(映像、音声、字幕など)の詳細情報を表示します。
- 各ストリームのコーデック、解像度、フレームレート、ビットレート、色空間などの技術的な情報が含まれます。
test.mp4
:- 分析対象の動画ファイル名です。
ffmpegの使い方(gif生成)
コマンドラインを使わない方法
そのあと、picgif lite(未検証だけどたぶんffmpegじゃない?)、コマンドラインでffmpegで変換となります。
仮想環境のParallels DesktopがあればScreenToGifを使ってもよいです。ただし、ScreenToGifはmovがインポートできません。macのもののため拡張子はmov一択のため、mp4に変換したい場合はコンバーターをかまさないといけません。
https://www.aconvert.com/jp/video/mov-to-mp4/
MAC録画 > コンバーター > ScreenToGifの順番ですね。
ScreenToGifの使い方はこちらです。
それはめんどくさいという人はコマンドラインからの操作が楽です。個人的に採用しているのはコマンドラインです。
ffmpegの使い方(ffmpegでgifが汚いを避けるためpngパレットを使う!)
ffmpegをMACにインストール
ターミナルを起動し、インストール。
$ brew install ffmpeg
バージョン確認。
$ ffmpeg -version
ffmpegでgifの作り方
変換。
$ ffmpeg -i input.mp4 output.gif
$ ffmpeg -i test.mov -vf scale=1280:-1 -r 10 test.gif
ffmpegのgifが汚い、改善のコツはパレットの生成
その場合、pngのパレットを先に生成します。1kbのパレットができます。
$ ffmpeg -i input.mov -vf palettegen palette.png
そのパレット情報を元に変換すればOKです。
$ ffmpeg -i input.mov -i palette.png -filter_complex paletteuse output.gif
まとめるとこうなります。filter_complex内にフレームレートとリサイズはいれてあげればOKです。
$ ffmpeg -i input.mov -i palette.png -filter_complex "fps=60,scale=1280:-1,paletteuse" output.gif
Gif圧縮の容量・サイズ指定
今はKapという便利なアプリがあるためそちらを使うことが多いです。それでも対応できない状況のみコマンドラインを検討します。
kapはmp4のインポートも可能です。kapはGUIのソフトで簡単な上、サイズ指定やフレームレートの指定が簡単なのです。
Gif圧縮の容量・サイズ指定の検証結果
最適なエンコードを選ぶ以外に容量を削減する方法はフレームレートかサイズかになるでしょう。
サイズ | フレームレート | 容量 |
1920×1080 | 30 | 5.7MB |
1920×1080 | 15 | 4.7MB |
1280×720 | 30 | 3.5MB |
1280×720 | 15 | 2.9MB |
先にmp4側で圧縮をかけるとかえってサイズが肥大化してしまう場合があるようです(?)。オリジナルのmp4を圧縮する方がよさそうです。
ソフトウェアはkapをチョイスしてサイズとフレームレートを指定するだけでOKです。詳しくはこちらの記事をみてください。

サイズを減らすもう一つの方法はGiFを分割することです。ただ、状況的に可能な場合と不可能な場合があるでしょう。screentogifやkapでmp4を読み込んで2つの動画に分割するだけです。
フレームレートとサイズの最適解は?
ものによって、違うけど、PCで見てもらう資料(ソフトウェアの操作方法などを想定)の場合は画面が大きい方がよさそうです。1280×720がよさそうです。その代わりフレームレートは15ぐらいまで落としてしまいます。
- 1080p(HD): 1920×1080
- 720p(HD): 1280×720
- 480p(SD): 854×480
480pになると少し小さい気もしますが、ブログの横幅がこのぐらいなのでギリ許容してもよいのかも。
フレームレートの違い
フレームレートはこちらの動画参考になります。
FPSの違い
— りゅーじん (@FursonAxRyuziN) May 2, 2020
上から、
60
30
15
速さがわかるGIFですぜ pic.twitter.com/3JmOBSlT0g
リンちゃんの傘くるくる
— ゆりっへ*✩ (@yurippe_momo) November 22, 2017
フレームレートを15で傘が止まって見えたので、25で再作成#マビノギ英雄伝#GIF pic.twitter.com/1uuKf98kNO
リンちゃんの傘くるくるをずっと見ていたい人用GIF
— ゆりっへ*✩ (@yurippe_momo) November 22, 2017
フレームレートを15にしたら、傘が回ってないように見えてちょっと残念#マビノギ英雄伝#GIF pic.twitter.com/PxpR5td0FS
コミカルなアニメならフレームレート10でもよさそうです。
GIFアニメの原画制作工程って案外見た事ないですよね🤔
— 緑豆子@マイペースに推し事中 (@payayuu0507) November 19, 2021
わたしの場合はこんな感じw目チカチカしちゃいますけどw
制作時間3時間19分
2、3秒作るのにも30枚程度は描かないといけない。
フレームレート10設定。
簡単に作ってる様に見えますけどそれなりに手間は掛かります。
そういう世界です。 pic.twitter.com/vSlAHmoeAV
GIFテスト03
— mototo=toto (@note0928) December 8, 2023
約4.0秒
FPS 15[F/s]
大きさ(横縦) 1280×720[pixel]
深度8[bit](カラーリミット_256)
サイズ12.483[MB] pic.twitter.com/yKtjOViQmT
ffmpegのことを知りたい人はこのまま読み進めてください。
movからmp4に変換する方法比較(拡張子を変更)
movからmp4に変換する方法はたくさんありますね。
拡張子の直変え、iMovie、QuickTime、VLCメディアプレーヤー、HandBrake、iMyMac、DaVinci Resolve(ダヴィンチリゾルブ)、オンラインのコンバーター、fffpegなど様々な選択肢があります。
この中で使いたくないのはオンラインのコンバーターです。アップロードしたりダウンロードしたりがありますし、セキュリティ的な点からも大丈夫かもですがなるべく避けたいところです。
直に拡張子を変更する方法は使っていいのか?
1番簡単な方法ですが、直にfinderにあるファイルの拡張子を名前変更するだけの方法が裏技的に紹介されています。簡単ですが、なぜそんなことをしていいのか理由が気になります!?ぐぐったところ
MP4は、実際には古いMOV形式のサブセットです。
https://www.imymac.jp/video-converter/how-to-convert-mov-to-mp4-on-mac.html
あまり深追いはしていませんが、サブセットということが発覚しました。とりあえず問題がでなければこの方法でもよいかもしれません。実際にテストするときはこの方法を使っています。
コンテナの理解、MovとMp4の違い
しかし、本番のデータに使うのはダメじゃないですかね。日本語情報がないので英語圏で軽く調査ところ
Can I rename MOV to MP4?
https://www.movavi.com/learning-portal/mov-vs-mp4.html
In some scenarios, you can make a change by renaming the file. For instance, because of the fact that MP4 is a subset of QuickTime, you can change the MOV file just by renaming and changing the extension from MOV to MP4. Sometimes, changing the file extension manually by changing the text is enough. However, this does not always work. It depends on the settings of the file format. To ensure capability, it is a good idea to use conversion software. This can ensure that the file works properly and that no data is lost in the transfer.
やっぱりソフトウェアを使った方がよさそうです。😅
Macに動画編集ソフトDaVinci Resolveが入っているため、それで変換しています(iMovieは初心者向けなので却下)。
ご参考になれば幸いです。
コメント