FFmpegで連番画像から動画を作成する際のTIPS

FFmpegで連番画像から動画を作成する際のTIPSをまとめてみました。

※一部、過去記事と重複する内容もあります。

画像ファイルから動画ファイルを作成するコマンド

0001.png0002.png0003.png …という連番画像から動画ファイル(MP4)を作成するには以下のようなコマンドを実行します。

$ ffmpeg -i %04d.png -c:v libx264 output.mp4

%04d.pngの部分が連番画像ファイルを指定する部分になっています。

例えば、image_001.pngimage_002.pngimage_003.png …というファイル名になっている場合はimage_%03d.pngのような感じにします。

関連記事: アニメーションGIFの作り方

フレームレートの設定

オプションを指定していない場合、フレームレートが25fpsの動画ファイルが作成されます。変更したい場合は-rコマンドでフレームレートを設定してください。

$ ffmpeg -r 30 -i %04d.png -c:v libx264 output.mp4

画質の設定

動画の画質を設定する場合は-crfオプションを使います。デフォルトでは23になっています。画質を上げたい場合はより小さな値を、画質を下げたい(ファイルサイズを小さくしたい)場合はより大きな値を設定します。

$ ffmpeg -i %04d.png -c:v libx264 -crf 20 output.mp4

関連記事: FFmpegでYouTube向けにエンコード

ループの設定

動画を何周かループさせたい場合は-stream_loopオプションを使います。例えば、-stream_loop 2とすると、最初の1周分とあわせて同じ内容が3回表示される動画ファイルになります。

$ ffmpeg -stream_loop 2 -i %04d.png -c:v libx264 output.mp4

YouTubeなどのサイトにアップロードする場合

YouTubeなどの動画サイトにアップロードする場合は-pix_fmt yuv420pを付けないと正常に再生できない場合があります。アップロードしてみて、正常に再生できないようであれば、設定を見直してみてください。

$ ffmpeg -i %04d.png -c:v libx264 -pix_fmt yuv420p output.mp4

関連記事: FFmpegでYouTube向けにエンコード

Unity2Dでオブジェクトへのクリックを取得する方法

Unity2Dでゲーム内に配置したオブジェクトをクリック(タップ)したい場合は、対象オブジェクトにCollider2DBoxCollider2DとかCircleCollider2Dなど)を設定した上でPhysics2D.Raycastを使って実装できます。

サンプル

void Update()
{
  if (Input.GetMouseButtonDown(0))
  {
    var mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
    var hit = Physics2D.Raycast(mousePosition, Vector2.zero);
    if (hit.collider != null)
    {
      // クリック位置にオブジェクトがある場合に実行したい処理
      Debug.Log(hit.collider.name);
    }
  }
}

※3D用のColliderと混同しないように気を付けてください。

リンク

Unity – Scripting API: Physics2D.Raycast
https://docs.unity3d.com/ScriptReference/Physics2D.Raycast.html

Unity – Scripting API: Collider2D
https://docs.unity3d.com/ScriptReference/Collider2D.html

プロキシ環境もしくはオフライン環境でUnityをインストールする方法

プロキシ環境下やオフライン環境でUnityをインストールする方法について。

Unity Hubを使わない場合/オフラインの場合

まず、インターネットに接続されているPCからUnityのアーカイブページにアクセスしてインストールしたいファイルをダウンロードしておきます。


https://unity3d.com/get-unity/download/archive

最低限必要なファイルは

  • Unity Editor (64-bit)

のみです。

Android/iOS Target Supportなどは必要な場合のみダウンロードしてください。

ダウンロードできたらファイルをインストールしたいPCに持って行ってダブルクリックでインストールできます。

インストール後のアクティベーションはManual Activationを選べばネット環境に寄らずセットアップできます。

Unity Hubを使う場合

こちらのページからUnity Hubをダウンロードして通常通りにインストールします。


https://unity.com/download

インストールできたら下記の内容でバッチファイル(.bat)を作成します。

@echo off
set HTTP_PROXY=http://プロキシのIPアドレス:ポート番号
set HTTPS_PROXY=http://プロキシのIPアドレス:ポート番号
start "" "<Unity Hubのインストール先>\Unity Hub.exe"

Unity Hubのインストール先は実際の環境に合わせてください。デフォルトの設定でインストールしている場合はC:\Program Files\Unity Hub\Unity Hub.exeになるかと思います。

作成できたらダブルクリックでバッチファイルからUnity Hubを起動して必要なバージョンのUnity Editorをインストールしてください。

アクセス制限している場合

プロキシサーバーでアクセス制限している場合は下記のドメインを許可しておく必要があります。

*.unity.com
*.unity3d.com

リンク

Unity – Manual: Offline (manual) license activation
https://docs.unity3d.com/Manual/ManualActivationGuide.html

Unity – Manual: Solving network issues
https://docs.unity3d.com/Manual/upm-config-network.html