Zulko / moviepy

Video editing with Python
https://zulko.github.io/moviepy/
MIT License
12.27k stars 1.54k forks source link

The Future of MoviePy project #1874

Open B3QL opened 1 year ago

B3QL commented 1 year ago

I'm opening the issue in an attempt to provide a platform for discussion on the project's future.

The project is unmaintained and it looks like the original contributors lost interest in it. Currently, few fellows giving their best and taking care of reviewing PRs and fixing the issues related to their projects but it's not enough to keep the project healthy. The library is obsolete to the point that 3rd party open source software that depends on it is having problems with being included in the next Debian release.

If we want to save the project we need to build a community around it and/or seek some financial help from OSS foundations.

Nevertheless, we need YOUR help. If you have an idea of how to help the MoviePy project survive, please contribute in the comment.

OsaAjani commented 1 year ago

Okay so in order to align with @keikoro wish to keep this issue only about global strategy for the future of MoviePy, I have opened a new issue to be used as the place for further discussion about the specifics of v2.0 evolution, anyone interested please go look at issue #2012.

Please please please, @Zulko @tburrows13 and @davidbernat go over their, I will probably need advice and have questions I would like your opinions on!

Anyone else interested on v2.0 API evolution, even if you dont want to go very technical and only feel like giving opinion/feedback about how API should evolve, which feature should disappear/remain, you should probably follow issue #2012 too.

OsaAjani commented 1 year ago

Quick update for those not in the discussion about architectures changes.

The doc is almost ready, I still need to update some examples to follow the latest changes on the API, but most of the tedious work is done. Next big step will be adding some minimalist automatic unit tests on doc examples, and then for others peoples (like actual native speakers ^^) to read it and fix grammar, typos, etc.

We agreed with @Zulko to freeze the new API for the v2 a few days ago after a last big push to make all effects be actual class, and I just finished a few minutes ago to update/pass all the unit tests. So the new API is presumably ready to be shipped.

So, the official v2.0 has never been closer !

Once we have the v2 rolling, I will take some time to catch my breath, and then I will start to work on parallelization (though in a less intensive way than I have for the last month).

B3QL commented 1 year ago

So, the official v2.0 has never been closer !

@OsaAjani that's FANTASTIC news!

Next big step will be adding some minimalist automatic unit tests on doc examples, and then for others peoples (like actual native speakers ^^) to read it and fix grammar, typos, etc.

Let's merge it as it is and work on docs tests in separate PR as well as on proofreading.

@Zulko can we release v2.0 after merging the docs? What else is missing?

OsaAjani commented 1 year ago

Automatic test for the doc is done, last step is to write the migrate from v1 to v2 page. Then I will PR. So probably one to two day from now :)

Also, when looking at the docs I've seen that our official go-to for questions bug and support about moviepy is GitHub and reddit. For the futur I think we should stop pointing to reddit and instead point to stack overflow. It's a better referenced and more suitable place for dev related discussions. User will find more help and the good question will remains for the search engines to index. I would like @Zulko and @keikoro opinion on that.

davidbernat commented 1 year ago

I agree re: Stackoverflow and GitHub issues.

keikoro commented 1 year ago

Also, when looking at the docs I've seen that our official go-to for questions bug and support about moviepy is GitHub and reddit. For the futur I think we should stop pointing to reddit and instead point to stack overflow. It's a better referenced and more suitable place for dev related discussions. User will find more help and the good question will remains for the search engines to index. I would like @Zulko and @keikoro opinion on that.

Agree with your assessment of the platforms & suggestion to stop promoting Reddit as an official resource/support platform. (If people wanna continue posting there, fine, but...)

OsaAjani commented 1 year ago

Hi everyone, I'm almost done, their is just one last little bug I want to fix in TextClip and I should be ready to click that PR button!

This being said, as many of you probably guessed, I'm not a native speaker, and though I'm not too worried about the code side of the PR, and even if I'm pretty confident that the new documentation is superior to the previous one, I also know for a fact that it will be riddled with grammatical mistakes, typos and downright atrocious writing (along with the occasional half-finished sentence inherent to any back and forth writing such as documentation). So, proof-reading by a native speaker with a good clear and simple writing need to happen, it may happen before publishing, it may happen after, the choice is yours, but it need to happen.

So, as I can only imagine that one of or some combination of @davidbernat, @keikoro, @Zulko, @tburrows13 and @B3QL are the ones that will take care of it, how do you want to proceed? And should I open the PR as it is, and let you deal with it, or do you prefer keeping everything on the fork repo for now, that I add peoples in charge of updating the doc as collaborator on it, let you do all the proof-reading work, and only do the PR afterwards? Let me now :)

By the way, my work on the doc is done, and I dont intend to do any major change on it anymore, so if someone want to start the proof-reading, it can be started now on https://github.com/OsaAjani/moviepy.

PS: I was wondering about giving a shot at chatgpt to try automatically improve grammar and making the expression more idiomatic. But again, the opinion of a native speaker on the result would be needed. Did someone already tried that and would have advice/recommend tools, or maybe someone willing to assess the result for me (you can have an example with https://github.com/OsaAjani/moviepy/commit/218930c152b43c1423c4f6573e3d4c2780f77284)?

jarrodcolburn commented 1 year ago

IMO in order to help "MoviePy project survive" I think type hints should be championed. I use this package occasionally and never remember the syntax. Would love type hint support from my IDE. https://github.com/Zulko/moviepy/pull/1962

I think reducing the learning curve will increase the popularity and community.

alexdobrenko commented 1 year ago

Hi everyone, I'm almost done, their is just one last little bug I want to fix in TextClip and I should be ready to click that PR button!

This being said, as many of you probably guessed, I'm not a native speaker, and though I'm not too worried about the code side of the PR, and even if I'm pretty confident that the new documentation is superior to the previous one, I also know for a fact that it will be riddled with grammatical mistakes, typos and downright atrocious writing (along with the occasional half-finished sentence inherent to any back and forth writing such as documentation). So, proof-reading by a native speaker with a good clear and simple writing need to happen, it may happen before publishing, it may happen after, the choice is yours, but it need to happen.

So, as I can only imagine that one of or some combination of @davidbernat, @keikoro, @Zulko, @tburrows13 and @B3QL are the ones that will take care of it, how do you want to proceed? And should I open the PR as it is, and let you deal with it, or do you prefer keeping everything on the fork repo for now, that I add peoples in charge of updating the doc as collaborator on it, let you do all the proof-reading work, and only do the PR afterwards? Let me now :)

By the way, my work on the doc is done, and I dont intend to do any major change on it anymore, so if someone want to start the proof-reading, it can be started now on https://github.com/OsaAjani/moviepy.

PS: I was wondering about giving a shot at chatgpt to try automatically improve grammar and making the expression more idiomatic. But again, the opinion of a native speaker on the result would be needed. Did someone already tried that and would have advice/recommend tools, or maybe someone willing to assess the result for me (you can have an example with OsaAjani@218930c)?

heya - I'm a new coder and professional writer copywriter -- would it help for me to look over the documentation and give notes?

davidbernat commented 1 year ago

Looking good so far, @OsaAjani. Are you ready for me to provide input with the Examples page? cc: @alexdobrenko There are a few of us that will be peer reviewing the updates to the documentation so tagging you in this post as well.

OsaAjani commented 1 year ago

IMO in order to help "MoviePy project survive" I think type hints should be championed. I use this package occasionally and never remember the syntax.

I very much agree, I just didn't have to time to add proper typing, but it would be a very nice touch for some v2.1.

Looking good so far, @OsaAjani. Are you ready for me to provide input with the Examples page? cc: @alexdobrenko There are a few of us that will be peer reviewing the updates to the documentation so tagging you in this post as well.

As I didn't received responses to my last post on how to organize things, and because I really wont have time for a few weeks, I have just opened the PR with my final shot at the v2.0. I will add everyone involved to my repo so people can fix what need to be fixed and push to keep the PR up to date.

PS: If anyone want to participate and didn't received an invitation to become collaborator on my repo, do not hesitate to tag me and ask me to add you

davidbernat commented 1 year ago

@OsaAjani The invitation to the new repository you issued me has expired. Can you re-send please?

HasseM commented 10 months ago

Hope you guys also think about moviepy's performance. I'm currently looking at alternatives for moviepy just because the waiting times are really frustrating. A 11 seconds clip with some text and a moving image takes 581 seconds to render. Then I look at it, consider moving the text up/down a bit and wait another 591 seconds. Takes me a week to build a script for a video of 2 minutes! My PC is an 12900KS (i9) with RTX3090 and 128GB DDR5. So really no problems there. (yes, Im using nvidia ffmeg settings).

To get script generated video's right, people need to be able to run short & fast iterations just to look at it for the next iteration.

When people actually save time, it is easier for them to contribute as well.....

davidbernat commented 10 months ago

I agree. @HasseM. Ping me with an email if you want to chat (you can find this online). We had discussed this but the community here wanted to focus their energy elsewhere. I am working on a roadmap for a cloud-based python production facility for the end of 2024. The community here will eventually come around to my build. ;-) In the spirit of friendly competition.

HasseM commented 10 months ago

@davidbernat , yes I read your plans above. I'm an entrepeneur myself and I would for sure follow your route from a business perspective. And money coming in, means more project support! But as a user I won't follow that route. I'm working on some automated video pipelines that I want to run on my local machine. So it interacts with locally running stable diffusion models and Llama LLM model, TTS models and such. Reasons is simple: I don't want to be dependend on external parties changing stuff. So as long as I can run it locally, it's fine. When I can run it locally, I would be happy to move it over to a machine in the cloud that does run the automated tasks 24/7 (not just the video generation, also my other python scripts). But I can simply put it on a vps for that.

I'm not sure why moviepy is so extremely slow. For sure you need to fix that if you want your plans to succeed. Just putting it on a cloud does not solve that problem. I would love to try it if you have something to try.

davidbernat commented 10 months ago

Haven't read your details. In my experience, MoviePy does not respect the optimization need to only re-encode when necessary. It essentially is a cache of the most recently re-encoded frames; but then most operations launch re-encoding, which is slow. If that is not your problem then I am not helpful and I will revisit your problem when I cross that bridge. It is great that you respect the open source community and respect to building it up. The MoviePy team did great work.

HasseM commented 10 months ago

@davidbernat Yes, MoviePy is great in it's basis. Especially in these times. The whole point of script based video generation is to replay your script with different inputs and get a new video out. Combine it with all the AI stuff thats popping up and you can immediately see the value of MoviePy. New businesses can be build with it!

My point is that time is also value. So the process of creating a script should be effective as well. It currently definitely is not. And I see many other people complain on the slowness without real solutions.

So for a project like this to attract more users and get more support, it needs to add more value. Once the process of writing MoviePy scripts becomes effective, this whole project will likely take-off. There is currently an opportunity to become the No #1 video generation tool.

davidbernat commented 10 months ago

...Yes. Nobody ever asked me what I was actually building. They just shot it down as outside the community. There is a hang-up in the entrepreneurial community currently how they drive customer innovation on the product side. My company is very fortunate in that we get to have customers reach out to us. Otherwise our build will not work.

OsaAjani commented 10 months ago

Hope you guys also think about moviepy's performance. I'm currently looking at alternatives for moviepy just because the waiting times are really frustrating. A 11 seconds clip with some text and a moving image takes 581 seconds to render. Then I look at it, consider moving the text up/down a bit and wait another 591 seconds. Takes me a week to build a script for a video of 2 minutes! My PC is an 12900KS (i9) with RTX3090 and 128GB DDR5. So really no problems there. (yes, Im using nvidia ffmeg settings).

To get script generated video's right, people need to be able to run short & fast iterations just to look at it for the next iteration.

When people actually save time, it is easier for them to contribute as well.....

I wan say that for me performances are absolutely the next thing to work on, but to do so we needed the new API to be released first, and the documentation to be updated in order to keep moviepy usable in the meantime.

@Zulko any news on the review process ? I will have some free time in November if you need help.

Zulko commented 9 months ago

Sorry for the radio silence. I should have time this weekend. I also had to use Moviepy recently that will help me re-contextualize.

davidbernat commented 9 months ago

@Zulko my statements stand. Please cc me. Thank you for re-engaging @Zulko @OsaAjani

OsaAjani commented 9 months ago

I will also have time this weekend if you have any questions!

David I will probably ping you in the near future to talk about what your working on if that's okay with you

Le 31 octobre 2023 04:02:07 GMT+01:00, Zulko @.***> a écrit :

Sorry for the radio silence. I should have time this weekend. I also had to use Moviepy recently that will help me re-contextualize.

-- Reply to this email directly or view it on GitHub: https://github.com/Zulko/moviepy/issues/1874#issuecomment-1786362913 You are receiving this because you were mentioned.

Message ID: @.***>

Dotrar commented 7 months ago

Just adding to this (as my fledgeling startup uses moviepy, we need to both succeed :) )

Have you thought about adding to tidelift? imageio is on tidelift.

Alternatively, one can just use https://opencollective.com/

afeezaziz commented 4 months ago

Hello guys,

My startup is using moviepy as a tool(AI agent) to generate videos. We would love to help and participate in making moviepy better so that it can compete with davinci or premier pro, but run programmatically. We can have moviepy templates, akin to premier pro templates and that can be a revenue source for the project.

I would love to contribute more, whom shall I talk to?

davidbernat commented 4 months ago

Hi @afeezaziz. Happy to discuss. I have moved away from moviepy to direct ffmpeg because of speed improvements. Find my email address and send me an email please.

keikoro commented 2 months ago

General question: should it be possible to set up MoviePy with Poetry in future?

I shot my last dev environment and currently seem unable to get it working again with the old instructions – not sure if they are outdated (will check @OsaAjani's work next) but I find them hard to debug either way because I hardly ever use pip anymore these days, much less install projects with setup.py.