Minitube won't play videos ('cannot load libcuda.so')

Minitube can browse videos, but it can’t actually display video or play sound (or even a black screen) - selecting a video then hitting the “play” button does nothing, and after a second or two it switches to the next video on the playlist (which then waits a second or two then jumps to the next video after that, and so on).

(on OpenSUSE Tumbleweed) When running the command ‘minitube’ in terminal, this is the output (appears immediately upon application start, not upon attempting to play the video):

QObject::connect(QWindow, SearchView): invalid nullptr parameter
Cannot load libcuda.so.1

And using strace and grepping for libcuda on it’s output, I found this list of places it searches for libcuda:

openat(AT_FDCWD, “/lib64/glibc-hwcaps/x86-64-v3/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib64/glibc-hwcaps/x86-64-v2/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib64/tls/x86_64/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib64/tls/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib64/tls/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib64/tls/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib64/x86_64/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib64/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib64/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib64/glibc-hwcaps/x86-64-v3/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib64/glibc-hwcaps/x86-64-v2/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib64/tls/x86_64/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib64/tls/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib64/tls/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib64/tls/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib64/x86_64/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib64/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib64/x86_64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib64/libcuda.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "Cannot load libcuda.so.1
", 25) = 25

(I verified this - none of those files exist on my machine. In fact, some of the folders such as /lib64/glibc-hwcaps don’t exist either.)

But, there are two weird things going on here:

  1. Downloading a youtube vid with youtube-dl and then playing that vid with MPV works fine (for SOME youtube videos, at least - no h264 codec), but playing that exact same playable video in minitube will NOT work. Even though Minitube apparently uses MPV internally. Example of video that works on MPV but not minitube: https://www.youtube.com/watch?v=vliQ8ezk6Hg
  2. I have an AMD GPU, which (AIUI) generally don’t work well with CUDA, so maybe it’s an AMD+CUDA interaction that’s causing the problem?

I think this is a packaging problem - the application is expecting libCUDA but the package doesn’t list it as a dependency, so it can’t find it. Although “zypper search libcuda” turns up nothing, so I can’t actually test that.

To me it seems to be a Multi-media problem. Thus I will move it to that sub-forum.

Also, this might be a codecs problem (may I am wrong), in which case the question is: did you do the switch to Packman to get the correct codecs, etc? (See the sticky threads at the top of the Multi-media sub-forum).

And I see you are new here.
First: Welcome to the openSUSE forums.

Second
There is an important, but not easy to find feature on the forums.

Please in the future use CODE tags around copied/pasted computer text in a post. It is the # button in the tool bar of the post editor. When applicable copy/paste complete, that is including the prompt, the command, the output and the next prompt.

An example is here: Using CODE tags Around your paste.

Nope. Installed & tested:

**i3-4130:~ #** zypper in minitube 
Loading repository data... 
Reading installed packages... 
Resolving package dependencies... 

The following recommended package was automatically selected:
  minitube-lang 

The following 8 NEW packages are going to be installed:
  libluajit-5_1-2 libmpv2 libuchardet0 libvapoursynth-54 libvapoursynth-script0 minitube minitube-lang python3-vapoursynth 

8 new packages to install. 
Overall download size: 3.2 MiB. Already cached: 0 B. After the operation, additional 9.1 MiB will be used. 
**Continue? [y/n/v/...? shows all options] (y): **
Retrieving package libluajit-5_1-2-2.1.0~beta3+git.1624618403.e9577376-3.2.x86_64                                                                                                                                                        (1/8), 262.3 KiB (559.8 KiB unpacked) 
Retrieving: libluajit-5_1-2-2.1.0~beta3+git.1624618403.e9577376-3.2.x86_64.rpm ............................................................................................................................................................................[done (14.4 KiB/s)] 
Retrieving package libuchardet0-0.0.7-1.8.x86_64                                                                                                                                                                                         (2/8),  82.4 KiB (190.3 KiB unpacked) 
Retrieving: libuchardet0-0.0.7-1.8.x86_64.rpm ..........................................................................................................................................................................................................................[done] 
Retrieving package libvapoursynth-54-54-1.4.x86_64                                                                                                                                                                                       (3/8), 422.4 KiB (  1.3 MiB unpacked) 
Retrieving: libvapoursynth-54-54-1.4.x86_64.rpm ........................................................................................................................................................................................................................[done] 
Retrieving package python3-vapoursynth-54-1.4.x86_64                                                                                                                                                                                     (4/8), 282.6 KiB (885.8 KiB unpacked) 
Retrieving: python3-vapoursynth-54-1.4.x86_64.rpm ..........................................................................................................................................................................................................[done (2.3 KiB/s)] 
Retrieving package libvapoursynth-script0-54-1.4.x86_64                                                                                                                                                                                  (5/8),  21.6 KiB ( 18.4 KiB unpacked) 
Retrieving: libvapoursynth-script0-54-1.4.x86_64.rpm ...................................................................................................................................................................................................................[done] 
Retrieving package libmpv2-0.34.1+git.20220117T134844.22b0bac28e-1.1.x86_64                                                                                                                                                              (6/8),   1.1 MiB (  2.9 MiB unpacked) 
Retrieving: libmpv2-0.34.1+git.20220117T134844.22b0bac28e-1.1.x86_64.rpm ...................................................................................................................................................................................[done (2.7 MiB/s)] 
Retrieving package minitube-3.9.3-1.1.x86_64                                                                                                                                                                                             (7/8), 889.4 KiB (  1.9 MiB unpacked) 
Retrieving: minitube-3.9.3-1.1.x86_64.rpm ..............................................................................................................................................................................................................................[done] 
Retrieving package minitube-lang-3.9.3-1.1.noarch                                                                                                                                                                                        (8/8), 226.6 KiB (  1.4 MiB unpacked) 
Retrieving: minitube-lang-3.9.3-1.1.noarch.rpm .............................................................................................................................................................................................................[done (1.5 MiB/s)] 

Checking for file conflicts: ...........................................................................................................................................................................................................................................[done] 
(1/8) Installing: libluajit-5_1-2-2.1.0~beta3+git.1624618403.e9577376-3.2.x86_64 .......................................................................................................................................................................................[done] 
(2/8) Installing: libuchardet0-0.0.7-1.8.x86_64 ........................................................................................................................................................................................................................[done] 
(3/8) Installing: libvapoursynth-54-54-1.4.x86_64 ......................................................................................................................................................................................................................[done] 
(4/8) Installing: python3-vapoursynth-54-1.4.x86_64 ....................................................................................................................................................................................................................[done] 
(5/8) Installing: libvapoursynth-script0-54-1.4.x86_64 .................................................................................................................................................................................................................[done] 
(6/8) Installing: libmpv2-0.34.1+git.20220117T134844.22b0bac28e-1.1.x86_64 .............................................................................................................................................................................................[done] 
(7/8) Installing: minitube-3.9.3-1.1.x86_64 ............................................................................................................................................................................................................................[done] 
(8/8) Installing: minitube-lang-3.9.3-1.1.noarch .......................................................................................................................................................................................................................[done] 
**i3-4130:~ #**

Presumably you messed with Yast / zypper.

Hello cyanz,

minitube do not use libcuda, but mpv does use it as hardware video decoder, but only when it is available. libcuda is included in the closed source nvidia driver.
Check your packages / repositories around mpv.

Bye, Kieltux

I didn’t switch to Packman to get the extra codecs. But, like I said earlier, if it’s a straight codecs problem then why is the same video playable with MPV+youtube-dl? Minitube is already using MPV under the hood, so it’s clearly something with Minitube’s use of MPV rather than MPV itself.

To be fair, it’s possible that youtube-dl downloads a different format than Minitube is selecting, but frankly this is all academic when the error message explicitly says what the problem is: it can’t find

libcuda.so

. More specifically, why is it even selecting

libcuda.so

in the first place, when I have an AMD GPU and don’t have a libCUDA?

  1. I installed it from Discover, is it possible Discover is doing something under the hood other than a straight
sudo zypper install minitube

?
2. I did not “mess with Yast/Zypper”, and frankly jumping to that conclusion is just annoying.
3. Either way, how would I verify whether it’s the case of whether this is caused by “messing with Yast/zypper”?

I tried uninstalling and reinstalling minitube and mpv just now, but it didn’t change their behaviour.

What exactly do you mean by “check your packages/repositories around mpv”? How do you do that?

You should have told this in the top post.>:(

  1. I did not “mess with Yast/Zypper”, and frankly jumping to that conclusion is just annoying.
  2. Either way, how would I verify whether it’s the case of whether this is caused by “messing with Yast/zypper”?
    I tried uninstalling and reinstalling minitube and mpv just now, but it didn’t change their behaviour.

Users mess with their list of repos. Canonical list is:

**erlangen:~ #** zypper lr -E 
#  | Alias     | Enabled | GPG Check | Priority | URI 
---+-----------+---------+-----------+----------+-------------------------------------------------------------------------------- 
 5 | Packman   | Yes     | (r ) Yes  |   90     | http://ftp.fau.de/packman/suse/openSUSE_Tumbleweed/ 
14 | non-oss   | Yes     | (r ) Yes  |   99     | http://download.opensuse.org/tumbleweed/repo/non-oss/ 
16 | oss       | Yes     | (r ) Yes  |   99     | http://download.opensuse.org/tumbleweed/repo/oss/ 
23 | update    | Yes     | (r ) Yes  |   99     | http://download.opensuse.org/update/tumbleweed/ 
**erlangen:~ #**

More: https://forums.opensuse.org/showthread.php/540572-Installing-Packman-Codecs