Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
flowblade from git not finding mlt [SOLVED]
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1440
Location: Berlin, Germany

PostPosted: Fri Sep 29, 2023 10:21 am    Post subject: flowblade from git not finding mlt [SOLVED] Reply with quote

so, because flatpak doesn't work with apulse, and flowblade is pulseaudio-only, I've installed flowblade directly from git. This is causing difficulty starting the app, because it can't find mlt, on which it depends:

Code:
 $ apulse ./flowblade
FLOWBLADE MOVIE EDITOR 2.11-dev
-------------------------------
Launch script dir: /home/elassus/carrier6/flowblade/flowblade/flowblade-trunk
Running from filesystem...
MLT not found, exiting...
ERROR: No module named 'mlt7'


but media-libs/mlt-7.18.0 is installed, and the relevant python libraries are there:

Code:

/usr/lib/python3.12/site-packages/_mlt7.so
/usr/lib/python3.12/site-packages/mlt7.py


So how do I get flowblade to find the mlt modules?

Cheers,

EE


Last edited by ExecutorElassus on Sat Sep 30, 2023 4:44 pm; edited 1 time in total
Back to top
View user's profile Send private message
grknight
Retired Dev
Retired Dev


Joined: 20 Feb 2015
Posts: 1713

PostPosted: Fri Sep 29, 2023 12:32 pm    Post subject: Reply with quote

ExecutorElassus wrote:

Code:
 $ apulse ./flowblade


but media-libs/mlt-7.18.0 is installed, and the relevant python libraries are there:

Code:

/usr/lib/python3.12/site-packages/_mlt7.so
/usr/lib/python3.12/site-packages/mlt7.py

What does python3 --version report? Your media-libs/mlt is only shown for python 3.12. I'm betting the python3 references another version.

If this is true, change the header of the flowblade script file to python3.12 instead of python3.
Back to top
View user's profile Send private message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1440
Location: Berlin, Germany

PostPosted: Fri Sep 29, 2023 1:38 pm    Post subject: Reply with quote

'python3 --version' returns "Python 3.11.5", so your suspicion was correct.

I changed the top line of both setup.py and flowblade to '#!/usr/bin/python3.12'. Now, I get the following error:

Code:
 $ apulse ./flowblade
FLOWBLADE MOVIE EDITOR 2.11-dev
-------------------------------
Launch script dir: /home/elassus/carrier6/flowblade/flowblade/flowblade-trunk
Running from filesystem...
MLT found, version: 7.18.0
Failed to import module app.py to launch Flowblade!
ERROR: No module named 'gi'
Installation was assumed to be at: /home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade


So, progress, I guess? How do I fix that error?

(sigh, I hate python).

Cheers,

EE
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 21848

PostPosted: Fri Sep 29, 2023 2:48 pm    Post subject: Reply with quote

Python packages are installed to per-versioned directories. That error says you do not have the Python package gi installed for Python 3.12. You may not have it installed at all, or you may have it installed only for versions of Python other than 3.12. Either way, the solution is to install dev-python/pygobject with at least PYTHON_TARGETS=python3_12 (and optionally other targets, at your discretion).
Back to top
View user's profile Send private message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1440
Location: Berlin, Germany

PostPosted: Fri Sep 29, 2023 2:57 pm    Post subject: Reply with quote

pygobject is installed, but my package.use was set only to install PYTHON_TARGETS=python3_10 python3_11, and PYTHON_SINGLE_TARGET=python3_10.

So once this 'emerge -uD world' is done, I guess I have to update that (replacing python3_10 with python3_11, and replacing python3_11 with python3_12), and then remerging world to update python support.

Or is there a faster/cleaner way to do that?

Cheers,

EE
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 21848

PostPosted: Fri Sep 29, 2023 3:15 pm    Post subject: Reply with quote

That is correct. You only need to add 3.12 for pygobject + anything it depends on. You can keep 3.10 or not, as you like. You can rebuild non-relevant packages with python 3.12 now or not, also as you like.
Back to top
View user's profile Send private message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1440
Location: Berlin, Germany

PostPosted: Fri Sep 29, 2023 6:17 pm    Post subject: Reply with quote

OK, now I have the same problem with "PIL". I really wish there were a way to find out what python package provides a given module, because a lot of them have very minimal, generic names that you can't really search for. Is it dev-python/pillow?

UPDATE: It was pillow. I got past not finding all the needed python modules, but now startup fails with this error:

Code:
MLT transition frei0r.alphaout not found.
Gamma dropped for Lift Gain Gamma
default profile from prefs not found
Adding full track compositors
Traceback (most recent call last):
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/app.py", line 306, in on_activate
    editorstate.project = projectdata.get_default_project()
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/projectdata.py", line 610, in get_default_project
    project = Project(profile)
              ^^^^^^^^^^^^^^^^
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/projectdata.py", line 106, in __init__
    self.add_unnamed_sequence()
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/projectdata.py", line 277, in add_unnamed_sequence
    self.add_named_sequence(name)
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/projectdata.py", line 281, in add_named_sequence
    seq.create_default_tracks()
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/sequence.py", line 211, in create_default_tracks
    self.add_full_track_compositors()
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/sequence.py", line 715, in add_full_track_compositors
    compositor = self.create_compositor("##blend")
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/sequence.py", line 619, in create_compositor
    compositor.create_mlt_objects(self.profile)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'create_mlt_objects'
GPU test results {'VAAPI H.264 / .mp4': 0}


So, now some other python error, but apparently all the dependencies are there? Any idea what this is?

Cheers,

EE
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 21848

PostPosted: Fri Sep 29, 2023 7:51 pm    Post subject: Reply with quote

That looks to me like a package bug. It tried to create some object, assumed the creation would never fail, then tried to use that object. When the object creation failed, that triggered an exception on use. The package should have detected the failure and given you a clear message, like "Failed to create compositor object: check <relevant conditions>". Without looking at the failed function, I cannot comment on what it needs or what is wrong.
Back to top
View user's profile Send private message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1440
Location: Berlin, Germany

PostPosted: Fri Sep 29, 2023 8:03 pm    Post subject: Reply with quote

welp, time to post the issue to the github!
Back to top
View user's profile Send private message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1440
Location: Berlin, Germany

PostPosted: Sat Sep 30, 2023 11:53 am    Post subject: Reply with quote

Also, the dependencies for flowblade are listed here. I just emerged frei0r-plugins, which didn't help, but is there anything else you see on that list that might create the problem I'm having?

Would the failed function be found in sequence.py? At that line number, I have this code:

Code:
 # ------------------------------------------------------ compositors
    def   create_compositor(self, compositor_type):
                compositor = mlttransitions.create_compositor(compositor_type)
                  compositor.create_mlt_objects(self.profile)
                  return compositor


Maybe there's some dependency I'm missing? As you can see from the console output, it's not finding a bunch of MLT transitions; maybe that's the issue? How would I fix that?

UPDATE: I added support for frei0r and opencv to mlt, and that got past the error I was getting. Now I get a whole new error! Progress! Here's how it looks now:

Code:
MLT service ladspa.1201 not found.
Loading transitions...
RGB Adjustment dropped for Color Adjustment
Hue dropped for Color Adjustment
Gamma dropped for Lift Gain Gamma
Adding full track compositors
restacking compositors!
Adding full track compositors DONE
G'MIC found
Player initialized with profile:  HD 1080p 30 fps
Creating midbar data for 2.10...
GPU test results {'VAAPI H.264 / .mp4': 0}
Create SDL1 consumer...
Fatal Python error: Segmentation fault

Current thread 0x00007f07c24a2740 (most recent call first):
  File "/usr/lib/python3.12/site-packages/mlt7.py", line 1088 in connect
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/mltplayer.py", line 169 in connect_and_start
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/app.py", line 549 in launch_player
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/app.py", line 342 in on_activate
  File "/usr/lib/python3.12/site-packages/gi/overrides/Gio.py", line 42 in run
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/Flowblade/app.py", line 201 in main
  File "/home/elassus/carrier6/flowblade/flowblade/flowblade-trunk/flowblade", line 93 in <module>

Extension modules: _mlt7, gi._gi, cairo._cairo, gi._gi_cairo, numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, PIL._imaging, _dbus_bindings, _dbus_glib_bindings, PIL._imagingft (total: 21)
Segmentation fault


I'm guessing it's something to do with the "create SDL1 consumer," since "sdl_image" is given as one of the dependencies on Arch. I'll see if I can figure that out and report back.

UPDATE2: that didn't fix it :(

Cheers,

EE
Back to top
View user's profile Send private message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1440
Location: Berlin, Germany

PostPosted: Sat Sep 30, 2023 2:09 pm    Post subject: Reply with quote

According to this issue report, there are problems with gentoo's MLT and SDL1 support, with people having similar issues with flowblade crashing right at this point in the startup.

So now I'm going to go search to see if there's some workaround (that issue posted an ebuild, but the portage tree also has libsdl as a compatibility layer for SDL1 apps).

It's really frustrating that so many linux developers are defaulting to just releasing flatpak apps, since Linux was supposed to be about NOT releasing monolithic, all-in-one app packages.

UPDATE: I found a workaround by copying the ebuild to my /usr/local overlay, adding an -r1 to the end, and editing it to build against SDL1 instead of SDL2. Now it starts, huzzah! I'll mark this as [SOLVED], but now I have the issue that flowblade is … not the most intuitive software to use. Simple stuff like adding a text overlay seems really difficult to do. Oh well, time to learn things!

Cheers,

EE
Back to top
View user's profile Send private message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1440
Location: Berlin, Germany

PostPosted: Thu Nov 02, 2023 7:06 pm    Post subject: Reply with quote

UPDATE: mlt has now come out with version 7.20, and now flowblade segfaults right after initializing mlt.

Can anybody help me pin down what the issue is?

UPDATE: nevermind, it turns out that the problem is with mlt-7.20, which just added some new function that doesn't work with flowblade. Guess I'll wait for updates from upstream.

Cheers,

EE
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum