Skip to main content

Miavisc is a video → slide converter

Project description

Miavisc is a Video → Slide Converter

Screenshot

Born out of my frustration, this tool will convert video of a lecture to pdf file at a blazzingly fast speed 🚀 (sarcasm intended).

Key features includes:

  • Blezzingly fast 🚀 — compare to other similar programs[^3], Miavisc is > 11x faster[^4] while producing comparable result[^5].
  • Tunable similarity threshold — so slightly different frame due to mouse movement / lazer pointers are not treated as different page
  • Selectable ignored area — only process centre portion area (to ignore camera, etc.)

[^3]: That I have tried (e.g., those in reference section). [^4]: Miavisc at 2:00 min. vs binh234/video2slides at 22:08 min. Tested on Macbook Air M2, 512 GB SSD, 16 GM memory. Tested with 1280x720 @ 30fps, mp4, 1:11 hr lecture using GMG algorithm with no skip frames. [^5]: Overall, results from both programs are very usable without any significant difference (extra or missing slides here and there). Both requires some further manual processing (e.g., delete residual duplications). Note that this evaluation is SUBJECTIVE to the creator of this program and thus should be taken with a grain of salt.

To any professors out there, for the love of capybara and all is that holy in the world, PLEASE PROVIDE PDF OF YOUR LECTURE VIDEO 🔥🔥

Installation

From PyPL

pip install miavisc

Alteranatively, you install from git

git clone https://github.com/pannxe/miavisc.git
cd miavisc
pip install .

Or download the pre-build version and run pip install miavisc-x.x.x.tar.gz.

Usage

It is recommend that you use --fast --concurrent (shortern to -fc) almost without exception.

# Default
miavisc -fc -i <PATH_TO_VIDEO> -o <PATH_TO_PDF>

If you want to speed thing up even more, add --knn (-k) should not change the final result significantly but you will gain about 2-3x speed !! 🚀

# Extra fast, you see what I did there *wink*.
miavisc -fck -i <PATH_TO_VIDEO> -o <PATH_TO_PDF>

Brenchmark

[!NOTE] --check_per_sec was removed since version 2.0.0

Tested on Macbook Air M2, 512 GB SSD, 16 GM memory using 1280x720 @ 30fps, mp4, 1:11 hr lecture.

As --check_per_sec goes up, risk of page-loss increases but false triggers also decreases. Sweet spot seem to be around 10.

Using GMG algorithm might give you somewhat better result but KKN is faster especially with large --check_per_sec.

Options Exec time Diff
-f 6:15 min Base
-f --check_per_sec 10 2:45 min -56.3%
-fk 2:44 min -56.3%
-fk --check_per_sec 10 1:29 min -76.3%

Here's is what without --fast look like:

Options Exec time Diff
--check_per_sec 10 3:23 min +23.8%
-k --check_per_sec 10 6:28 min +335.1%

Update: Now, with --concurrent (or -c) you can speed thing up even more! Here's what -c look like compare to without one

Options Exec time Diff
-fc 2:00 min -312%
-fck 1:17 min -213%

Author

References

  • Kunal Dawn. (2023). Build a Video to Slides Converter Application using the Power of Background Estimation and Frame Differencing in OpenCV. LearnOpenCV. Accessed April 1st, 2025. Link.
  • binh234/video2slides — Miavisc is inspired by this program and a lot of references are taken from this work. Any comparison to this program is purely educational and mean no offense to its author.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

miavisc-2.0.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file miavisc-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: miavisc-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for miavisc-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ec0943b0f7a778bd15599a61d6bff2acd0806d28305808c8eb9f824823e6524
MD5 461b6b2fe45c75be13d7ca068fedf549
BLAKE2b-256 d979e8e93d4a8f43b867233dc698c16c20af30b4145b286114106f3d630910c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page