{"id":13626176,"url":"https://github.com/hediet/slideo","last_synced_at":"2025-08-15T19:11:59.967Z","repository":{"id":91621774,"uuid":"344851502","full_name":"hediet/slideo","owner":"hediet","description":"This tool uses OpenCV to automatically synchronize slides with videos that show these slides.","archived":false,"fork":false,"pushed_at":"2021-10-18T20:43:08.000Z","size":46659,"stargazers_count":101,"open_issues_count":1,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-12T18:01:52.556Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hediet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"hediet"}},"created_at":"2021-03-05T15:25:34.000Z","updated_at":"2025-02-12T07:15:30.000Z","dependencies_parsed_at":"2024-01-14T07:31:43.412Z","dependency_job_id":null,"html_url":"https://github.com/hediet/slideo","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hediet%2Fslideo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hediet%2Fslideo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hediet%2Fslideo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hediet%2Fslideo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hediet","download_url":"https://codeload.github.com/hediet/slideo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246156025,"owners_count":20732357,"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":[],"created_at":"2024-08-01T21:02:12.161Z","updated_at":"2025-03-30T21:31:50.628Z","avatar_url":"https://github.com/hediet.png","language":"Rust","funding_links":["https://github.com/sponsors/hediet","https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=ZP5F38L4C88UY\u0026source=url"],"categories":["Rust"],"sub_categories":[],"readme":"# Slideo: Synchronize Slides With Video\n\n[![](https://img.shields.io/static/v1?style=social\u0026label=Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026color\u0026link=%3Curl%3E)](https://github.com/sponsors/hediet)\n[![](https://img.shields.io/static/v1?style=social\u0026label=Donate\u0026message=%E2%9D%A4\u0026logo=Paypal\u0026color\u0026link=%3Curl%3E)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=ZP5F38L4C88UY\u0026source=url)\n[![](https://img.shields.io/twitter/follow/hediet_dev.svg?style=social)](https://twitter.com/intent/follow?screen_name=hediet_dev)\n\nThis tool matches video frames against PDF pages by using computer vision.\nIt also ships a web app in which you can click on a PDF page to play the video from the first frame showing the page.\nIts primary use-case is to quickly play a recorded lecture from a given slide.\n\nWorks best if the PDF page in the video is captured through screen recording and video is 1080p, but it might work in other scenarios too (rotation, shifting, scaling, obstruction and additional on-screen content is supported).\n\n**See [Background](./BACKGROUND.md) for building instructions and how the matching algorithm works.**\n\n_This is tool is more a proof of concept rather than a polished product. Please reach out if you want to make a nice open source product out of it._\n\n![](./docs/demo.gif)\n\n## Installation\n\nSee [Releases](https://github.com/hediet/slideo/releases).\nAn installer is not yet provided. Feel free to contribute!\n\n### Windows Requirements\n\n-   [Microsoft Visual C++ Redistributable für Visual Studio 2019](https://visualstudio.microsoft.com/de/downloads/#microsoft-visual-c-redistributable-for-visual-studio-2019)\n\n### Linux, Mac Requirements\n\n(untested)\n\n-   OpenCV 4.5.2\n-   Poppler\n\n## Usage\n\n### Synchronize a Set of PDFs With a Set of Videos\n\nAny given lecture slide can appear in any given video.\nFor performance and accuracy, keep the amount of pdf files small and prefer seperate invocations.\nSynchronizing an entire lecture (\u003c1000 slides) should work well though.\n\n```sh\nslideo lecture1.pdf lecture2.pdf video1.mp4 video2.mp4\n```\n\nWhen you know that video1 does not contain any slides of lecture2, you can do this to improve accuracy:\n\n```sh\nslideo lecture1.pdf video1.mp4 --non-interactive \u0026\u0026 slideo lecture2.pdf video2.mp4 --non-interactive\n```\n\n### View a Synchronized PDF\n\n```\nslideo lecture1.pdf\n```\n\nThis will spawn a webserver on port 63944 and print an url that you can open in your favorite browser to open the viewer.\n\n**You can drag\u0026drop any processed PDF into the viewer!**\n\n## TODO\n\n-   Use wry to build a proper web GUI.\n-   Use rustcv to get rid of the OpenCV dependency.\n\n# Other Stuff You Might Like\n\n-   ## [Browser Extension: Improved GitHub Issue Editor](https://github.com/hediet/browser-ext-github-monaco)\n-   ## Draw.io for [VS Code](https://github.com/hediet/vscode-drawio) and [IntelliJ](https://github.com/docToolchain/diagrams.net-intellij-plugin)\n-   ## [Debug Visualizer for VS Code](https://github.com/hediet/vscode-debug-visualizer)\n\nA big **Thank You** to all my sponsors on GitHub!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhediet%2Fslideo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhediet%2Fslideo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhediet%2Fslideo/lists"}