Home of the Squeezebox™ & Transporter® network music players.
Page 1 of 2 12 LastLast
Results 1 to 10 of 19
  1. #1
    Junior Member
    Join Date
    Dec 2018
    Location
    The Netherlands
    Posts
    23

    piCorePlayer | Issues with native playback of WMA Lossless and WMA Pro files

    Hi All,

    Since a week I have piCorePlayer running on a Raspberry Pi ZeroW, and am very pleased with it. I encountered a few issues however with native playback of WMA files (to be specific: WMA Lossless and WMA Pro files) that I want to report here.

    For native playback of ALAC and WMA files I installed the "FFMpeg libraries for Squeezelite" via the pCP web interface (pCP Main Page).
    After installation of the FFMpeg libs I performed some playback tests. For these tests I created WMA files with different WMA formats using Windows Media Player 12.

    The test results do not meet my expectations. Summary of the test results:
    1) Native playback of ALAC and "normal" WMA files works fine. So far so good!
    2) Native playback of the WMA Lossless file does not work. For some reason WMA Lossless is transcoded to 705 kbps FLAC by LMS. If I disable transcoding for WMA Lossless in LMS, pCP does not play the WMA Lossless file.
    3) Native playback of the WMA Pro file starts OK, but after some time playback stops. It seems that squeezelite has crashed. After playback has stopped I cannot play any audio file anymore with pCP. A pCP reboot is required to get pCP working again (when disabling native WMA Pro playback in LMS, LMS correctly transcodes the WMA Pro File to FLAC, and then playback works fine).


    ************************************************** **********************
    DETAILED INFORMATION BELOW
    ************************************************** **********************

    Software versions used are as follows:

    PLAYER:
    piCorePlayer 6.1.0
    piCore v10.3pCP
    Squeezelite v1.9.7-1256-pCP
    FFMpeg libraries that come with pCP 6.1.0

    SERVER:
    LMS 7.9.3 - 1591161343 @ Thu Jun 4 04:07:50 WEDT 2020, running on a Windows 7 64-bit system.
    Also tested with LMS running on Lubuntu 18.04 64-bit. LMS Linux does not do transcoding from WMA to a different audio format, meaning that only "normal" WMA files can be played back on my pCP player when running LMS on a Linux system.

    For completeness here are links to the WMA test files that I used for my playback tests. Each file is the same music track with length of 1:32 (1 min 32 secs).
    1) The normal WMA 9.2 file that is played back fine by pCP can be downloaded here => Prelude WMA.wma
    2) The WMA 9.2 Lossless file that is not natively played back by PCP can be downloaded here => Prelude WMA Lossless.wma
    3) The WMA 10 Pro file that makes pCP/Squeezelite crash can be downloaded here => Prelude WMA Pro.wma. When natively playing back this file, my pCP 6.1.0 player always crashes at 1:18.

    ************************************************** **********************

    Does anybody have an idea why my pCP 6.1.0 player does not play back my WMA Lossless file natively? And more important, why pCP crashes when natively playing the WMA Pro file?
    I can provide more information on request.
    Last edited by CJS; 2020-06-29 at 07:35.

  2. #2
    Senior Member paul-'s Avatar
    Join Date
    Jan 2013
    Posts
    3,173
    WMA has been broken for sometime. keeping up with ffmpeg as they break and fix it is too difficult......ralphy can elaborate more.

    We are going to drop support for WMA in the future versions of squeezelite. You will still be able to transcode, assuming you can find a version of ffmpeg that works with your files.
    piCorePlayer a small player for the Raspberry Pi in RAM.
    Homepage: https://www.picoreplayer.org

    Please donate if you like the piCorePlayer

  3. #3
    Junior Member
    Join Date
    Dec 2018
    Location
    The Netherlands
    Posts
    23
    Quote Originally Posted by paul- View Post
    WMA has been broken for sometime. keeping up with ffmpeg as they break and fix it is too difficult......ralphy can elaborate more.

    We are going to drop support for WMA in the future versions of squeezelite. You will still be able to transcode, assuming you can find a version of ffmpeg that works with your files.
    Thanks for your reply. So you suggest that the WMA playback problems are caused by ffmpeg. I was thinking the same, but then it is not nice that improper operation of ffmpeg can result in a crash of pCP/squeezelite, such that a pCP reboot is required.

    Your response triggers two questions:
    1) I wonder why playback of ALAC files on PCP requires installation of ffmpeg libraries. When LMS transcodes ALAC to FLAC, it uses faad to decode the ALAC file. Can't Squeezelite pCP also use faad for native playback of ALAC files?
    2) You say that when support of WMA is dropped in future versions of pCP/squeezelite, it will still be possible to transcode WMA files with a version of ffmpeg that works with my WMA files. I assume that you are talking about transcoding in LMS on Linux (since transcoding using wmadec.exe + flac.exe on LMS Windows already works fine) ? Can you provide information (or maybe you have a link) on how to install ffmpeg in LMS Linux for transcoding of WMA files?

  4. #4
    Senior Member paul-'s Avatar
    Join Date
    Jan 2013
    Posts
    3,173
    Quote Originally Posted by CJS View Post
    Your response triggers two questions:
    1) I wonder why playback of ALAC files on PCP requires installation of ffmpeg libraries. When LMS transcodes ALAC to FLAC, it uses faad to decode the ALAC file. Can't Squeezelite pCP also use faad for native playback of ALAC files?
    IT was only because we were doubling up using ffmpeg to do the work, future versions we will not use ffmpeg at all, just native libraries.


    2) You say that when support of WMA is dropped in future versions of pCP/squeezelite, it will still be possible to transcode WMA files with a version of ffmpeg that works with my WMA files. I assume that you are talking about transcoding in LMS on Linux (since transcoding using wmadec.exe + flac.exe on LMS Windows already works fine) ? Can you provide information (or maybe you have a link) on how to install ffmpeg in LMS Linux for transcoding of WMA files?
    That is correct, LMS can do the transcoding server side. Windows machines can do as you said, non-windows machines don't have access to wmadec, and would need ffmpeg that worked.
    piCorePlayer a small player for the Raspberry Pi in RAM.
    Homepage: https://www.picoreplayer.org

    Please donate if you like the piCorePlayer

  5. #5
    Junior Member
    Join Date
    Dec 2018
    Location
    The Netherlands
    Posts
    23
    Thanks Paul for the info.

    FYI, native playback of WMA Lossless and WMA Pro files is not really important to me. Apart from the test files that I created I don't use these formats in my music collection.

    I would prefer however that future versions of piCorePlayer still support normal WMA 9.2 files, since even my old Squeezebox Boom plays this format natively. And ffmpeg seems to decode this format correctly, at least the ffmpeg libraries in the PCP repository. Just my opinion.

  6. #6
    Senior Member ralphy's Avatar
    Join Date
    Jan 2006
    Location
    Canada
    Posts
    2,498
    Quote Originally Posted by CJS View Post
    Thanks Paul for the info.

    FYI, native playback of WMA Lossless and WMA Pro files is not really important to me. Apart from the test files that I created I don't use these formats in my music collection.

    I would prefer however that future versions of piCorePlayer still support normal WMA 9.2 files, since even my old Squeezebox Boom plays this format natively. And ffmpeg seems to decode this format correctly, at least the ffmpeg libraries in the PCP repository. Just my opinion.
    For squeezelite, going forward wma, wma pro and wmalossless will need to be decoded in LMS using the PlayWMA plugin, unless your LMS is running on windows in which case the server includes wma decodiing support.

    I'm happy to accept patches to squeezelite which fix the deprecated api calls, alac, wmapro and wmalossless ffmpeg issues.

    Squeezelite will continue to support native ALAC decoding using the Apple reference decoder, not libffmpeg.
    Ralphy

    1-Touch, 5-Classics, 3-Booms, 1-UE Radio
    Squeezebox client builds donations always appreciated.

  7. #7
    Junior Member
    Join Date
    Dec 2018
    Location
    The Netherlands
    Posts
    23
    Quote Originally Posted by ralphy View Post
    For squeezelite, going forward wma, wma pro and wmalossless will need to be decoded in LMS using the PlayWMA plugin, unless your LMS is running on windows in which case the server includes wma decodiing support.
    I'm happy to accept patches to squeezelite which fix the deprecated api calls, alac, wmapro and wmalossless ffmpeg issues.
    Squeezelite will continue to support native ALAC decoding using the Apple reference decoder, not libffmpeg.
    Hi Ralphy, thanks for your feedback. It is a pity that future versions of squeezelite will not be able to play WMA files natively. But it is a limitation that I can live with.
    Since I have very limited coding skills I will not be able to support you in fixing this issue in squeezelite. It would be nice if somebody else could take up this challenge...

  8. #8
    Junior Member
    Join Date
    Dec 2018
    Location
    The Netherlands
    Posts
    23
    Quote Originally Posted by ralphy View Post
    For squeezelite, going forward wma, wma pro and wmalossless will need to be decoded in LMS using the PlayWMA plugin, unless your LMS is running on windows in which case the server includes wma decodiing support.
    For information: the PlayWMA plugin also has issues. After installing this plugin on LMS 7.9.3 running on Lubuntu 18.04, I cannot play any WMA file on a SqueezePlay software player that runs on my Windows desktop. PlayWMA makes use of mplayer. On the Lubuntu server, mplayer does play my WMA, WMA Lossles and WMA Pro test files when starting mplayer from the commandline. But transcoding using PlayWMA plugin on LMS does not work.

    Further reading:
    pCP WMA files not playing back: https://forums.slimdevices.com/showt...t-playing-back
    PlayWMA not working on Fedora Linux: https://forums.slimdevices.com/showt...urs-of-playing
    SB wiki page about transcoding WMA on Linux: http://wiki.slimdevices.com/index.php/WMA

    I may want to spent some time in the future on getting WMA transcoding to work on LMS Linux, either with ffmpeg or mplayer. But for the moment I let these WMA troubles rest.
    Last edited by CJS; 2020-07-01 at 08:11.

  9. #9
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    18,846
    Quote Originally Posted by CJS View Post
    For information: the PlayWMA plugin also has issues. After installing this plugin on LMS 7.9.3 running on Lubuntu 18.04, I cannot play any WMA file on a SqueezePlay software player that runs on my Windows desktop. PlayWMA makes use of mplayer. On the Lubuntu server, mplayer does play my WMA, WMA Lossles and WMA Pro test files when starting mplayer from the commandline. But transcoding using PlayWMA plugin on LMS does not work.

    Further reading:
    PlayWMA not working on Fedora Linux: https://forums.slimdevices.com/showt...urs-of-playing
    SB wiki page about transcoding WMA on Linux: http://wiki.slimdevices.com/index.php/WMA

    I may want to spent some time in the future on getting WMA transcoding to work on LMS Linux, either with ffmpeg or mplayer. But for the moment I let these WMA troubles rest.
    I should update the PlayWMA to use ffmpeg as it is much better now than mplayer however then the avconv vs ffmpeg confused some users.

    The need for PlayWMA reduced when squeezelite could play WMA natively.
    Also with some builds on some Linux distros (not consistent) - ffmpeg or mplayer would leave a zombie.

    If you really need WMa via ffmpeg then I can do the trasncoding conf file.

    However IIRC there were some WMA codecs not supported by ffmpeg unless you had the Windows DLLs installed (i.e. works only some x86 systems)

    I'd advise checking whether ffplay can play the WMa files before starting any transcode work.

  10. #10
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    18,846
    I think pcp LMS may have already setup to use ffmpeg for WMA transcoding.

    The following could replace the custom-convert.conf in PlayWMA plugin. It assumes ffmpeg (not avconv ) and necessary WMa decoders have been included in the ffmpeg build. The MP3 lines could be simplified to do all in ffmpeg.
    Code:
    #
    # wma transcode using ffmpeg instead of wmadec
    # 
    wma mp3 * *
    	# F:{PATH=%f}R:{PATH=%F}T:{START=-ss %s}B:{BITRATE=--abr %B}
    	[ffmpeg] -loglevel quiet $PATH$  -i $FILE$ -f wav - | [lame] --silent -q $QUALITY$ $BITRATE$ - -
    
    wma flc * *
    	# F:{PATH=%f}R:{PATH=%F}T:{START=-ss %s}
    	[ffmpeg] -v 0 $START$ -i $PATH$ -f flac - 
    
    wma wav * *
    	# F:{PATH=%f}R:{PATH=%F}T:{START=-ss %s}
    	[ffmpeg] -v 0 $START$ -i $PATH$ -f wav - 
    
    wma pcm * *
    	# F:{PATH=%f}R:{PATH=%F}T:{START=-ss %s}
    	[ffmpeg] -v 0 -i $FILE$ -f u16le - 
    
        
    # wma lossless
    wmal mp3 * *
    	# F:{PATH=%f}R:{PATH=%F}T:{START=-ss %s}B:{BITRATE=--abr %B}
    	[ffmpeg] -loglevel quiet $PATH$  -i $FILE$ -f wav - | [lame] --silent -q $QUALITY$ $BITRATE$ - -
    
    wmal flc * *
    	# F:{PATH=%f}R:{PATH=%F}T:{START=-ss %s}
    	[ffmpeg] -v 0 $START$ -i $PATH$ -f flac - 
    
    wmal wav * *
    	# F:{PATH=%f}R:{PATH=%F}T:{START=-ss %s}
    	[ffmpeg] -v 0 $START$ -i $PATH$ -f wav - 
    
    wmal pcm * *
    	# F:{PATH=%f}T:{START=-ss %s}
    	[ffmpeg] -v 0 -i $FILE$ -f u16le - 
    
    
    # wma pro
    wmap mp3 * *
    	# F:{PATH=%f}T:{START=-ss %s}B:{BITRATE=--abr %B}
    	[ffmpeg] -loglevel quiet $PATH$  -i $FILE$ -f wav - | [lame] --silent -q $QUALITY$ $BITRATE$ - -
    
    wmap flc * *
    	# F:{PATH=%f}R:{PATH=%F}T:{START=-ss %s}
    	[ffmpeg] -v 0 $START$ -i $PATH$ -f flac - 
    
    wmap wav * *
    	# F:{PATH=%f}R:{PATH=%F}T:{START=-ss %s}
    	[ffmpeg] -v 0 $START$ -i $PATH$ -f wav - 
    
    wmap pcm * *
    	# F:{PATH=%f}R:{PATH=%F}T:{START=-ss %s}
    	[ffmpeg] -v 0 -i $FILE$ -f u16le -

Tags for this Thread

Posting Permissions

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