{"id":19207673,"url":"https://github.com/gill-singh-a/video-feed-synchronization","last_synced_at":"2026-04-17T10:10:57.621Z","repository":{"id":221252620,"uuid":"750606592","full_name":"Gill-Singh-A/Video-Feed-Synchronization","owner":"Gill-Singh-A","description":"Simple Python Programs that Synchronizes video frames of different FPS and recording time by mapping frames with respect to the time they were captured","archived":false,"fork":false,"pushed_at":"2024-02-06T23:32:26.000Z","size":8,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-15T00:03:20.598Z","etag":null,"topics":["image-processing","opencv","opencv-python","python","python3","synchronization","time"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Gill-Singh-A.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,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-31T00:36:56.000Z","updated_at":"2024-05-24T10:36:35.000Z","dependencies_parsed_at":"2024-02-13T08:36:41.255Z","dependency_job_id":null,"html_url":"https://github.com/Gill-Singh-A/Video-Feed-Synchronization","commit_stats":null,"previous_names":["gill-singh-a/video-feed-synchronization"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Gill-Singh-A/Video-Feed-Synchronization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gill-Singh-A%2FVideo-Feed-Synchronization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gill-Singh-A%2FVideo-Feed-Synchronization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gill-Singh-A%2FVideo-Feed-Synchronization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gill-Singh-A%2FVideo-Feed-Synchronization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gill-Singh-A","download_url":"https://codeload.github.com/Gill-Singh-A/Video-Feed-Synchronization/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gill-Singh-A%2FVideo-Feed-Synchronization/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259901331,"owners_count":22929223,"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":["image-processing","opencv","opencv-python","python","python3","synchronization","time"],"created_at":"2024-11-09T13:21:48.466Z","updated_at":"2026-04-17T10:10:57.577Z","avatar_url":"https://github.com/Gill-Singh-A.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Video Feed Synchronization\nSimple Python Programs that Synchronizes video frames of different FPS and recording time by mapping frames with respect to the time time they were captured.\n\n## Requirements\nLanguage Used = Python3\u003cbr /\u003e\nModules/Packages used:\n* cv2\n* pickle\n* numpy\n* pathlib\n* datetime\n* optparse\n* colorama\n* time\n\u003c!-- --\u003e\nInstall the dependencies:\n```bash\npip install -r requirements.txt\n```\n\n## Recorder\n***record.py*** is the Recorder Program that maps recorded frames to the time they were captured.\u003cbr /\u003e\nIt creates a folder in the current working directory with name depending upon the command line arguments provided.\u003cbr /\u003e\nIn the folder there are 2 items:\n* frames\n* time_mapping\n\u003c!-- --\u003e\n**frames** is a folder that contains the recorded frames with their name as frame index and extension *.jpg*\u003cbr /\u003e\n**time_mapping** is a pickle file that maps the time at which the frame was recorded to the frame index.\n### Arguments\nIt takes in the following command line arguments:\n* '-c', \"--camera\": Index of Camera Device to use\n* '-s', \"--show\": Show the Camera Feed (True/False, Default=False)\n* '-w', \"--write\": Folder Name to store the Frames and Time Mappings (default=current data and time)\n\n## Synchronizer\n***synchronize.py*** is the Synchronizer Program that loads the time mappings and frames to make final videos for each recording that is synchronized with each other.\u003cbr /\u003e\nThe Final Videos are stored in a newly folder created in the current working directory with name depending upon the command line arguments provided.\u003cbr /\u003e\nIt has 2 types of Synchronizing Options:\n* Union\n* Intersection\n\u003c!-- --\u003e\n### Union Mode\nIn the union mode, every frame of the video is there in the final video. If a video feed didn't capture a frame at some specific time, then a Blank Frame is added at that time.\n### Intersection Mode\nIn the intersection mode, only the video frames that are in common in all the video files are added.\n### Arguments\nIt takes in the following command line arguments:\n* '-f', \"--feed\": Name of Feed Folders with time mappings (seperated by ',')\n* '-w', \"--write\": Folder Name to store the Final Video Files (default=current data and time)\n* '-t', \"--type\": Type of Video Set (Union/Intersection, Default=Intersection)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgill-singh-a%2Fvideo-feed-synchronization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgill-singh-a%2Fvideo-feed-synchronization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgill-singh-a%2Fvideo-feed-synchronization/lists"}