Quantcast
Channel: Squeezebox : Community : Forums
Viewing all articles
Browse latest Browse all 10706

[Howto] play Ogg Opus files

$
0
0
Since I recently came across some music in the Ogg Opus format, I looked into playing it with LMS.
The main issue is that the library LMS uses to read audio metadata (AudioScan) doesn't support Opus. I did, however, find a forked version which does.
As this one hasn't been updated in a while, I decided to merge the Opus support into the current AudioScan.

Attached you will find a patch for AudioScan enabling Opus support (credit goes to the original author linked above), plus some support files for LMS.

Instructions
Install the Opus libraries and sox with the Opus codec enabled. Most likely, your distribution will have it packaged already (e.g. libopus, libopus-dev, opus-tools, sox in Debian)
Note: if your sox version doesn't support Opus (check with sox -h), you can compile it yourself or use opusdec instead. However, you will lose the ability to seek in a track when using opusdec.

Download the attached zip and build the module:
Code:

mkdir build; cd build
wget https://raw.githubusercontent.com/Logitech/slimserver-vendor/public/7.9/CPAN/buildme.sh
wget http://search.cpan.org/CPAN/authors/id/A/AG/AGRUNDMA/Audio-Scan-0.96.tar.gz
wget https://github.com/Logitech/slimserver-vendor/raw/public/7.9/CPAN/Sub-Uplevel-0.22.tar.gz
wget https://github.com/Logitech/slimserver-vendor/raw/public/7.9/CPAN/Test-Warn-0.23.tar.gz
wget https://github.com/Logitech/slimserver-vendor/raw/public/7.9/CPAN/Tree-DAG_Node-1.06.tar.gz

unzip lmsopus-alpha.zip

tar xzf Audio-Scan-0.96.tar.gz
cd Audio-Scan-0.96
patch -p1 < ../Audio-Scan-0.96.opus.patch
cd ..
mv Audio-Scan-0.96.tar.gz Audio-Scan-0.96.orig.tar.gz
tar czf Audio-Scan-0.96.tar.gz Audio-Scan-0.96
chmod +x buildme.sh
./buildme.sh Audio::Scan

If the build was successful, you'll find the perl modules in
Code:

./build/arch/<perl version>/<architecture>
e.g. for perl 5.24 on Linux 64bit:
Code:

build/arch/5.24/x86_64-linux-thread-multi
copy the content of the build/arch directory to your LMS installation's CPAN/arch folder
e.g. if your LMS is in opt/logitechmediaserver-7.8-0-noCPAN, the full final path will be
Code:

/opt/logitechmediaserver-7.8-0-noCPAN/CPAN/arch/5.24/x86_64-linux-thread-multi/auto/Audio
...

In your LMS installation, edit Slim/Formats.pm and add the format:
Code:

        'ogf' => 'Slim::Formats::OggFLAC',
        'ops' => 'Slim::Formats::OggOpus',  # add this line

and finally copy OggOpus.pm to your LMS installation's Slim/Formats folder

This takes care of the metadata part. To actually be able to play it, add this line to your custom-types.conf:
Code:

ops        opus        audio/ogg        audio
and modify your custom-convert.conf.

For sox with opus:

Code:

ops mp3 * *
        # IFB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
        [sox] -q -t opus $FILE$ -t wav - | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -

ops ops * *
        -

ops aif * *
        [sox] -q -t opus $FILE$ -t raw -r 44100 -c 2 -2 -s $-x$ -

ops pcm * *
        [sox] -q -t opus $FILE$ -t raw -r 44100 -c 2 -2 -s -

ops flc * *
        # IFRD:{RESAMPLE=-r %d}T:{START=trim %s}
        [sox] -t opus $FILE$ -t flac -C 0 $RESAMPLE$ - $START$


For opusdec:
Code:

ops mp3 * *
        [opusdec] --quiet $FILE$ --force-wav - | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -

ops ops * *
        -

ops pcm * *
        [opusdec] --quiet --rate 44100 $FILE$ -

ops flc * *
        [opusdec] --quiet --force-wav $FILE$ - | [sox] -q -t wav - -t flac -C 0 $RESAMPLE$ -

Attached Files

Viewing all articles
Browse latest Browse all 10706

Trending Articles