From e8ec5ccd960fd53ffdb876ac44ed89ddcbc54d98 Mon Sep 17 00:00:00 2001 From: curben <2809763-curben@users.noreply.gitlab.com> Date: Tue, 24 Sep 2019 22:24:09 +0100 Subject: [PATCH] post: add rhythmbox-aac --- source/_posts/rhythmbox-aac.md | 43 ++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 source/_posts/rhythmbox-aac.md diff --git a/source/_posts/rhythmbox-aac.md b/source/_posts/rhythmbox-aac.md new file mode 100644 index 0000000..7922db4 --- /dev/null +++ b/source/_posts/rhythmbox-aac.md @@ -0,0 +1,43 @@ +--- +title: Play AAC-encoded music in Rhythmbox +excerpt: Don't bother gstreamer1.0-plugins-bad, use gstreamer1.0-libav instead +date: 2019-09-26 +tags: +- media +--- + +Recently I just switched from Foobar2000 (which requires Wine to run in Linux) to Rhythmbox. The first issue I encountered was it didn't add AAC-encoded songs when I set it to scan library. A quick search for solution resulted in installation of `gstreamer1.0-plugins-bad`. While it did resolve the issue, but it also installed many packages: + +``` +libgupnp-igd-1.0-4 +libopenal1 +libnice10 +libsrtp2-1 +libvo-aacenc0 +libofa0 +libusrsctp1 +libsrt1 +libwildmidi2 +libopenal-data +libfluidsynth1 +libmplex2-2.1-0 +libmpeg2encpp-2.1-0 +libsoundtouch1 +libmjpegutils-2.1-0 +libvo-amrwbenc0 +libspandsp2 +libmodplug1 +libgstreamer-plugins-bad1.0-0 +``` + +Guest what, most are not even related to decoding AAC. In searching for leaner solution, I purged them and tried install `libvo-aacenc0` only. But now Rhythmbox couldn't play AAC, at the same time it suggested installing `gstreamer1.0-libav` or `gstreamer1.0-plugins-bad`. So, I proceed to install `gstreamer1.0-libav` and AAC can be played once again. Rhythmbox still can play it even after I purged `libvo-aacenc0`, so it's not needed after all. + +To make sure not only Rhythmbox can play AAC, but also recognise it during library scan, I also reset the library by removing "~/.local/share/rhythmbox/rhythmdb.xml". No issue on that. + +One thing still puzzling me is that `gstreamer1.0-libav` is not actually an AAC decoder itself, (my understanding is that) it acts as a bridge between gstreamer and libav/ffmpeg to enable apps that utilize the former to encode/decode using the later, without additional code changes. The actual decoder I believe is in one of the following packages: + +- libavcodec58 +- libavformat58 +- libfaad2 + +In my case, the above packages are already installed beforehand, perhaps shipped by default in Ubuntu (maybe not the libfaad2). So if Rhythmbox still can't play AAC after installing `gstreamer1.0-libav`, just make sure those packages are there.