ファイル変換システムffmpegの導入方法（Windows）

## はじめに
ファイルを変換するときに便利なffmpegをコマンドプロンプトで簡単に実行できる方法を実際の経験をもとにまとめました。
### この記事でわかること
Windowsにおいて
・ファイル変換システムFFmpegの導入方法
・FFmpegの使い方
・使い勝手、感想（主観）

### 私の実装環境
Windows11 Home 64-bit
実装日時：2025年1月2日

### この記事の対象者
webmをmp3に変換するなど、ファイル変換をするときにウェブのサービスを使うのが面倒だと感じる人

## ファイル変換システムFFmpegの導入方法
### 流れ
ファイル変換システムFFmpegの導入方法の流れは以下の通りです。
(1) FFmpegのおおもとのファイルをダウンロード
(2) 展開してフォルダ配置
(3) Pathを通す
(4) テスト
### FFmpegのおおもとのファイルをダウンロード
FFmpeg公式ホームページ（[こちら](https://ffmpeg.org)）にアクセスします。
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/35f45b99-d445-aab8-7c37-d399001b62a1.png)
右上のDownloadのボタンをクリックします。
![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/0b348246-4014-5d59-0739-e7ec676e5bbd.png)
私はWindowsなのでWindowsのマークをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/a2eab2bb-46ac-c8eb-98fd-5f3293e05aa1.png)
スクロールされるので、上に戻ると、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/e7333abb-8616-b913-1f2b-4d7c9db1786d.png)
↑このような画面になります。
![画像3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/364b4e8a-5bc6-b30c-f1f8-e008de2d0327.png)
そしたら、Windows EXE Filesというグレーの文字の下の二個目、Windows builds by BtbNをクリックします。
![画像4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/d403dcab-69f0-64a7-d438-32bfc385ed90.png)
すると、GitHubのページに遷移します。私はWindows11 Home 64-bitなのでffmpeg-master-latest-win64-gpl.zipをダウンロードします。

### 展開してフォルダ配置
ダウンロードしたzipファイルを展開します。zipなのでWindowsの純正展開機能でも展開できますが、7-zipを使った方が早いのでお勧めです。
展開すると、ffmpeg-master-latest-win64-gplというフォルダの中にbinフォルダ、docフォルダ、LICENSE.txtが存在しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/969b29aa-3bfa-5e7d-7e41-c99e7ce58f1b.png)
フォルダ「ffmpeg-master-latest-win64-gpl」の名称を「FFmpeg」と簡略化し、Cドライブ直下に配置します。（C:\FFmpeg\binとなるように配置）

### Pathを通す
FFmpegの導入はできましたが、これではコマンドプロンプトで使うことはできません。そのため、Pathというものを通す必要があります。
そのためにシステムのプロパティを開きます。
:::note info
システムのプロパティを開くにはWindowsキー + Rでファイルを指定して実行を起動し、sysdm.cplと入力してEnterを押します。
管理者権限のない標準ユーザーでログインしている場合、UAC（ユーザーアカウント制御）が表示されます。
:::
![画像6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/8130550b-19ce-3e70-b1ff-d91c351821f8.png)
上の詳細設定タブをクリックします。
![画像7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/1400922f-2670-9f56-fb0b-f84536893691.png)
右下の環境変数(N)...をクリックします。
![画像8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/5c4262ed-9092-5df7-8981-dd71a571e167.png)
隠してばかりで申し訳ありません。
下のシステム環境変数(S)の部分のPathを一回クリックし、右下の編集(I)...をクリックします。
:::note warn
上の〇〇のユーザー環境変数(U)（〇〇は管理者権限のあるユーザー名だと思います）のPathではなく、下のシステム環境変数(S)です。絶対に間違えないでください。後から修正するのも手間がかかりますし、なかなか編集する機会のない場所なので、間違えないようにお願いします。私は、責任は取れません。自己責任でお願いします。
上のPathに追加してもさほど問題ではありませんが...
:::
[画像10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/7ae5151e-17d1-611c-efa9-f81763f01097.png)
すると、環境変数名の編集というウィンドウが開きます。
これまた隠してばかりで申し訳ありません。
右の新規(N)をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/dc6a3ac0-139a-40b9-7167-ad352bf45ff8.png)
左側に入力欄が表示されるので、そこにさきほどのbinまでのパス（C:\FFmpeg\bin）を記入します。
そしたら、今まで開いてきた、「環境変数名の編集」「環境変数」「システムのプロパティ」のウィンドウを順に、右下のOKをクリックして閉じていきます。
これでPathを通すことができました。

### テスト
ffmpegが正しく導入できているかを確認してみましょう。
Windowsのコマンドプロンプトを起動します。
:::note info
コマンドプロンプトを起動するにはWindowsキー + Rでファイルを指定して実行を起動し、cmdと入力してEnterを押します。
:::
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/24b6578b-0f93-cc2e-4d8c-bca936af2a5c.png)
そこに「ffmpeg -version」と入力し、（ffmpegと-versionの間に半角空白一個）Enterを押します。
![画像10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/4c930917-ea92-fedf-a93e-c65b5a57af99.png)
![画像11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/ad103d47-3f70-e353-a21f-0f65d2c2ed48.png)
その時に上の画像のように長いものが出てきていれば導入は成功です。
```
'ffmpeg'は内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
```
このような表示の場合は導入失敗です。上記の説明をもう一度確認して、再度テストしてみましょう。
### よくある間違い
・ダウンロードしているものが違う
・C:\FFmpeg\binというディレクトリ構成になっていない
・FFmpegのつづりミス
・Pathの通し方間違い

## FFmpegの使い方
FFmpegを導入できたので使い方を確認しましょう。
まず、なんでもいいのでwebm形式の動画ファイルを準備します。
:::note info
webm形式の動画ファイルをいきなり作成するのが難しい場合はPCで画面収録をし、そのファイルをファイルコンバーター（[cloudconvert](https://cloudconvert.com/)など）でwebm形式に変換しましょう。画面収録は機種によって違うかもしれませんが、Windowsキー + Shift + Sで録画ができます。（Windowsキー + Gでもできた気がします）
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/869a2f8a-364c-cd3c-44b5-3e2ffac7098f.png)
適当にファイルを作成しました。（sample.webm）これをmp3にしてみましょう。ファイルが存在するディレクトリをエクスプローラーで開きます。
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/bc8a8158-f8c6-98c6-1dcf-e2b3f93e9893.png)
上の画像の赤い部分のように、白い空白の部分をクリックします。
![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/c35aae6a-2237-c755-3485-1b274cbc9a99.png)
するとディレクトリのフルパスが表示されるので、そこにcmdと入力して、Enterを押します。
![画像3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/9aafa8aa-63cb-1745-eebe-d9f5a10f0600.png)
すると、そのディレクトリを開いたコマンドプロンプトが起動します。ここに以下のコマンドを入力します。
```bat
ffmpeg -i <変換したいファイルのファイル名> <変換後のファイル名>
```
今回は変換したいファイル名がsample.webmで、変換後のファイル名をsample.mp3としたいので、（拡張子を変えると変換してくれる。）
```bat
ffmpeg -i sample.webm sample.mp3
```
これを実行すると、
![画像4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/5b347b2d-0bbf-f56a-cfd9-d9fedd1cf2ab.png)
こんな感じで大量のログが書かれ、変換されます。ファイルの長さや大きさにもよりますが、変換には少し時間がかかります。終わったかどうかの判断基準は一番下にC:から始まるものがあるかどうかです。あれば終了。なければまだ変換中です。

### おまけ
複数のwebmファイルを一回の実行でmp3に変換したいときはbatファイルを利用すると便利です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/fdc3f679-a938-59c7-2192-1021dfdbbf83.png)
とりあえず、変換するファイルを同じディレクトリにまとめます。（こんなことしなくてもできますが、この方が楽）
そしたら、新規テキストファイルを作成します。名前はなんでもOK。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/717a948d-c475-5978-706d-3d2187cfb0c8.png)
このsample.txtの中に以下のような記述をします。
```bat
ffmpeg -i sample(1).webm sample(1).mp3
ffmpeg -i sample(2).webm sample(2).mp3
ffmpeg -i sample(3).webm sample(3).mp3
ffmpeg -i sample(4).webm sample(4).mp3
ffmpeg -i sample(5).webm sample(5).mp3
ffmpeg -i sample(6).webm sample(6).mp3
ffmpeg -i sample(7).webm sample(7).mp3
ffmpeg -i sample(8).webm sample(8).mp3
ffmpeg -i sample(9).webm sample(9).mp3
ffmpeg -i sample(10).webm sample(10).mp3
ffmpeg -i sample(11).webm sample(11).mp3
ffmpeg -i sample(12).webm sample(12).mp3
ffmpeg -i sample(13).webm sample(13).mp3
ffmpeg -i sample(14).webm sample(14).mp3
ffmpeg -i sample(15).webm sample(15).mp3
ffmpeg -i sample(16).webm sample(16).mp3
ffmpeg -i sample(17).webm sample(17).mp3
```
さっきのコマンドを並べただけです。これを保存して閉じます。
ここで拡張子を表示していない場合は表示する必要があります。エクスプローラーの上の表示＞表示＞ファイル名拡張子にチェックをいれます。（下の画像参照）
![画像5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/dad51b25-4f96-4613-796c-1399751379ca.png)
そしてファイル名をsample.txtからsample.batに変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/58ebbc80-d72a-7e9d-7e1e-acebb9ba16c5.png)
このようにアイコンが変わればOKです。これをダブルクリックします。
すると、一時的にコマンドプロンプトを起動し、すべてのファイルの変換が完了すると、自動的に閉じます。
自動的に閉じてほしくない場合はsample.bat（もともとsample.txtのファイル）の最後にcmd /kを入力すれば閉じません。
```bat
ffmpeg -i sample(1).webm sample(1).mp3
ffmpeg -i sample(2).webm sample(2).mp3
ffmpeg -i sample(3).webm sample(3).mp3
ffmpeg -i sample(4).webm sample(4).mp3
ffmpeg -i sample(5).webm sample(5).mp3
ffmpeg -i sample(6).webm sample(6).mp3
ffmpeg -i sample(7).webm sample(7).mp3
ffmpeg -i sample(8).webm sample(8).mp3
ffmpeg -i sample(9).webm sample(9).mp3
ffmpeg -i sample(10).webm sample(10).mp3
ffmpeg -i sample(11).webm sample(11).mp3
ffmpeg -i sample(12).webm sample(12).mp3
ffmpeg -i sample(13).webm sample(13).mp3
ffmpeg -i sample(14).webm sample(14).mp3
ffmpeg -i sample(15).webm sample(15).mp3
ffmpeg -i sample(16).webm sample(16).mp3
ffmpeg -i sample(17).webm sample(17).mp3
cmd /k
```
複数ファイルを変換するとファイル数が倍になってどれが変換前で変換後なのかわからなくなって今うので、右上の種類をクリックして、mp3とwebmで分けることができます。（下の画像参照）
![画像6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976143/ec01d00c-873c-7ce0-4567-e08af8b38bdf.png)

## 使い勝手、感想（主観）
個人的にはコマンドやbatファイルで同時にファイル変換ができるのでとても気に入って利用しています。とくにiTunesにYouTubeの曲をダウンロードして追加するときに、webm形式になることが多いので、その時に多用しています。ただ、ファイル変換に少し時間がかかるのはネックですね。とはいえ、他の作業をしていればすぐに変換が終わっていますので、意外と便利です。オンラインのコンバーターにせよ、アプリにせよ、時間がかかることに変わりないので、オフライン、コマンドでできるffmpegはとても利便性が高いと思います。

## 最後に
不明点や誤字、間違った情報があれば遠慮なく、コメントお願いします。