No wma support (yet) but want to understand build config

Linux version Fedora 23; Audacity 2.1.2 built from source.

Have read and followed all instructions elsewhere to successfully compile audacity from git, and have managed to understand the build config options. Like many people I have many different music formats in my library, and I need to be able to get at all of them, patent and licensing restrictions aside (but noted).

I read that even if compiling locally Audacity only supports ffmpeg up to version 2.3. Not surprisingly my current system (Fedora 23) has version 2.8.6 installed via other software, and even later versions of it are available elsewhere.

I thought about building an earlier copy of ffmpeg, but it’s proven so fraught that I thought instead to try downgrading my currently installed version via dnf and package manager. However, the bash output tells me that it would remove packages like “vlc core” along with some of the gstreamer plugins, which of course would effectively break other parts of my system (including of course music replay!)

Can anyone tell me:

is it possible to build and install ffmpeg 2.3.* somewhere locally and have the build config for audacity compile to that, and which would NOT mess up or overwrite my other libraries (needed for video replay etc) - meaning effectively that I’ll have a local instance of it purely for audacity.

If not, would building with earlier versions of libav resolve the problem, or is that simply another side of the same coin (libav being compiled into ffmeg? am I right?).

It appears to me at present that although yes, we all understand that “due to licensing restrictions…” yada yada what this effectively boils down to is that it would be impossible to use a current version of audacity on an up to date Linux system if I want all of its features supported (and why would I not??)

I have the full functioning version on Windows, but it would be an utter pain to keep swapping music files back and forth across computers just for the sake of some edits.

Don’t mess with system FFmpeg.

Build your own FFmpeg 2.3, install it to /usr/local/ (the default location) and link Audacity to that FFmpeg. The linkage “should” happen automatically if pkg-config does its job.

The whole point of the local install of FFmpeg is that you then “should” not mess up other applications that use system FFmpeg.

Or, you can try hacking the FFmpeg sources in Audacity so that they build with later system FFmpeg, for example something like https://github.com/audacity/audacity/pull/130/commits/41de5b385b2ca721a71871fcdb00ec3fa4441b5b.


Gale

Ah okay. Thanks :0)

So I can --enable-shared-library because it will still restrict it within usr/local? Nice.

–enable-shared will build .so files for FFmpeg that Audacity can use.

Installation of FFmpeg should default to /usr/local. You can always force the installation directory with

./configure --prefix=<directory>

Gale

Have been reading/learning about compiling from source. Having successfully installed a local build of a supported version of ffmpeg I set about grabbing Audacity source and building. It installed successfully but I still cannot import wma files - which is something that my Windows version does without complaint. I see that my version on Fedora has this wonky library prefs menu where, despite having already pointed it at the location for “libavformat.so-xxx” and found the file, whenever I load it those library prefs still ask me to locate ffmpeg. If I try to load a wma file it still insists on telling me that I would have to convert to another format first. Clearly something’s not been configured properly.

I saw another link on here which suggested one could download the freeworld version that doesn’t have restrictions. Okay I could do that, but first I want to understand what I’m doing wrong.

If I have a compatible version of ffmpeg installed locally, are there particular config options that MUST be set in order for all of this to work? I went through the ./configure options and specifically enabled all the formats I wanted, assuming I shouldn’t simply run ./configure with no options set. Maybe this was wrong? I’d much prefer to learn how to build rather than just go off and download a different version.

You’ve not quoted any version numbers, but version numbers are probably the key to solving the problem.
My understanding is that FFmpeg in Fedora is built without support for “restricted” formats, so that sends you to building FFmpeg from the source code.
According to the Audacity documentation, Audacity should work with a “shared” build of “FFmpeg 2.3.6 Mandelbrot”. Source code available here: https://ffmpeg.org/olddownload.html

I think this will be less confusing if merged back into the original topic. Done.

Gale

Did you do

sudo ldconfig

after installing your local build of FFmpeg?


Gale

@ Gale,

Re your last, no I didn’t. Will do though.

Sorry for omitting version info. Yes indeed, it was build from git source against ffmpeg 2.3.6, as before on Fedora 23. Sorry for any confusion.

Will attempt to rerun configuration and report back :0)