jiixyj / loudness-scanner

A tool that scans your music files and tags them with loudness information.
MIT License
133 stars 23 forks source link

Warning: no plugins found! #12

Open tigerite opened 9 years ago

tigerite commented 9 years ago

Hi Everyone

I've been able to build the application.

But when I run a scan against wav, ogg, or mp3 files, I'm getting the error: Warning: no plugins found!

No results are displayed.

I ran a ldd on the loudness command. There was no link to any of the ffmpeg libav libraries.

CMake did indicate that ffmpeg was found.

Would the missing library links to the libav libraries be the reason for this error?

jiixyj commented 9 years ago

Are there any input plugins built at all? For example "libinput_sndfile.so" or "libinput_ffmpeg.so" should be built alongside the loudness binary if the needed binaries are found.

tigerite commented 9 years ago

There are no libinput_xxxx.so libraries being built.

I believe one of the dependencies is gmodule-2. On Ubuntu, I installed libgtk2.0-dev to get gmodule-2.

But still got no libinput_xxxx.so libraries.

Is there another dependency I need?

jiixyj commented 9 years ago

Can you show me the output of the cmake command and of make input_ffmpeg? The first one should look more or less like this:

-- speexdsp library dirs: /usr/local/lib
-- speexdsp cflags: 
-- speexdsp include dirs: /usr/local/include
-- speexdsp libraries: speexdsp
-- speexdsp ldflags: 
-- Could NOT find MPCDEC (missing:  MPCDEC_LIBRARY MPCDEC_INCLUDE_DIR) 
-- status          found / disabled --
-- queue.h:        yes     using system copy of queue.h
-- speexdsp:       yes     no 
-- glib-2.0:       yes     no 
-- gthread-2.0:    yes     no 
-- sndfile:        yes     no 
-- taglib:         yes     no 
-- mpg123:         yes     no 
-- mpcdec:         no      no 
-- gstreamer:      yes     no 
-- ffmpeg:         yes     no 
-- rsvg2:          yes     no 
-- gtk2:           yes     no 
-- qt4:            yes     no 
-- Configuring done
-- Generating done

The second one should build the ffmpeg input module. I've committed some build fixes for the input modules needed on my machine. Maybe it works for you now?

tigerite commented 9 years ago

Thanks.

I've resolved the issue I believe.

At first, I was having difficulty getting loudness-scanner to build with the ebur128 submodule.

So I had to do some tinkering with the CMakeFiles.txt

As I was able to successfully build the standalone libebur128, I tried to get the loudness-scanner to link to the standalone libebur128 that was build. So I commented out the line: add_subdirectory(ebur128)

Commenting this line out apparently prevented the building of input plugins for some reason.

After some more tinkering with the CMAKE command arguments, I got the loudness-scanner project to build with the ebur128 submodule. Now the input plugins are built.

Questions: 1) How do I get loudness-scanner to link to the standalone libebur128 instead? If I build loudness-scanner with the ebur128 submodule, it will link to the library in the build directory. I copy loudness-scanner to a target bin directory. So I want loudness-scanner to link to libebur128.so from the target lib directory.

2) It appears loudness-scanner only works with s16le wav files using the ffmpeg plugin. Non-wav files or f32le wav files fail.

Thanks!

audionuma commented 9 years ago

I can't reproduce your issue with ffmpeg plugin.

$ ffprobe tonef32.wav
Input #0, wav, from '/Users/audionuma/Audiofiles/tonef32.wav':
  Duration: 00:00:10.00, bitrate: 2822 kb/s
    Stream #0:0: Audio: pcm_f32le ([3][0][0][0] / 0x0003), 44100 Hz, 2 channels, flt, 2822 kb/s
$ loudness scan --force-plugin=ffmpeg /Users/audionuma/Audiofiles/tonef32.wav 
  Loudness                                                                      
 -2.6 LUFS, tonef32.wav
marina101 commented 7 years ago

I was initially getting this same error on macOS. My solution was to add set(CMAKE_MACOSX_RPATH 1) to CMakeLists.txt, build the mac version of all the missing required libraries with brew, and then re-run cmake .. and make. Works fine now.