Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI: Interface for BPSProxy #302

Closed
NathanLovato opened this issue Dec 26, 2018 · 8 comments
Closed

UI: Interface for BPSProxy #302

NathanLovato opened this issue Dec 26, 2018 · 8 comments

Comments

@NathanLovato
Copy link
Contributor

We have a great standalone tool to generate proxies with FFMPEG: https://gitlab.com/razcore/bpsproxy
It's fine for us to use as a command line tool at GDquest, but it'd be nice to have it better integrated with the add-on so people can benefit from it.

To do:

  • Call bpsproxy on a folder selected by the user
  • UI to select sizes, preset, start a bpsproxy job
  • Show progress using blender's progress bar
  • Support canceling an ongoing render

If you feel up for the task, we'd love some help! We can work together on it if you just want to handle the UI design part for instance.

@davcri
Copy link
Contributor

davcri commented Jan 9, 2019

It would be also nice to offer the option to generate proxies after Import Local Footage is called. I do this manually all the times: import all footage, then generate proxies.

Call bpsproxy on a folder selected by the user

Is there a use case where the user wants to generate proxies only for a specific folder? I'm assuming that the script will be updated to able to detect which video already has a proxy file.

If I have some spare time this weekend, I'll work on this one and get in touch!

@NathanLovato
Copy link
Contributor Author

Is there a use case where the user wants to generate proxies only for a specific folder?

At the moment bpsproxy only works on folders, as if you organize your footage you'll group it in folders, and it's much simpler to maintain. If you can help us integrate bpxproxy in blender we could maybe add the option to pass individual file paths. What do you think @razcore-art?

Offering to generate proxies automatically after import would be nice but that's a job for another task.

@davcri
Copy link
Contributor

davcri commented Jan 10, 2019

Offering to generate proxies automatically after import would be nice but that's a job for another task

Makes sense. I didn't find the issue for this: is there one or can I create it?

@NathanLovato
Copy link
Contributor Author

Go ahead and open issues anytime 🙂

@davcri
Copy link
Contributor

davcri commented Jan 20, 2019

So far I implemented this basic UI:

but I couldn't find any Blender's Python API to use the default progress bar. I asked also on the Blender's Discord channel and they confirmed this.

I found these workarounds but I still have to test them:

  1. https://blender.stackexchange.com/questions/3219/how-to-show-to-the-user-a-progression-in-a-script
  2. https://blog.michelanders.nl/2017/04/how-to-add-progress-indicator-to-the-info-header-in-blender.html

My only worry is about creating a bad user experience with these workarounds.

@NathanLovato
Copy link
Contributor Author

Thanks! There's only the mouse cursor to do that for now with the official API indeed. Now I've seen add-ons make use of Michel's trick (second link) and work well. In any case even the built-in proxy rendering, although it runs on a single thread, cancels as soon as you press Ctrl Z, so it's a job you generally want to let run until the end.

I'd go with the simpler option, 1.

@davcri
Copy link
Contributor

davcri commented Jan 21, 2019

Ok great, next weekend I'll try implementing the first version and I'll let you know.

I will probably need to touch also bpsproxy to get the progress percentage.
I took a look at tqdm (the Python package that Razcore used in bpsproxy) and it seems well documented. Hopefully it should be done quickly!

@razcore-rad
Copy link

Oh hey @davcri, very nice progress. If you need any help with bpsproxy/bpsrender let me know. If you hang around in Discord we can chat up there in more realtime fashion :) - if we got the space for it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants