Page 1 of 1

Transcoding of WMA Lossless fails on Android client

PostPosted: Fri May 27, 2011 6:43 am
by citynomad
Hi everyone,

I have an extensive music library, and much of it is in WMA Lossless. It took me some time (and reading of this forum!), but I finally got the transcoding settings to work. Here are the strings I use:
Code: Select all
Step 1: wmadec -b 16 %s -
Step 2: lame -v -b %b -r - -

However, a week or so ago these settings stopped working with my Android client (I can swear I did not do anything to either server or the Android app to cause this!) The funny thing is, the same settings continue to work just fine when I stream the same songs using the web interface.

Here is a sample log output I get when trying to stream a WMA Lossless file from my Android phone:

Code: Select all
[5/27/11 1:57:52 AM EDT]  INFO  PlaylistInputStream  admin listening to "Throw Down Your Arms\03_Door Peep_Throw Down Your Arms_Sinéad O'Connor.wma"
[5/27/11 1:57:53 AM EDT]  DEBUG  TranscodingService  Created tmp file: C:\Windows\TEMP\subsonic1700250597491422125.wma
[5/27/11 1:57:53 AM EDT]  DEBUG  TranscodeInputStream  Starting transcoder: [c:\subsonic\transcode\wmadec] [-b] [16] [C:\Windows\TEMP\subsonic1700250597491422125.wma] [-]
[5/27/11 1:57:53 AM EDT]  DEBUG  TranscodeInputStream  Starting transcoder: [c:\subsonic\transcode\lame] [-v] [-b] [2147483647] [-r] [-] [-]
[5/27/11 1:57:53 AM EDT]  DEBUG  InputStreamReaderThread  (c:\subsonic\transcode\lame) Assuming raw pcm input file
[5/27/11 1:57:53 AM EDT]  DEBUG  InputStreamReaderThread  (c:\subsonic\transcode\lame) LAME 3.98.4 32bits (http://www.mp3dev.org/)
[5/27/11 1:57:53 AM EDT]  DEBUG  InputStreamReaderThread  (c:\subsonic\transcode\lame) CPU features: MMX (ASM used), 3DNow! (ASM used), SSE (ASM used), SSE2
[5/27/11 1:57:53 AM EDT]  DEBUG  InputStreamReaderThread (c:\subsonic\transcode\lame) Using polyphase lowpass filter, transition band: 17249 Hz - 17782 Hz
[5/27/11 1:57:53 AM EDT]  DEBUG  InputStreamReaderThread (c:\subsonic\transcode\lame) Encoding to
[5/27/11 1:57:53 AM EDT]  DEBUG  InputStreamReaderThread (c:\subsonic\transcode\lame) Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=4)
[5/27/11 1:57:53 AM EDT]  DEBUG  InputStreamReaderThread  (c:\subsonic\transcode\lame) INTERNAL ERROR IN VBR NEW CODE, please send bug report


And here is the output I get when playing from web interface - as you can see, everything works fine in this case:

Code: Select all
[5/27/11 2:02:15 AM EDT]  INFO  PlaylistInputStream  admin listening to "Throw Down Your Arms\03_Door Peep_Throw Down Your Arms_Sinéad O'Connor.wma"
[5/27/11 2:02:15 AM EDT]  DEBUG  TranscodingService  Created tmp file: C:\Windows\TEMP\subsonic4603665399055543260.wma
[5/27/11 2:02:15 AM EDT]  DEBUG  TranscodeInputStream  Starting transcoder: [c:\subsonic\transcode\wmadec] [-b] [16] [C:\Windows\TEMP\subsonic4603665399055543260.wma] [-]
[5/27/11 2:02:15 AM EDT]  DEBUG  TranscodeInputStream  Starting transcoder: [c:\subsonic\transcode\lame] [-v] [-b] [128] [-r] [-] [-]
[5/27/11 2:02:15 AM EDT]  DEBUG  AudioScrobblerService  Successfully registered now playing for song 'Door Peep' for user citynomad at Last.fm.
[5/27/11 2:02:21 AM EDT]  DEBUG  InputStreamReaderThread  (c:\subsonic\transcode\lame) Assuming raw pcm input file
[5/27/11 2:02:21 AM EDT]  DEBUG  InputStreamReaderThread  (c:\subsonic\transcode\lame) LAME 3.98.4 32bits (http://www.mp3dev.org/)
[5/27/11 2:02:21 AM EDT]  DEBUG  InputStreamReaderThread  (c:\subsonic\transcode\lame) CPU features: MMX (ASM used), 3DNow! (ASM used), SSE (ASM used), SSE2
[5/27/11 2:02:21 AM EDT]  DEBUG  InputStreamReaderThread  (c:\subsonic\transcode\lame) Using polyphase lowpass filter, transition band: 17249 Hz - 17782 Hz
[5/27/11 2:02:21 AM EDT]  DEBUG  InputStreamReaderThread  (c:\subsonic\transcode\lame) Encoding to
[5/27/11 2:02:21 AM EDT]  DEBUG  InputStreamReaderThread  (c:\subsonic\transcode\lame) Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=4)


Any ideas?

PostPosted: Fri May 27, 2011 8:32 pm
by GJ51

PostPosted: Fri May 27, 2011 8:40 pm
by yourlord
in the android logs you provided lame is being told to encode the stream at a bitrate of 2147483647Kbps which is obviously ludicrous.

In the web player logs it's being told to encode at a sane 128Kbps.

relevant lines:
Code: Select all
ANDROID
[5/27/11 1:57:53 AM EDT]  DEBUG  TranscodeInputStream  Starting transcoder: [c:\subsonic\transcode\lame] [-v] [-b] [2147483647] [-r] [-] [-]

WEB
[5/27/11 2:02:15 AM EDT]  DEBUG  TranscodeInputStream  Starting transcoder: [c:\subsonic\transcode\lame] [-v] [-b] [128] [-r] [-] [-]


hunt down where it's getting that bogus bitrate value.

PostPosted: Tue Jun 21, 2011 1:12 am
by citynomad
Thanks yourlord, that's exactly what I needed! (BTW, my apologies for forgetting to reply.)

The reason the Android app was asking the server to encode at the ludicrous rate of 2147483647Kbps is that I had evidently been playing with the settings in the app, and left the "Max bitrate - WiFi" setting at "Unlimited", hoping that it would direct the server to bypass transcoding completely. But I guess it isn't possible with Subsonic. Or is it?