元のオーディオとビデオの同期を維持しながら、「x1.25」または「x1.3」と言うことで、ビデオ(mp4、aacエンコードされたオーディオを使用)を高速化する比較的簡単な方法はありますか?オーディオ?
オーディオトラックを別のファイルに抽出することについてのいくつかの議論を読み、次にrubberband
を使用してピッチを必要な値だけ下げ、次にffmpegを使用してオーディオビデオトラックをスピードアップでマージします。オーディオを元に戻します。ただし、rubberband
はピッチを上げたり下げたりするためのパラメータとしてオクターブ数を使用しているように見えるため、これは少しヒットアンドミスのようです。これは、ビデオと常に完全に一致するとは限りません。音符/オクターブには特定の比率があります。また、これは面倒です。
それで、ffmpegだけを使用するより簡単な方法はありますか?
これは、複雑なフィルターを使用してffmpgegで実行できます。
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv
Doku: https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video
上記のコマンドは、速度を2倍にする場合に機能します。を掛けたい場合、パラメータは次のようになります。
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=<1/x>*PTS[v];[0:a]atempo=<x>[a]" -map "[v]" -map "[a]" output.mkv
たとえば、1.15を掛けたい場合、コマンドは次のようになります。
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.87*PTS[v];[0:a]atempo=1.15[a]" -map "[v]" -map "[a]" output.mkv