動画ファイルを2分固定の早回し再生動画として再エンコードする…みたいな話

「2倍再生」とか「0.5倍速再生」の例は web で見つかるんですけど 「長さ不定の動画を強制的に2分で収まる動画として再エンコードする」 みたいな例は見つからない感じがする(?)

…ので、それを実現するには以下で出来るハズ

ffmpeg -i input.mp4 -vf "setpts=${NEW_DURATION}*PTS/${ORG_DURATION}" -o new_movie.mp4
# Audio の話が抜けてる点に留意

NEW_DURATION / ORG_DURATION の単位は何でも良いです。"秒" であれば両方とも "秒" で指定すれば良いですし、”ミリ秒” でも "分" でも "frame" でも良いです。 小数点も使えますゾ!

少し悩ましいのは ORG_DURATION を元の動画ファイルからどう取得するかだと思います。 例えば NEW_DURATION を「2」とした場合、元動画の長さを分単位でどう得るか? 120秒 とした場合、秒単位で元動画の長さをどう得るか? 480frame としたらならどう得るか? …まぁ ffmpeg -i して出力される元動画情報から grep なり awk なり pythonPowerShell で script 書くなりで頑張るしか無いような気はします……?