Using ffmpeg to change framerate – Stack Overflow より、H.264, H.265 の映像を再エンコードせずにフレームレート(fps)を変更する方法。映像のフレームレートだけなので音声は再エンコードしないと速度を変えられない。音声の速度変更は atempo, rubberband フィルタのどちらかを使う。

【ffmpeg】倍速再生できる動画にエンコードする
サンプリング周波数を変えずにテンポとピッチを変える rubberband

元映像のフレームレートよりも入力フレームレートを大きくすれば再生速度は速く、動画時間は短くなる。反対に入力フレームレートを小さくすれば再生速度は遅く、動画時間は長くなる。

H.264 の場合。
ffmpeg -i input.mp4 -c copy output.h264
ffmpeg -r 12 -i output.h264 -c copy output.mp4
ffmpeg -r 36 -i output.h264 -c copy output.mp4

音声も合わせるなら映像の速度に合わせて atempo も揃える。
ffmpeg -r 36 -i output.h264 -i input.mp4 -filter_complex [1:a]atempo=1.5[a] -map 0 -c:v copy -map [a] -c:a aac output.mp4

H.265 の場合。
ffmpeg -i input.mp4 -c copy output.h265
ffmpeg -r 12 -i output.h265 -c copy output.mp4
ffmpeg -r 36 -i output.h265 -c copy output.mp4

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)