[利用規約]
[プライバシーポリシー]

ffmpegで速聴、ffmpegでファイルの倍速化

『ffmpeg』というのは動画や音声ファイルを変換したりするツールです。

しかし、ffmpeg.exeをダブルクリックしても何も反応しません。

他のツールと連携したり、バッチファイルを作ったりしてコマンドを渡すことで動作します。

ここでは倍速化用のバッチファイルの作り方を説明します。

Windows用の情報です。

音声ファイルや動画ファイルも倍速変換できます。

ffmpegのダウンロード

まずは『ffmpeg』をダウンロードして解凍してください。
https://ffmpeg.zeranoe.com/builds/

ダウンロードの際3つほどの項目を選択します。以下は例です。
Versionは4.1などバージョンが書いてある方
ArchitectureはOSの環境に合わせて
Linkingは「static」を選択
『Download Build』をクリック

ダウンロードしたファイルを解凍すると、[bin]というフォルダの中にffmpeg.exeがあります。

次にバッチファイルを作成し、倍速化してみましょう。

倍速化バッチファイルの作成

適当なmp3ファイルを用意し、ファイル名を test.mp3 にしてください。
次にテキストファイルを新規作成し、下の一文をコピーペーストして保存してください。

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が作成されます。

うまく動作しない場合は右クリック→『管理者として実行』でやってみてください。

メディアファイル倍速化コマンドパラメータの解説

では解説していきます。

音声ファイルの場合

先程のこれを基本形とします。

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]とすれば[test_x2.0.mp3]という名前のファイルができます。
また、作成されるファイルの拡張子を[.wav]にすればWaveファイルが作成されます。

複数のファイルを処理する方法は後述します。

それぞれのコマンドの間の半角スペースも忘れず入れてください。

動画ファイルの場合

動画の場合は

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倍速

ffmpeg -i test.mp3 -af atempo=2.0,atempo=2.0 test_x4.0.mp3

8倍速

ffmpeg -i test.mp3 -af atempo=2.0,atempo=2.0,atempo=2.0 test_x8.0.mp3

16倍速

ffmpeg -i test.mp3 -af atempo=2.0,atempo=2.0,atempo=2.0,atempo=2.0 test_x16.0.mp3

3倍速

ffmpeg -i test.mp3 -af atempo=2.0,atempo=1.5 test_x3.mp3

ここまでで音声と動画の速度を変更して保存できるようになりました。

しかし、これではいちいちファイル名をtestにしたり、一個ずつ処理することになるので面倒です。

そこで、以下のような構文をbatファイル(バッチファイル)にし、ドラッグアンドドロップでまとめて処理できるようにします。

複数のファイルをまとめて倍速化処理

以下のような構文をbatファイル(バッチファイル)にし、ドラッグアンドドロップでまとめて処理できるようにします。

: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』にある場合

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]っていうのはコメントです。処理には関係ないです。備忘録的記述です。

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
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
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
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

Wave[44100Hz]っていうのはCD用の形式です。
CDに焼けば普通のCDプレーヤーで再生できますが、別途ライティングソフトの使い方を参照してください。

動画

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
[setpts=PTS]はそのまま[4.0]でいけました

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
タイトルとURLをコピーしました

当サイトの画像および文言・情報の無断転載を禁じます。
著作権保護法に基づき、しかるべき処置をさせていただいております。