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 で指定時間でカットするまとめ
【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日

公式ドキュメント

コメントを残す

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

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