Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 3 of 3
  1. #1
    Junior Member
    Join Date
    Jul 2012
    Location
    Stockholm, Sweden
    Posts
    2

    Transcoding from aiff to mp3 problem

    I have tried to search the forum for a solution, but haven't found it. Sorry if there is already a solution posted that I haven't found. Please let me know.

    My problem is that I can't transcode from aiff to mp3, but aiff to flac works fine. I have had this problem since way back, but now I have a new squeezebox on a location with slow Internet connection, so I would appreciate a solution.

    The player says "Problem: Can't find file for:" when I try to play a file that is supposed to be transcoded to mp3.
    The server settings web interface shows "The LAME encoder appears to be installed correctly on your system. "

    I am running Logitech Media Server Version: 7.7.2 - r33893 on a QNAP TS-459 with firmware 3.7.1 Build 20120615 (but I had this problem on all my previous versions too).

    Thanks!

    Peter
    Last edited by consense; 2012-07-16 at 04:10.

  2. #2
    Senior Member
    Join Date
    Apr 2005
    Location
    Colorado
    Posts
    10,073
    I can't for the life of me figure out how to get this working. I've tried a few things.

    First, the transcoding rule in convert.conf appears to be wrong and gets rejected. If you enable debugging (player.source) you'll see an error in the server.log file.

    The rule:

    Code:
    aif mp3 * *
    	# IFB:{BITRATE=-B %B}D:{RESAMPLE=--resample %D}
    	[lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ $FILE$ -
    The error:

    Code:
    [12-07-22 14:25:16.6099] Slim::Player::TranscodingHelper::getConvertCommand2 (370) Rejecting [lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ $FILE$ - because required capability T not supported:
    That's easy enough to fix. You can create a custom-convert.conf file containing

    Code:
    aif mp3 * *
    	# IFB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}T:{START=%t}U:{END=%t}
    	[lame] --silent -q $QUALITY$ $RESAMPLE$ -v $BITRATE$ $FILE$ -
    Then the server will use the rule, but it doesn't work.

    Code:
    [12-07-22 14:31:16.3768] Slim::Player::TranscodingHelper::checkBin (241)   Found command: [lame] --silent --abr 256 -q 1 $FILE$ -
    [12-07-22 14:31:16.3769] Slim::Player::TranscodingHelper::getConvertCommand2 (428) Matched: aif->mp3 via: [lame] --silent --abr 256 -q 1 $FILE$ -
    [12-07-22 14:31:16.3771] Slim::Player::Song::open (408) Transcoder: streamMode=I, streamformat=mp3
    [12-07-22 14:31:16.3773] Slim::Player::Song::open (461) Opening stream (no direct streaming) using Slim::Player::Protocols::File [file:///L:/AIFF/Beatles/Abbey%20Road/03%20Maxwell%27s%20Silver%20Hammer.aif]
    [12-07-22 14:31:16.3776] Slim::Player::Protocols::File::open (81) duration: [207.266] size: [36561848] endian [1] offset: [46] for file:///L:/AIFF/Beatles/Abbey%20Road/03%20Maxwell%27s%20Silver%20Hammer.aif
    [12-07-22 14:31:16.3778] Slim::Player::Protocols::File::open (98) Opening file L:\AIFF\Beatles\Abbey Road\03 Maxwell's Silver Hammer.aif
    [12-07-22 14:31:16.3780] Slim::Player::Protocols::File::open (192) Seeking in 46 into L:\AIFF\Beatles\Abbey Road\03 Maxwell's Silver Hammer.aif
    [12-07-22 14:31:16.3783] Slim::Player::Song::open (482) URL is a song (audio): file:///L:/AIFF/Beatles/Abbey%20Road/03%20Maxwell%27s%20Silver%20Hammer.aif, type=aif
    [12-07-22 14:31:16.3786] Slim::Player::TranscodingHelper::tokenizeConvertCommand2 (553) Using command for conversion: "C:\Program Files\Logitech Media Server 7.7 Trunk\server\Bin\MSWin32-x86-multi-thread\lame.exe" --silent --abr 256 -q 1 "-" -
    [12-07-22 14:31:16.3788] Slim::Player::Song::open (558) Tokenized command: "C:\Program Files\Logitech Media Server 7.7 Trunk\server\Bin\MSWin32-x86-multi-thread\lame.exe" --silent --abr 256 -q 1 "-" -
    [12-07-22 14:31:16.3813] Slim::Player::Pipeline::new (96) Launching process with command: "C:\Program Files\Logitech Media Server 7.7 Trunk\server\Bin\MSWin32-x86-multi-thread\socketwrapper.exe"  -D -i 4276 -o 4275 -c "\"C:\Program Files\Logitech Media Server 7.7 Trunk\server\Bin\MSWin32-x86-multi-thread\lame.exe\" --silent --abr 256 -q 1 \"-\" -"
    [12-07-22 14:31:16.4099] Slim::Player::SongStreamController::new (31) live=1
    [12-07-22 14:31:16.4103] Slim::Player::StreamingController::_Stream (1322) 00:04:20:06:68:31: stream
    [12-07-22 14:31:16.4112] Slim::Player::StreamingController::_Stream (1369) Song queue is now 2
    [12-07-22 14:31:16.4114] Slim::Player::StreamingController::_setPlayingState (2474) new playing state BUFFERING
    [12-07-22 14:31:16.4115] Slim::Player::StreamingController::_setStreamingState (2487) new streaming state STREAMING
    [12-07-22 14:31:16.4117] Slim::Player::StreamingController::_eventAction (303) 00:04:20:06:68:31: NextTrackReady - new state BUFFERING-STREAMING
    [12-07-22 14:31:16.4119] Slim::Player::Song::DESTROY (160) DESTROY(Slim::Player::Song=ARRAY(0x5a344bc)) live=1: index=1, url=file:///L:/AIFF/Beatles/Abbey%20Road/02%20Something.aif
    [12-07-22 14:31:16.4148] Slim::Player::StreamingController::_eventAction (271) 00:04:20:06:68:31: StatusHeartbeat in BUFFERING-STREAMING -> Slim::Player::StreamingController::_NoOp
    [12-07-22 14:31:16.4195] Slim::Player::StreamingController::_eventAction (271) 00:04:20:06:68:31: StatusHeartbeat in BUFFERING-STREAMING -> Slim::Player::StreamingController::_NoOp
    [12-07-22 14:31:16.4197] Slim::Player::StreamingController::_eventAction (271) 00:04:20:06:68:31: StatusHeartbeat in BUFFERING-STREAMING -> Slim::Player::StreamingController::_NoOp
    [12-07-22 14:31:16.5165] Slim::Player::Pipeline::acceptReader (203) Pipeline reader connected
    [12-07-22 14:31:16.5167] Slim::Player::Pipeline::acceptWriter (236) Pipeline writer connected
    [12-07-22 14:31:16.5188] Slim::Player::Source::_readNextChunk (316) Sending 0 bytes of silence.
    [12-07-22 14:31:16.5189] Slim::Player::Pipeline::sysread (282) Pipeline doesn't have pending bytes - trying to get some from source
    [12-07-22 14:31:16.5191] Slim::Player::Pipeline::sysread (304) Attempting to write to pipeline writer
    [12-07-22 14:31:16.5194] Slim::Player::Pipeline::sysread (310) Wrote 32768 bytes to pipeline writer
    [12-07-22 14:31:16.5198] Slim::Player::Pipeline::sysread (282) Pipeline doesn't have pending bytes - trying to get some from source
    [12-07-22 14:31:16.5199] Slim::Player::Pipeline::sysread (304) Attempting to write to pipeline writer
    [12-07-22 14:31:16.5201] Slim::Player::Pipeline::sysread (310) Wrote 32768 bytes to pipeline writer
    [12-07-22 14:31:16.5203] Slim::Player::Pipeline::sysread (282) Pipeline doesn't have pending bytes - trying to get some from source
    [12-07-22 14:31:16.5300] Slim::Player::Pipeline::sysread (304) Attempting to write to pipeline writer
    [12-07-22 14:31:16.5302] Slim::Player::Source::_readNextChunk (351) Read to end of file or pipe
    [12-07-22 14:31:16.5303] Slim::Player::Source::_readNextChunk (374) end of file or error on socket, song pos: 46
    [12-07-22 14:31:16.5305] Slim::Player::Source::_readNextChunk (379) 00:04:20:06:68:31 mark end of stream
    [12-07-22 14:31:16.5307] Slim::Player::Source::_readNextChunk (387) Didn't stream any bytes for this song; mark it as failed
    There are some other problems with this rule (as with all of the rules for MP3 transcoding), although they're not the reason why this fails.transcoding. The '-v" is equivalent to using LAME's VBR -V4 setting, which makes no sense when the user designates a desired bitrate. If you set a bitrate like 256 or 320 you'll end up with something a lot lower in quality.

    Simplifying the rule for testing, I tried:

    Code:
    aif mp3 * *
    	# IFB:{BITRATE=%B}D:{RESAMPLE=%D}T:{START=%t}U:{END=%t}
    	[lame] --silent -b 256 $FILE$ -
    Same failure.

    The thing I can't understand is that the rule works perfectly fine from either the command line or when on the right side of a pipe, such as when transcoding FLAC to MP3.

    Code:
    flc mp3 * *
    	# FB:{BITRATE=%B}T:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=%D}
    	[flac] -dcs $START$ $END$ -- $FILE$ | [lame] --silent -b 256 $RESAMPLE$ - -
    Code:
    C:\>lame.exe --silent -b 256 "01 Some File.aif"

  3. #3
    Junior Member
    Join Date
    Jul 2012
    Location
    Stockholm, Sweden
    Posts
    2
    Strange...

    Does Logitech follow this forum? A Slimserver (or LMS) guru from Logitech would be useful :-)

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
  •