{"id":25039527,"url":"https://github.com/fernandorpardo/time-lapse-camera","last_synced_at":"2025-06-11T19:05:42.593Z","repository":{"id":191340006,"uuid":"257654696","full_name":"fernandorpardo/Time-Lapse-Camera","owner":"fernandorpardo","description":"time lapse camera for Raspberry PI","archived":false,"fork":false,"pushed_at":"2021-07-17T07:40:55.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T21:45:26.616Z","etag":null,"topics":["camera","jpeg","timelapse"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fernandorpardo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-04-21T16:44:48.000Z","updated_at":"2021-07-17T07:43:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"cca17a58-4976-4272-ae2b-441ac693bc0d","html_url":"https://github.com/fernandorpardo/Time-Lapse-Camera","commit_stats":null,"previous_names":["fernandorpardo/time-lapse-camera"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fernandorpardo/Time-Lapse-Camera","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandorpardo%2FTime-Lapse-Camera","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandorpardo%2FTime-Lapse-Camera/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandorpardo%2FTime-Lapse-Camera/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandorpardo%2FTime-Lapse-Camera/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fernandorpardo","download_url":"https://codeload.github.com/fernandorpardo/Time-Lapse-Camera/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandorpardo%2FTime-Lapse-Camera/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259319472,"owners_count":22839780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["camera","jpeg","timelapse"],"created_at":"2025-02-06T02:52:19.977Z","updated_at":"2025-06-11T19:05:42.568Z","avatar_url":"https://github.com/fernandorpardo.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Time Lapse Camera\r\n\r\nTime Lapse Camera (TLCAM) is part of the Wilson project (www.iambobot.com)\r\n\r\n## DESCRIPTION\r\n\r\nTLCAM converts a Raspberry Pi with an USB camera or a Pi Camera into a Time-Lapse Camera.\r\n\r\nTLCAM does:\r\n- capture images from a V4L device, either directly as JPEG or as YUYV, and in the latter case, compress the capture to JPEG\r\n- store the JPEG image files at /var/www/ramdisk (#define IMAGE_STORAGE_PATH), where `ramdisk` is the mounting point of an adhoc created RAM disk.\r\n- display the images as they are captured, when 'display' option is selected, by copying the capture memory buffer into the frame buffer. When the capture is JPEG it is first decompressed and then copied.\r\n\r\nThis SW has been developed and tested in a Raspberry Pi Zero. Nothing prevents it from running on other Linux platforms. \r\n\r\n[TLCAM WEB app](https://github.com/fernandorpardo/Time-Lapse-Camera-WEB-app) is the companion app to play the images captured by TLCAM as motion pictures. Apache WEB server needs to be installed on the Raspberry to host the application. \r\nAlternatively, images can be uploaded to an external server using option `cloud`.\r\n\r\nTLCAM allows multiple players to fetch the images and display the video simultaneously.\r\n\r\nSW is not limited to one single camera although it has not been tested and would probably need a few changes to capture more than one at a time.\r\n\r\n\r\n## REQUISITES\r\nYou need to create a directory to store the capture files. It is recommended you create a RAM disk for better performance.\r\n\r\nIn case you need guidance about how to create the RAM disk check instructions at [www.iambobot.com](https://www.iambobot.com/en/articles/article_wilson_010_camera.php)\r\n\r\nChange the #define IMAGE_STORAGE_PATH in the .h file to point to your storage.\r\n\r\n\r\n## USAGE\r\nCall TLCAM with the capture time period in milliseconds\r\n\r\ne.g.: “tlcam 100” captures 10 images per second. \r\n\r\n```console\r\ntlcam 100\r\n```\r\nCapture rate limit depends on HW performance, of both, camera and HW platform (Raspberry).\r\n\r\nDefault working mode is VGA (640 x 480) and MPEJ, when supported.\r\n\r\nType “tlcam” to see usage information. \r\n\r\n```console\r\n$ tlcam\r\nTime Lapse Camera version 01.01.00-2020.11.15-194946\r\nUsage:\r\ntlcam \u003ctime\u003e [--command] [options]\r\n   time      - capture period in miliseconds (\u003c=100 recommended)\r\ncommands are:\r\n   --info    - shows camera information\r\nOptions are:\r\n   videoX    - select camera driver /dev/videoX. Default is video0\r\n   qvga      - set QVGA capture(320x240)\r\n   vga       - set VGA capture (640x480) (default)\r\n   svga      - set Super-VGA capture (800x600)\r\n   hd        - set high definition capture (1280x720)\r\n   jpeg      - requests the camera to capture JPEG encoded images\r\n   mjpg      - requests the camera to capture MJPG encoded images (default)\r\n   yuyv      - requests the camera to capture YUYV encoded images\r\n   display   - output captured image into the framebuffer (HDMI output)\r\n   noverbose - stop console output\r\n   agent     - runs silently: set noverbose and disable kbhit\r\n   cloud     - upload image to cloud host instead of local camera storage (default is local)\r\n\r\nexample:\r\n   tlcam 100\r\n   tlcam 100 yuyv vga\r\n   tlcam 100 agent\r\n```\r\n\r\n## LIMITATIONS\r\nResolutions currently supported are HD (1280 x 720), SVGA (800 x 600), VGA (640 x 480) and QVGA (340 x 240).\r\n\r\nYUV option needs some debugging.\r\n\r\n## REFERENCES\r\n- V4L capture code is based on the SW published by [Jay Rambhia](https://gist.github.com/jayrambhia/5866483)\r\n- JPEG decompression is based on the example by Kenneth Finnegan - [A bare-bones example of how to use jpeglib to decompress a jpg in memory](https://gist.github.com/PhirePhly/3080633)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandorpardo%2Ftime-lapse-camera","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffernandorpardo%2Ftime-lapse-camera","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandorpardo%2Ftime-lapse-camera/lists"}