Downsampling MP3s

Need help? Post your questions here.

Moderator: moderators

Downsampling MP3s

Postby plowman » Wed Aug 22, 2012 1:11 am

So, I upgraded to 4.7b3 (from 4.5) and any mp3s exceed the max bitrate and need downsampling do not work. I get nothing in the log that I do not expect, and no unhandled exceptions that I can see. All of the options for downsampling are identical to the recommendations.

Log:
Code: Select all
[2012-08-21 21:08:04,112] INFO PlayQueueInputStream - plowman listening to "Rascal Flatts - Changed/01 Rascal Flatts - Changed.mp3"
[2012-08-21 21:08:04,118] DEBUG TranscodeInputStream - Starting transcoder: [/var/subsonic/transcode/ffmpeg] [-i] [/mp3/Country/Rascal Flatts - Changed/01 Rascal Flatts - Changed.mp3] [-ab] [96k] [-v] [0] [-f] [mp3] [-]


FFMpeg is current and when I run that exact command from a terminal it works fine.

Any suggestions or places to investigate?

EDIT-1: Turns out command line execution isn't working fine. The file gets downsampling but the header is messed up for some reason. This is obviously a FFMpeg problem.
Code: Select all
[mp3 @ 0x6385e0] Header missing
    Last message repeated 190 times

If I output to a file "... -f mp3 song.mp3" I get a valid MP3. If I output to STDOUT and redirect to a file "... -f mp3 - >song.mp3" I do not get a valid file. Regardless of the song I downsample the one outputting directly to a .mp3 file is always 309 bytes larger than the one I output to STDOUT and redirect to a .mp3 file.
plowman
 
Posts: 6
Joined: Mon Apr 12, 2010 4:41 pm

Re: Downsampling MP3s

Postby mellofone » Thu Sep 06, 2012 7:20 pm

I have the exact same problem. But I don't see this with ALL of my collection, only a very select few albums. I've even tried to upgrade to a git version of ffmpeg and the problem persists. Reverting my downsample command back to using lame has it working perfectly again:

Code: Select all
lame -S -h --resample 44.1 -b %b --tt %t --ta %a --tl %l %s -
mellofone
 
Posts: 14
Joined: Wed Jan 12, 2011 4:27 pm

Re: Downsampling MP3s

Postby unhammer » Thu Nov 29, 2012 3:37 pm

Ah, thanks! That solved it for me too =D I did get something odd in my /var/subsonic/subsonic.log though:

Code: Select all
[2012-11-29 16:13:15,314] DEBUG TranscodeInputStream - Starting transcoder: [/var/subsonic/transcode/ffmpeg] [-i] [/home/test/test.mp3] [-ab] [256k] [-v] [0] [-f] [mp3] [-]
[2012-11-29 16:13:26,925] WARN RESTFilter - Error in REST API: EofException
org.mortbay.jetty.EofException
   at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:760)
   at org.mortbay.jetty.AbstractGenerator$Output.blockForOutput(AbstractGenerator.java:546)
   at org.mortbay.jetty.AbstractGenerator$Output.flush(AbstractGenerator.java:567)
   at org.mortbay.jetty.HttpConnection$Output.flush(HttpConnection.java:907)
   at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:628)
   at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:575)
   at net.sourceforge.subsonic.controller.StreamController.handleRequest(StreamController.java:221)
   at net.sourceforge.subsonic.controller.RESTController.stream(RESTController.java:1080)
   at sun.reflect.GeneratedMethodAccessor175.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:616)
   at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:473)
   at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:410)
   at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
   at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
   at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
   at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
   at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
   at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at net.sourceforge.subsonic.security.RESTRequestParameterProcessingFilter.doFilter(RESTRequestParameterProcessingFilter.java:110)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
   at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
   at net.sourceforge.subsonic.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:43)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
   at net.sourceforge.subsonic.filter.RESTFilter.doFilter(RESTFilter.java:51)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
   at net.sourceforge.subsonic.filter.ParameterDecodingFilter.doFilter(ParameterDecodingFilter.java:54)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
   at net.sourceforge.subsonic.filter.BootstrapVerificationFilter.doFilter(BootstrapVerificationFilter.java:54)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
   at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
   at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
   at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
   at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
   at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
   at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
   at org.mortbay.jetty.Server.handle(Server.java:313)
   at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
   at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
   at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
   at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
   at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
   at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: java.io.IOException: Broken pipe
   at sun.nio.ch.FileDispatcher.write0(Native Method)
   at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
   at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:122)
   at sun.nio.ch.IOUtil.write(IOUtil.java:78)
   at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:352)
   at org.mortbay.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:166)
   at org.mortbay.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:208)
   at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:693)
   ... 67 more



putting it up in case it's helpful for other searchers :)
unhammer
 
Posts: 11
Joined: Thu Sep 15, 2011 12:22 pm


Return to Help

Who is online

Users browsing this forum: No registered users and 18 guests