The query filtered on (end_time >= after AND start_time <= before). With
before defaulting to now, start_time <= before matches every row, so SQLite
range-scans the entire recordings table for any window. Add a start_time lower
bound (segments are short, so a recording overlapping the window starts within
an hour of it). Also fix a 500 on cameras=all, where cameras was reassigned to a
list and later .split().