Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DietPi-Software | SqueezeBox/LMS: ALAC file support #2422

Closed
Sedim opened this issue Jan 17, 2019 · 3 comments · Fixed by #3635
Closed

DietPi-Software | SqueezeBox/LMS: ALAC file support #2422

Sedim opened this issue Jan 17, 2019 · 3 comments · Fixed by #3635
Labels
Milestone

Comments

@Sedim
Copy link

Sedim commented Jan 17, 2019

Vanilla Dietpi installation. Cannot play any ALAC files or for that matter any type of music

Steps to reproduce:

  1. Install vanilla latest Dietpi
  2. Install samba
  3. Install lms
  4. Place ALAC file or any format music file in /mnt/dietpi_userdata/Music
  5. Scan the directory for music in lms
  6. lms finds the music and Album art
  7. Use any Logitech player connected to the network to play the music
  8. press play
  9. Does not play

Expected behaviour:

  • Music should play

Actual behaviour:

  • Music does not play
  1. Check logs
  2. Here is the log:
    [19-01-17 16:20:43.7881] Slim::Player::Squeezebox2::statHandler (150) Error: b8:27:eb:e7:af:a5: Decoder does not support file format, code 0
    [19-01-17 16:20:47.6526] Slim::Player::Squeezebox2::statHandler (150) Error: b8:27:eb:e7:af:a5: Decoder does not support file format, code 0
    [19-01-17 16:21:46.1755] Slim::Player::Squeezebox2::statHandler (150) Error: b8:27:eb:e7:af:a5: Decoder does not support file format, code 0
    [19-01-17 16:21:46.8493] Slim::Player::Squeezebox2::statHandler (150) Error: b8:27:eb:e7:af:a5: Decoder does not support file format, code 0
    [19-01-17 16:21:48.0807] Slim::Player::Squeezebox2::statHandler (150) Error: b8:27:eb:e7:af:a5: Decoder does not support file format, code 0

LMS SCAN DETAILS

Logitech Media Server Version: 7.9.1 - 1518692686 @ Thu Feb 15 11:18:06 UTC 2018
Hostname: DietPi
Server IP Address: 192.168.1.9
Server HTTP Port Number: 9000
Operating system: Debian - EN - utf8
Platform Architecture: armv7l-linux
Perl Version: 5.24.1 - arm-linux-gnueabihf-thread-multi-64int
Audio::Scan: 0.95
Database Version: DBD::SQLite 1.34_01 (sqlite 3.7.7.1)
Total Players Recognized: 2

Library Statistics
Total Tracks: 12
Total Albums: 1
Total Artists: 11
Total Genres: 1
Total Playing Time: 0:46:11

Media Scan Details
Discovering files/directories: /mnt/dietpi_userdata/Music (14 of 14) Complete 00:00:00

Scanning new music files: /mnt/dietpi_userdata/Music (13 of 13) Complete 00:00:00

Building full text index (7 of 7) Complete 00:00:01

Pre-caching Artwork (1 of 1) Complete 00:00:00

Database Optimize (2 of 2) Complete 00:00:00

The server has finished scanning your media library.
Total Time: 00:00:01 (Thursday, January 17, 2019 / 4:37 PM)

Player Information
Information on all identified devices connected to Logitech Media Server

BO Speakers Living
Player Model: SqueezeLite
Player Type: squeezelite
Firmware: v1.9.0-1105
Player IP Address: 192.168.1.17
Player MAC Address: b8:27:eb:f4:fd:7a

pCPDisplay
Player Model: SqueezeLite
Player Type: squeezelite
Firmware: v1.8.7-1052
Player IP Address: 192.168.1.10
Player MAC Address: b8:27:eb:e7:af:a5

Folders

Cache Folder
/var/lib/squeezeboxserver/cache
Preferences Folder
/var/lib/squeezeboxserver/prefs
Plugin Folders
/var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins, /usr/sbin/Plugins, /usr/share/squeezeboxserver/Plugins

Required Information:

DietPi | Thu 17/01/19 - 16:04
────────────────────────────────────────────────
v6.19.7 | RPi 3 Model B+ (armv7l)
────────────────────────────────────────────────
eth0 | 192.168.1.9
────────────────────────────────────────────────
DietPi Team : Daniel Knight (founder), MichaIng, K-Plan
Image : DietPi Core Team (pre-image: Raspbian Lite)
Web : https://DietPi.com | https://twitter.com/dietpi_
────────────────────────────────────────────────
DietPi | Thu 17/01/19 - 16:14
────────────────────────────────────────────────
v6.19.7 | RPi 3 Model B+ (armv7l)
────────────────────────────────────────────────
eth0 | 192.168.1.9
────────────────────────────────────────────────
DietPi Team : Daniel Knight (founder), MichaIng, K-Plan
Image : DietPi Core Team (pre-image: Raspbian Lite)
Web : https://DietPi.com | https://twitter.com/dietpi_
Patreon Legends : PINE64 community
Donate : https://DietPi.com/#donate
DietPi Hosting : Powered by https://MyVirtualServer.com

dietpi-launcher = All the DietPi programs in one place.
dietpi-config = Feature rich configuration tool for your device.
dietpi-software = Select optimized software for installation.
htop = Resource monitor.
cpu = Shows CPU information and stats.

root@DietPi:~# dietpi-services status
[ OK ] DietPi-Services | Root access verified.

DietPi-Services
─────────────────────────────────────────────────────
Mode: status

[ OK ] DietPi-Services | nmbd active (running) since Thu 2019-01-17 16:03:28 EST; 11min ago
[ OK ] DietPi-Services | smbd active (running) since Thu 2019-01-17 16:03:29 EST; 11min ago
[ OK ] DietPi-Services | squeezeboxserver active (running) since Thu 2019-01-17 16:03:29 EST; 11min ago
[ OK ] DietPi-Services | cron active (running) since Thu 2019-01-17 16:03:29 EST; 11min ago
[ OK ] DietPi-Services | dropbear active (running) since Thu 2019-01-17 16:03:17 EST; 11min ago
[ OK ] DietPi-Services | dietpi-ramdisk active (exited) since Thu 2019-01-17 16:03:18 EST; 11min ago
[ OK ] DietPi-Services | dietpi-ramlog active (exited) since Thu 2019-01-17 16:03:17 EST; 11min ago
[ OK ] DietPi-Services | dietpi-preboot active (exited) since Thu 2019-01-17 16:03:19 EST; 11min ago
[ OK ] DietPi-Services | dietpi-boot active (exited) since Thu 2019-01-17 16:03:19 EST; 11min ago
[ OK ] DietPi-Services | dietpi-postboot active (exited) since Thu 2019-01-17 16:03:19 EST; 11min ago
[ INFO ] DietPi-Services | dietpi-wifi-monitor inactive (dead)

G_DIETPI_VERSION_CORE=6
G_DIETPI_VERSION_SUB=19
G_DIETPI_VERSION_RC=7
G_GITBRANCH=master
G_GITOWNER=Fourdee

stretchcat /etc/debian_version
root@DietPi:~# cat /etc/debian_version
9.6
uname -a
Linux DietPi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux
echo $G_HW_MODEL_DESCRIPTION
RPi 3 Model B+ (armv7l)

  • Power supply used: 5v 3A
  • SDcard used: Sandisc Ultra 16MB

Additional Information (if applicable):

  • Software title: lms
  • Was the software title installed freshly or updated/migrated?
    Fresh
  • Can this issue be replicated on a fresh installation of DietPi?
    Yes

screen shot 2019-01-17 at 4 43 44 pm

screen shot 2019-01-17 at 4 45 24 pm

@MichaIng
Copy link
Owner

@Sedim
Thank you very much for your report.

We will investigate, perhaps some additional library is required for this.

@MichaIng MichaIng changed the title LMS Fails to recognize ALAC files DietPi-Software | SqueezeBox/LMS: ALAC file support Jan 23, 2019
@MichaIng
Copy link
Owner

MichaIng commented Jul 1, 2020

@Sedim
Sorry for delay. You use SqueezeLite as player, right? I'm not 100% sure but as far as I understand, the audio file/container/codec is a player issue, not one of the LMS.

SqueezeLite can be compiled with and without ALAC support... damn and now I see I didn't compile it in...

Are your players Debian systems as well? Then I could redo the package for your system with enabled ALAC flag to test.


EDIT: Okay not 100% sure but playing ALAC should be possible with the SqueezeLite player as well without enabling the ALAC flag. It does not use the official ALAC decoder but can do it through others, probably ffmpeg (support flag is enabled), but I lack details. If you want to try: #3556 (comment)

  • If it's no DietPi system replace the G_* variables with e.g. "buster" and "armv7l" or similar, respectively browse here for the matching deb package: https://dietpi.com/downloads/binaries/

Further research:

So FFmpeg can handle ALAC as well. And there seems to be a switch to either stream ALAC directly or transcode/decode before streaming to SqueezeLite. So either FFmpeg needs to be installed on the LMS machine (and LMS configured to use it for at least ALAC transcoding/decoding) or FFmpeg needs to be installed on the SqueezeLite machine. Generally native ALAC support on the SqueezeLite device makes sense so neither transcoding needs to be done nor uncompressed transmission. I'm not sure whether it is better to use FFmpeg libraries to decode it (which seems to be possible, the libraries are pulled as dependencies with the squeezelite package) or if native/official ALAC decoder is the better choice, which means an additional library.


Last but not least, indeed it's either FFmpeg or ALAC support: ralph-irving/squeezelite#72

  • The latter means that wma support is gone, but LMS can transcode it instead.

@MichaIng
Copy link
Owner

MichaIng commented Jul 2, 2020

Okay, in the LMS settings, file formats, Apple lossless, changing the decoder from "nativ" to "disabled" works, as long as the SqueezeBox/SqueezeLite supports ALAC decoding. It seems like with this file is sent to the player undecoded and our current SqueezeLite version successfully decodes ALAC files via ffmpeg. Not sure if LMS simply is not able to use ffmpeg for decoding, since it ran on the same system with ffmpeg libraries installed that SqueezeLite successfully used.

However since things are working from our side, I'll mark this issue as closed. Feel free to reopen if required.

@MichaIng MichaIng closed this as completed Jul 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants