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' (https://github.com/jrmuizel/AudioScan-opus/) 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' (http://opus-codec.org/downloads/) 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$ -
  
--------------------


+-------------------------------------------------------------------+
|Filename: lmsopus-alpha.zip                                        |
|Download: http://forums.slimdevices.com/attachment.php?attachmentid=22177|
+-------------------------------------------------------------------+


[ extGUI4LMS - an alternative web interface: 'forum'
(http://forums.slimdevices.com/showthread.php?98186-Announce-Alternative-Web-Interface-(beta))
/ 'homepage' (https://www.nexus0.net/pub/sw/extgui4lms/) | 'music
visualizer'
(http://forums.slimdevices.com/showthread.php?103073-Announce-music-visualizer-for-squeezelite)
for squeezelite | 'Howto'
(http://forums.slimdevices.com/showthread.php?99648-Howto-build-a-self-contained-LMS):
build a self-contained LMS ]
------------------------------------------------------------------------
Roland0's Profile: http://forums.slimdevices.com/member.php?userid=56808
View this thread: http://forums.slimdevices.com/showthread.php?t=107011

_______________________________________________
Squeezecenter mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/squeezecenter

Reply via email to