『ffmpeg』というのは動画や音声ファイルを変換するツールです。
しかし、ffmpeg.exeをダブルクリックしても何も反応しません。
他のツールと連携したり、バッチファイルを作ったりしてコマンドを渡すことで動作します。
ここでは倍速化用のバッチファイルの作り方を説明します。
音声ファイルだけでなく動画ファイルも倍速変換できます。
Windows用の情報です。
今後のアップデートなどで変更される点があるかもしれません。
目次
ffmpegのダウンロード
まずffmpeg.exeを『FFmpeg公式サイト』から入手してください。
【例】
Download
↓
Get packages & executable files
↓
Windows builds from gyan.dev
- git full – built from master branch with a large set of libraries
多数のライブラリセットを備えたマスターブランチから構築 - git essentials – built from master branch with commonly-used libraries
一般的に使用されるライブラリを使用してマスターブランチから構築 - release full – built from latest release branch with a large set of libraries
多数のライブラリセットを備えた最新リリースブランチから構築 - release essentials – built from latest release branch with commonly-used libraries
一般的に使用されるライブラリを備えた最新リリースブランチから構築
マスターとリリースの違いなどよくわかりませんが、
一番下の『release essentials』でいいんじゃないですかね。
倍速化バッチファイルの作成
適当なmp3ファイルを用意し、ファイル名を test.mp3 にしてください。
次にテキストファイルを新規作成し、下の一文をコピーペーストして保存してください。
1 |
ffmpeg -i test.mp3 -af atempo=1.5 test_x1.5.mp3 |
保存したテキストファイルの拡張子.txtを.batに変えてください。
拡張子が表示されてない人は、表示の仕方を調べて表示させて.txtを.batに変えてください。
その.batファイルがバッチファイルです。
そのbatファイルとtest.mp3をffmpeg.exeと同じフォルダに入れ、batファイルをダブルクリックすれば1.5倍速になったtest_x1.5.mp3が作成されます。
うまく動作しない場合は右クリック→『管理者として実行』でやってみてください。
メディアファイル倍速化コマンドパラメータの解説
では解説していきます。
音声ファイルの場合
先程のこれを基本形とします。
1 |
ffmpeg -i test.mp3 -af atempo=1.5 test_x1.5.mp3 |
で、意味はそれぞれ
-i | 入力ファイル指定コマンド |
test.mp3 | 元になるファイル(ファイル名は変更可) |
-af | オーディオフィルタコマンド |
atempo=1.5 | オーディオ速度パラメータ(数値は変更可) |
test_x1.5.mp3 | 作成されるファイル名(変更可) |
という訳です。
変更可という部分は自分の都合に合わせて変更してください。
例えば[atempo=1.5]を[atempo=2.0]にすれば2倍速ファイルができます。
しかし、[test_x1.5.mp3]のところがそのままだと2倍速の[test_x1.5.mp3]ができるので、
[test_x1.5.mp3]という箇所を[test_x2.0.mp3]とすれば
2倍速の[test_x2.0.mp3]という名前のファイルができます。
また、作成されるファイルの拡張子を[.wav]にすればWaveファイルが作成されます。
複数のファイルを処理する方法は後述します。
それぞれのコマンドの間の半角スペースも忘れず入れてください。
動画ファイルの場合
動画の場合は
1 |
ffmpeg -i test.mp4 -vf setpts=PTS/1.5 -af atempo=1.5 test_x1.5.mp4 |
のように
-vf:ビデオフィルタ
setpts=PTS/1.5:テンポ(数値は変更可)
が追加されます。拡張子も動画のものになります。
これは1.5倍速です。適宜変更してください。
コマンドは他にも
-vn : 動画から音声のみ取り出す
などがあります。
コマンド、パラメータは他にもあるのでご自分でいろいろ試してみてください。
変換を途中でやめる時はキーボードの[Q]を押してください。
一時停止ではなくキャンセルになるので、処理中のファイルは途中までのものが作られます。
2倍速以上にしたい場合
2倍速以上にしたい場合は、オーディオテンポ[atempo=]の部分を「,」でつなげて書くことで倍々にできます。
4倍速↓
1 |
ffmpeg -i test.mp3 -af atempo=2.0,atempo=2.0 test_x4.0.mp3 |
8倍速↓
1 |
ffmpeg -i test.mp3 -af atempo=2.0,atempo=2.0,atempo=2.0 test_x8.0.mp3 |
16倍速↓
1 |
ffmpeg -i test.mp3 -af atempo=2.0,atempo=2.0,atempo=2.0,atempo=2.0 test_x16.0.mp3 |
3倍速↓
1 |
ffmpeg -i test.mp3 -af atempo=2.0,atempo=1.5 test_x3.mp3 |
ここまでで音声と動画の速度を変更して保存できるようになりました。
しかし、これではいちいちファイル名をtestにしたり、一個ずつ処理することになるので面倒です。
そこで、以下のような構文をbatファイル(バッチファイル)にし、ドラッグアンドドロップでまとめて処理できるようにします。
複数のファイルをまとめて倍速化処理
以下のような構文をbatファイル(バッチファイル)にし、ドラッグアンドドロップでまとめて処理できるようにします。
1 2 3 4 5 6 7 8 |
:loop if "%~1" == "" goto end set filename=%~p1%~n1 ffmpeg -i "%~1" -af atempo=1.5 "%filename%"_x1.5.mp3 shift goto loop :end exit |
これをテキストファイルに記述し、その.txtを.batにしてffmpeg.exeと同じフォルダに入れ、変換したいファイルをドラッグアンドドロップします。
ここではダブルクリックではなく、ドラッグアンドドロップです。
しかし、あまり大量のファイルをドラッグアンドドロップしてもうまくできないようです。
また、日本語ファイル名だとうまくできません。
バッチファイルをffmpeg.exeと別フォルダに置きたい場合
バッチファイルをffmpeg.exeと別フォルダに置きたい場合は
先頭に[cd ffmpeg.exeのある場所]を加えます。
場所に日本語があると動作しません。
例:ffmpeg.exeが『C:\Program Files\ffmpeg』にある場合
1 2 3 4 5 6 7 8 9 |
cd C:\Program Files\ffmpeg :loop if "%~1" == "" goto end set filename=%~p1%~n1 ffmpeg -i "%~1" -af atempo=1.5 "%filename%"_x1.5.mp3 shift goto loop :end exit |
まとめ&サンプル集
まとめ&サンプル集です。
これをテキストファイルに記述し、その.txtを.batにしてffmpeg.exeと同じフォルダに入れ、変換したいファイルをドラッグアンドドロップします。
バッチファイルをffmpeg.exeと別フォルダに置きたい場合は、
『:loop』の上に[cd ffmpeg.exeのある場所]を書き加えます。
.batのショートカット作ってそれにドラッグアンドドロップでも使えるので、バッチファイルはffmpegフォルダに入れてショートカットを好きなところに置いてショートカットにドラッグアンドドロップでもいけます。
倍速値を変更したい場合は[1.5]とあるところを変更してください。
ただし、[2.0]までです。[2.0]以上の場合は[atempo=2.0,]を連記してください。
.batファイルの編集は右クリックで『編集』と出ると思うので、そのまま編集して保存すればいいです。
変換を途中でやめる時はキーボードの[Q]を押してください。
音声
[rem]っていうのはコメントです。処理には関係ないです。備忘録的記述です。
1 2 3 4 5 6 7 8 9 |
rem 1.5倍速のmp3へ変換 :loop if "%~1" == "" goto end set filename=%~p1%~n1 ffmpeg -i "%~1" -af atempo=1.5 "%filename%"_x1.5.mp3 shift goto loop :end exit |
1 2 3 4 5 6 7 8 9 |
rem 1.5倍速のWave[44100Hz]へ変換 :loop if "%~1" == "" goto end set filename=%~p1%~n1 ffmpeg -i "%~1" -af atempo=1.5 -ar 44100 "%filename%"_x1.5.wav shift goto loop :end exit |
1 2 3 4 5 6 7 8 9 |
rem 4倍速のmp3へ変換 :loop if "%~1" == "" goto end set filename=%~p1%~n1 ffmpeg -i "%~1" -af atempo=2.0,atempo=2.0 "%filename%"_x4.0.mp3 shift goto loop :end exit |
1 2 3 4 5 6 7 8 9 |
rem 4倍速のWave[44100Hz]へ変換 :loop if "%~1" == "" goto end set filename=%~p1%~n1 ffmpeg -i "%~1" -af atempo=2.0,atempo=2.0 -ar 44100 "%filename%"_x4.0.wav shift goto loop :end exit |
CDに焼けば普通のCDプレーヤーで再生できます。
別途ライティングソフトの使い方を参照してください。
ちなみにDVDなどは[48000Hz]です。
未確認ですが、↓これで48000Hzのwaveができると思います。
1 2 3 4 5 6 7 8 9 |
rem 4倍速のWave[48000Hz]へ変換 :loop if "%~1" == "" goto end set filename=%~p1%~n1 ffmpeg -i "%~1" -af atempo=2.0,atempo=2.0 -ar 48000 "%filename%"_x4.0.wav shift goto loop :end exit |
動画
1 2 3 4 5 6 7 8 9 |
rem 1.5倍速のmp4へ変換 :loop if "%~1" == "" goto end set filename=%~p1%~n1 ffmpeg -i "%~1" -vf setpts=PTS/1.5 -af atempo=1.5 "%filename%"_x1.5.mp4 shift goto loop :end exit |
1 2 3 4 5 6 7 8 9 |
rem 4倍速のmp4へ変換 :loop if "%~1" == "" goto end set filename=%~p1%~n1 ffmpeg -i "%~1" -vf setpts=PTS/4.0 -af atempo=2.0,atempo=2.0 "%filename%"_x4.0.mp4 shift goto loop :end exit |