reverse, areverseフィルタを使って逆再生にエンコードする。長時間逆再生にすると大量にメモリを消費するのであらかじめ時間を区切った方が処理が速く済む。

基本コマンド

ffmpeg -i input -filter_complex reverse;areverse output

最初は普通再生で次に逆再生をつなげる。
ffmpeg -i input -filter_complex "[0:v]reverse,fifo[r];[0:a]areverse,afifo[ar];[0:v][0:a][r][ar]concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output

動画の途中から逆再生にする場合は時間指定してあらかじめコピー出力する。
ffmpeg -ss [start_sec] -i input -t [duration] -c copy output
ffmpeg -ss 5 -i input -t 5 -c copy output

ffmpeg で指定時間でカットするまとめ
【ffmpeg】動画・音声を連結する concat の使い方

5秒から10秒までを逆再生にする。カット開始時間が早い場合は予めカットしなくてもこちらのコマンドでもよい。setpts, asetptsフィルタで5秒を指定し忘れないこと。
ffmpeg -i input -filter_complex "trim=5:10,setpts=PTS-STARTPTS,reverse;atrim=5:10,asetpts=PTS-STARTPTS,areverse" output

trim フィルタの使い方
映像と音声の pts を扱う setpts, asetpts

追記
trimフィルタを使うと PTS がおかしくなるので予め動画をカットするように文章を直した。2018年2月21日
trimフィルタを使う例を追加し直した。2019年2月13日
PTSがずれて意図した出力になっていないのを直した。2019年8月13日

公式ドキュメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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