.opus Files not found

Forums:

Hi!

My mocp doesn't see files which end with .opus, though I extra installed fmpeg with --enable-libopus. I open a library and I can't see anything, but the files are there. I couldn't find a solution for that.

This is : Music On Console
Version : 2.5.0-alpha4
Built : Feb 26 2012 16:00:51
Compiled with : OSS ALSA JACK DEBUG internet streams resample

ffmpeg version N-74034-gce46627 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.7 (Debian 4.7.2-5)
configuration: --enable-gpl --enable-libopus
libavutil 54. 29.100 / 54. 29.100
libavcodec 56. 55.100 / 56. 55.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 29.100 / 5. 29.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100

Distro: MX Linux
uname -a
Linux hostname-removed 3.14-0.bpo.2-686-pae #1 SMP Debian 3.14.15-2~bpo70+1 (2014-08-21) i686 GNU/Linux

I used MOC in the past with another distro and if I recall right there it worked with every file, this one was Ubuntu based, now it's Debian, so this might be the problem. However, installing Version 2.6 of MOC isn't possible in a simple way. So I hope this isn't the problem.

Greets,
Sev

Alpha4? You're using 6 years old version of MOC. Opus was not invented yet :)

Ohhh, I thought this:
> Built : Feb 26 2012 16:00:51
means it isn't that old.

So it's a Debian issue, or with my distro.

When trying to install a newer version manually I get this:
> configure: no Berkeley DB version 4.1 or higher found
> checking for db.h... no
> configure: no Berkeley DB version 4 or higher found
> configure: error: BerkeleyDB (libdb) not found.

Need to use one of these "Backports" in Debian or install a newer Berkeley DB...

Here is the release news of alpha4: http://moc.daper.net/node/547 but even in 2012 MOC was got Opus support only in September. I'm not familiar with your distro, what version of BerkDB do you have? Do you have -devel package installed? Maybe you just need to pass proper path to configure via --with-bdb-dir=DIR? Compliling MOC should not be very difficult.

It's libdb5.1.29-5 (runntime). I'm a bit new to compiling, and I couldn't find the path to the db, since 'whereis' wasn't helping, and 'find /lib -name ...' not as well. Gonna look into it tomorrow.

-dev wasn't installed, but I did this. There are other things missing. -> Tomorrow.

Yeah, you'll need quite a bunch of -dev packages. Probably for most of the libs listed here http://moc.daper.net/links

Can't you just grab more recent Debian package? It seems they provide a stable 2.5.0 version which should support Opus out of the box (via ffmpeg and via experimental libopus plugin if I remember correctly).

Yeah, I'll try to install a backport or something like that. It's seems not to be so easy to do this either, at least not in a secure way. However, this is for sure not your problem. I'm asking in the forum of my distro for help.

Oh, and thank you, of course.

LOL, even squeeze uses the same old version of MOC: https://packages.debian.org/squeeze/moc

So I'm back at compiling:
- I had an error after ./configure worked. libltdl-dev was missing.
- It works now, but it's in /usr/local/bin/moc, not a problem, I will link it
- But now it sees opusfiles, but it seems to have ignored the libopus flag in ffmpeg. I can't play these files. a ^G appears, sometimes with numbers

libopus-dev libopus0 opus-tools are installed
I guess I have to look into how to compile ffmpeg.

checking for LIBFLAC... no
checking for modplug... no
checking for mad_stream_init in -lmad... yes
checking mad.h usability... yes
checking mad.h presence... yes
checking for mad.h... yes
checking mpcdec/mpcdec.h usability... no
checking mpcdec/mpcdec.h presence... no
checking for mpcdec/mpcdec.h... no
checking mpc/mpcdec.h usability... no
checking mpc/mpcdec.h presence... no
checking for mpc/mpcdec.h... no
checking for sidplay2... no
checking for sidutils... no
checking for sndfile... no
checking for speex... no
checking for timidity... no
checking for OGG_VORBIS... no
checking for WAVPACK... no

Didn't test vorbis with this version. It's installed, but in the output of configure there is this no.

Is it a fragment of configure log of ffmpeg? You shouldn't have to recompile it on your own if you have a decent version installed.

If MOC sees opus files than ffmpeg has to be compiled with Opus support. There is some weird situation here. Maybe codec detection in MOC ffmpeg plugin doesn't work with some particular version of ffmpeg library.

MOC should decode vorbis without ffmpeg plugin - there is a separate plugin to handle it. There is also an experimental plugin to handle opus without ffmpeg, but it is not yet included in mainline MOC. You could grab it here: http://moc.daper.net/node/902 You would need also libopusfile0(-dev)

BTW. Just took a look at an official Debian source package for current version of MOC: http://http.debian.net/debian/pool/main/m/moc/moc_2.5.0-1.debian.tar.gz They have there my patch for Opus and they note that they use it since LibAV still doesn't support Opus. Are you positive your version of ffmpeg/libav does support it? Does ffplay open opus files?

Thanks again. I will bother my distro guys with this issue.
- The log was from configure of MOC 2.6 alpha 1
- ffmpeg is compiled by myself with libopus cause it wasn't compiled with opus or I thought so (not sure anymore)
- ffplay is not on my system nor in my repo
- I always had libopus and opus-tools on the disk as well
- OPUS files were working with deadbeef audio player, I just want MOC back cause I have my own scripts for it

ffplay is just a helper program from ffmpeg, probably you just need to build some "tools".

Just let me clarify that for standalone MOC Opus plugin (available via patch) you need libopusFILE, not libopus itself. The same goes with vorbis, you need libvorbisfile.

If I understand correctly, your build of MOC 2.6a1 includes ffmpeg plugin and ffmpeg is compiled with Opus support. Thus you probably hit some bug in either MOC or FFmpeg. You could try to attach debug logs from when you try to play Opus file (you might need to recompile MOC with --enable-debug).

./configure
checking whether CODEC_ID_OPUS is declared... yes
checking whether AV_CODEC_ID_OPUS is declared... yes

make install
Libraries have been installed in:
/usr/local/lib/moc/decoder_plugins

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.

I wanted to post this, and the logfile. Also opened the site for libtool, to learn about that. But then, after I shut down the server, I couldn't find the logfile. I wanted to try it again, changed dir before, a "FATAL_ERROR: The server is not running!" appeared and then it simply worked. I think the other moc server was still running, and causing this problem.

I also got .deb installer files from an community repo, backports from Jessie, so it works now.

-