{"id":58,"date":"2025-08-27T15:06:24","date_gmt":"2025-08-27T15:06:24","guid":{"rendered":"https:\/\/scootercam.net\/notes\/?p=58"},"modified":"2025-08-27T15:07:15","modified_gmt":"2025-08-27T15:07:15","slug":"timelapse-system-process-flow","status":"publish","type":"post","link":"https:\/\/scootercam.net\/blog\/timelapse-system-process-flow\/","title":{"rendered":"Timelapse System Process Flow"},"content":{"rendered":"\n<p>This timelapse system creates smooth, fast-motion videos by taking still photos every 15 seconds and combining them into videos. Think of it like a flip book &#8211; lots of individual pictures played quickly to show motion over time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Complete Process<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Photo Capture (Continuous)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Two cameras<\/strong> (Amcrest and Reolink) take a photo every 15 seconds<\/li>\n\n\n\n<li>Photos are stored on the Raspberry Pi by time period:\n<ul class=\"wp-block-list\">\n<li><strong>Day<\/strong>: 8am &#8211; 4pm<\/li>\n\n\n\n<li><strong>Evening<\/strong>: 4pm &#8211; midnight<\/li>\n\n\n\n<li><strong>Night<\/strong>: midnight &#8211; 8am<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Video Creation (Every 15 Minutes)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Every 15 minutes, the system combines the recent photos into a short video segment<\/li>\n\n\n\n<li><strong>Staggered timing prevents conflicts<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Amcrest processes at :00 (8:00:00, 8:15:00, 8:30:00, etc.)<\/li>\n\n\n\n<li>Reolink processes at :30 (8:00:30, 8:15:30, 8:30:30, etc.)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Upload to Server (30 seconds apart)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each new video segment gets uploaded to Scootercam&#8217;s web server<\/li>\n\n\n\n<li>Uploads arrive 30 seconds apart to prevent overload<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Server Assembly (Instant)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Server <strong>appends<\/strong> each new segment to the growing daily video<\/li>\n\n\n\n<li>No re-processing needed &#8211; just adds the new piece to the end<\/li>\n\n\n\n<li>Much faster than rebuilding the entire video each time<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Final Daily Videos (8 total per day)<\/h3>\n\n\n\n<p><strong>For each camera (Amcrest &amp; Reolink):<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Day Video<\/strong> &#8211; All segments from 8am to 4pm<\/li>\n\n\n\n<li><strong>Evening Video<\/strong> &#8211; All segments from 4pm to midnight<\/li>\n\n\n\n<li><strong>Night Video<\/strong> &#8211; All segments from midnight to 8am<\/li>\n\n\n\n<li><strong>Sunset Video<\/strong> &#8211; Only segments during golden hour (30min before\/after sunset)<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Visual Flow Chart<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   AMCREST CAM   \u2502    \u2502   REOLINK CAM   \u2502\n\u2502 Photo every 15s \u2502    \u2502 Photo every 15s \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n          \u2502                      \u2502\n          \u25bc                      \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  Store photos   \u2502    \u2502  Store photos   \u2502\n\u2502   by period:    \u2502    \u2502   by period:    \u2502\n\u2502 \u2022 Day (8-4pm)   \u2502    \u2502 \u2022 Day (8-4pm)   \u2502\n\u2502 \u2022 Evening(4-12) \u2502    \u2502 \u2022 Evening(4-12) \u2502  \n\u2502 \u2022 Night (12-8)  \u2502    \u2502 \u2022 Night (12-8)  \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n          \u2502                      \u2502\n    Every 15 min                 \u2502\n    at :00 seconds               \u2502\n          \u2502                      \u2502\n          \u25bc                      \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510              \u2502\n\u2502   Process at    \u2502              \u2502\n\u2502    :00 mark     \u2502              \u2502\n\u2502 (8:00, 8:15,    \u2502              \u2502\n\u2502  8:30, 8:45)    \u2502              \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518              \u2502\n          \u2502                      \u2502\n          \u25bc                      \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510              \u2502\n\u2502  Create video   \u2502              \u2502\n\u2502   segment &amp;     \u2502              \u2502\n\u2502  upload (~:15)  \u2502              \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518              \u2502\n          \u2502                      \u2502\n          \u2502              Every 15 min\n          \u2502              at :30 seconds\n          \u2502                      \u2502\n          \u2502                      \u25bc\n          \u2502              \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n          \u2502              \u2502   Process at    \u2502\n          \u2502              \u2502   :30 mark      \u2502\n          \u2502              \u2502 (8:00:30, 8:15: \u2502\n          \u2502              \u2502  8:30:30, etc)  \u2502\n          \u2502              \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n          \u2502                       \u2502\n          \u2502                       \u25bc\n          \u2502              \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n          \u2502              \u2502  Create video   \u2502\n          \u2502              \u2502   segment &amp;     \u2502\n          \u2502              \u2502  upload (~:45)  \u2502\n          \u2502              \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n          \u2502                       \u2502\n          \u25bc                       \u25bc\n    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n    \u2502              WEB SERVER                 \u2502\n    \u2502                                         \u2502\n    \u2502  Receives uploads 30 seconds apart:     \u2502\n    \u2502  \u2022 Amcrest at :15 (8:00:15, 8:15:15)  \u2502\n    \u2502  \u2022 Reolink at :45 (8:00:45, 8:15:45)  \u2502\n    \u2502                                         \u2502\n    \u2502  APPENDS each segment to daily videos   \u2502\n    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                      \u2502\n                      \u25bc\n            \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n            \u2502 8 DAILY VIDEOS  \u2502\n            \u2502                 \u2502\n            \u2502 Amcrest:        \u2502\n            \u2502 \u2022 day.mp4       \u2502\n            \u2502 \u2022 evening.mp4   \u2502\n            \u2502 \u2022 night.mp4     \u2502\n            \u2502 \u2022 sunset.mp4    \u2502\n            \u2502                 \u2502\n            \u2502 Reolink:        \u2502\n            \u2502 \u2022 day.mp4       \u2502\n            \u2502 \u2022 evening.mp4   \u2502\n            \u2502 \u2022 night.mp4     \u2502\n            \u2502 \u2022 sunset.mp4    \u2502\n            \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Key Benefits of This System<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. <strong>Smooth Operation<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>30-second staggering prevents both cameras from overwhelming the server simultaneously<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. <strong>Efficient Processing<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Appending new segments takes 2-3 seconds instead of rebuilding entire videos (which could take minutes)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3. <strong>Real-time Viewing<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Videos are always up-to-date and viewable immediately after each segment arrives<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4. <strong>Automatic Seasonal Adjustment<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sunset videos automatically adjust timing as seasons change (using Douglas, Michigan coordinates)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5. <strong>Reliable Backup<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Original photo segments kept for 24 hours in case videos need rebuilding<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Timeline Example (8:00am &#8211; 8:15am)<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Time<\/th><th>Amcrest Activity<\/th><th>Reolink Activity<\/th><\/tr><\/thead><tbody><tr><td>8:00:00<\/td><td>Starts processing 60 photos into video segment<\/td><td>Taking photos<\/td><\/tr><tr><td>8:00:15<\/td><td>Uploads completed segment to server<\/td><td>Taking photos<\/td><\/tr><tr><td>8:00:30<\/td><td>Taking photos<\/td><td>Starts processing 60 photos into video segment<\/td><\/tr><tr><td>8:00:45<\/td><td>Taking photos<\/td><td>Uploads completed segment to server<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Result<\/strong>: Server receives two uploads 30 seconds apart, appends each to the appropriate daily videos, and viewers can watch the growing timelapse in real-time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This timelapse system creates smooth, fast-motion videos by taking still photos every 15 seconds and combining them into videos. Think of it like a flip book &#8211; lots of individual pictures played quickly to show motion over time. The Complete Process Step 1: Photo Capture (Continuous) Step 2: Video Creation (Every 15 Minutes) Step 3: &#8230; <a title=\"Timelapse System Process Flow\" class=\"read-more\" href=\"https:\/\/scootercam.net\/blog\/timelapse-system-process-flow\/\" aria-label=\"Read more about Timelapse System Process Flow\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-58","post","type-post","status-publish","format-standard","hentry","category-timelapse"],"_links":{"self":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":2,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":60,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/58\/revisions\/60"}],"wp:attachment":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}