ffmpeg – и фильр
setpts
Например, видео длинной 24 часа уместить в 5 минут – значит, ускорить его в 288 раз:
ffmpeg -i daily.mp4 -filter:v "setpts=PTS/288" timelapse.mp4
Ещё вариант целый день не снимать видео всё-таки, а ограничиться фото-кадрами, из которых потом можно собрать то же 5-минутное видео. 5 минут с частотой кадров 30 кадров в секунду – это всего 9000 кадров, которые нужно равномерно (или не очень) распределить по 24 часам дня. Это один снимок в 9.6 секунды. Получите папку с файлами 00001.jpg, 00002.jpg .. 09000.jpg, из которой потом тем же ffmpeg собрать видео:
ffmpeg -i %05d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p timelapse.mp4
Команды по памяти, не проверял.