{"id":20340125,"url":"https://github.com/zulko/moviepy_matplotlib","last_synced_at":"2025-04-11T23:16:52.359Z","repository":{"id":23930568,"uuid":"27311673","full_name":"Zulko/moviepy_matplotlib","owner":"Zulko","description":"For issue on matplotlib","archived":false,"fork":false,"pushed_at":"2014-11-29T18:54:08.000Z","size":540,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T23:16:47.827Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Zulko.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}},"created_at":"2014-11-29T18:48:49.000Z","updated_at":"2020-09-15T03:34:27.000Z","dependencies_parsed_at":"2022-08-22T08:10:55.780Z","dependency_job_id":null,"html_url":"https://github.com/Zulko/moviepy_matplotlib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zulko%2Fmoviepy_matplotlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zulko%2Fmoviepy_matplotlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zulko%2Fmoviepy_matplotlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zulko%2Fmoviepy_matplotlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zulko","download_url":"https://codeload.github.com/Zulko/moviepy_matplotlib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248492885,"owners_count":21113163,"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-11-14T21:19:51.868Z","updated_at":"2025-04-11T23:16:52.340Z","avatar_url":"https://github.com/Zulko.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Repo made for the following issue on github/Matplotlib:\n\n\nI compared writing a video using Matplotlib's animation module, with writing the same Matplotlib video using my library MoviePy instead of Animation.save().\n\nSee [here](https://github.com/Zulko/moviepy_matplotlib) for details and results.\n\nIt turns out that MoviePy produces an animation of better quality (Matplotlib's has\nJPEG-compression-style artefacts) and much lighter (95k for MoviePy, 456k for Matplotlib).\nMoviePy is also faster (generating the animation takes 6 seconds with MoviePy, against 12s\nfor Matplotlib).\n\n\nThe codes of the animation with matplotlib.Animation and MoviePy are a little different but I made sure the two clips had the same number of frames, same fps, (almost) the same size, same writer (FFMPEG), etc. so I really believe this shows that Animation.save(), or at least its defaults, could be improved.\n\n\nNot sure where the problem is. For the quality/size, it may be a matter of\ncodecs or whatever, I'm sure it can be tuned.  For the speed, it may be due to\nthe fact that Matplotlib converts the frame into some compressed image format\n(I believe it is PNG by default) and sends them to ffmpeg, which then must\ndecode it. MoviePy sends the raw RGB snapshot of the matplotlib canvas directly\nto ffmpeg (no encoding/decoding needed).\n\nMaybe it would be possible to have by default matplotlib send directly a raw RGB input to ffmpeg (or avconv),\nlike MoviePy does ?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzulko%2Fmoviepy_matplotlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzulko%2Fmoviepy_matplotlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzulko%2Fmoviepy_matplotlib/lists"}