Привет. Получаю неожиданный эффект при смене fps у ролика. Есть видос, 30.48 fps, делаю ему:
$ ffmpeg -i orig.mp4 orig_frames/%04d.png
$ ls orig_frames | wc
557
$ ffmpeg -i orig.mp4 -vf fps=fps=20 fps20_frames/%04d.png
$ ls 2 | wc
370
Дальше простая арифметика: 557/30.48=18.2сек; 370/20=18.5сек.
После смены фпс видос стал жирнее на 0.3 секунды. Почему? Куда вставились дополнительные фреймы и зачем? Если в случае с кодированием выхлопа кодеком ещё можно порассуждать на тему кратности кадров чему-то там важному в контексте этого кодека, то здесь же голые фреймы.
$ ffprobe orig.mp4 2>&1 | grep fps
Stream #0:0[0x1](eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720, 8936 kb/s, SAR 1:1 DAR 16:9, 30.48 fps, 30 tbr, 90k tbn (default)