Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 4 of 4
  1. #1
    Senior Member
    Join Date
    Aug 2012
    Location
    Austria
    Posts
    649

    [Howto] play Ogg Opus files

    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

    Edit your modules.conf:
    Code:
    Audio::Scan 0.93 0.96
    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 Attached Files
    Last edited by Roland0; 2017-02-27 at 11:38. Reason: added modules.conf

  2. #2
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    19,779

    [Howto] play Ogg Opus files

    > 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.


    Did you submit a pull request to Andy
    (https://github.com/andygrundman/Audio-Scan)? This very topic had come
    up recently on our github site:
    https://github.com/Logitech/slimserver/issues/133


    --

    Michael

  3. #3
    Former Squeezebox Guy andyg's Avatar
    Join Date
    Jan 2006
    Location
    Pittsburgh, PA
    Posts
    7,395
    This is pretty cool, I had no idea someone had worked on this years ago. I'd be happy to add this to Audio-Scan if you want to submit a pull request.

  4. #4
    Senior Member
    Join Date
    Aug 2012
    Location
    Austria
    Posts
    649
    Quote Originally Posted by andyg View Post
    This is pretty cool, I had no idea someone had worked on this years ago. I'd be happy to add this to Audio-Scan if you want to submit a pull request.
    I didn't submit a pull request, since I'm not the original author.

    I guess we have the following options:
    - Motivate the original author to submit the pull request
    - You apply my patch directly (possibly in a feature branch)
    - I fork AudioScan, apply the patch, and submit a pull request

    What would you prefer?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •