Page 1 of 1

m4a transcodes into Andre the Giant

PostPosted: Sat Apr 03, 2010 3:01 pm
by kpetronis
A lot of (but not all) m4a's playback slowed down and lower pitched. Slipknot sounds like Andre the Giant and some of the girl artists sound like men. :) This only happens during the m4a > mp3 conversion so I imagine its a transcoding issue but I have no idea how to fix (I guess I could look into those manual switches in the transcoding options). Anyone had this problem before? Should I just use a 3rd party transcoder? Any recommendations?

While the sound is sort of amusing...it gets old after a few songs of it.

PostPosted: Sat Apr 03, 2010 8:11 pm
by sindre_mehus
Streaming of m4a (without converting to mp3) works in Subsonic 4.0, so that will hopefully improve the situation for you.

PostPosted: Sun Apr 04, 2010 2:46 pm
by kpetronis
Sindre,
Is there a beta of 4.0 kicking around somewhere? 3.9 is what's currently on the download page.
Thanks!
-Kevin

Using parts of current trunk & fixing failing playerRead

PostPosted: Tue Apr 06, 2010 6:39 pm
by DasBoot
You can download the source from sourceforge and replace the flash player and the associated jsp file (playlist.jsp) in your current running version of Subsonic with those from the source. After you have done this edit the embedded player settings to disable transcoding for m4a and aac files.

This is how to go about hacking these to releases together to get m4a/aac streaming working:

pull the current trunk from sourceforge:
Code: Select all
svn co https://subsonic.svn.sourceforge.net/svnroot/subsonic subsonic/trunk


replace /var/subsonic/jetty/*/webapp/WEB-INF/jsp/playlist.jsp with subsonic/trunk/subsonic-main/src/main/webapp/WEB-INF/jsp/playlist.jsp

copy subsonic/trunk/subsonic-main/src/main/webapp/flash/jw-player-5.0.swf to /var/subsonic/jetty/*/webapp/flash/jw-player-5.0.swf

If you - like me - now end up with the new flash player which absolutely refuses to listen to your commands and you find error messages in your browser error console about the player variable being null you're hit by a bug in the new flash player in the implementation of the playerReady() function. The solution to this problem is this simple patch:

Code: Select all
--- /net/ostrogoth-wl/src/subsonic-svn/subsonic/trunk/subsonic-main/src/main/webapp/WEB-INF/jsp/playlist.jsp   2010-04-05 23:21:38.374959058 +0200
+++ /var/subsonic/jetty/1378/webapp/WEB-INF/jsp/playlist.jsp   2010-04-06 20:23:09.723118832 +0200
@@ -78,7 +78,7 @@
     }

     function playerReady(thePlayer) {
-        player = $(thePlayer.id);
+        player = document.getElementById("player1");
         player.addModelListener("STATE", "stateListener");
         getPlaylist();
     }


The patch probably does not apply directly so if you need it apply it by hand. Search the web for 'jwplayer playerready' for some examples of this problem and related bug reports.

PostPosted: Mon Apr 12, 2010 8:49 pm
by 3R3
thanks for the heads up on this. re-modding 4.0 when it comes out will keep my source fiddling needs fully satisfied though^^

one thing that came to mind after reading your "patch" was "whats this???"
for everyone else like me who didnt get it:

the file to change is statet at the top
lines starting with "-"
get replaced by lines starting with "+"

so one could also write, in the familiar subsonic-mod-forums syntax (not sophisticated but suitable for all ages):

1. BACKUP
2. in your subsonic folder, find subfolder jetty/1378/webapp/WEB-INF/jsp
3. find file playlist.jsp
4. there, find
Code: Select all
function playerReady(thePlayer) {
         player = $(thePlayer.id);
         player.addModelListener("STATE", "stateListener");
         getPlaylist();
     }

replace with
Code: Select all
function playerReady(thePlayer) {
         player = document.getElementById("player1");
         player.addModelListener("STATE", "stateListener");
         getPlaylist();
     }

5. done.

DasBoot, please correct me if I misread something, I havent tested it myself, just wanted to clarify it for everyone else.

PostPosted: Wed Apr 21, 2010 1:19 pm
by DasBoot
3R3 wrote:one thing that came to mind after reading your "patch" was "whats this???"


"This" is a unified diff chunk, produced by the diff(1) utility and directly usable as input to the patch(1) command. It can also be used for manual patching, as you correctly explained.

These utilities are part of the standard development repertoire on anything remotely resembling Unix. The diff(1) utility compares two - or three for diff3(1) - files and produces output which shows the differences between them. It can produce output in many forms, the most used of which is 'unified diff' that indicates lines to remove with a "-" prefix and lines to add with a "+" prefix to go from the source file (indicated by the "---" prefix in the header) to the target file ("+++" prefix in the header). The patch(1) utility can use the output from the diff(1) command to enact the changes on unpatched files.

The numbers between parentheses indicate the manual page section for the given command. Section 1 contains general user commands, hence the (1).

PostPosted: Wed Apr 21, 2010 5:51 pm
by GregF
It seems like 3.9 can stream those to apps, though, is that right? iSub is playing m4a's, unless Subsonic is ignoring me unchecking those boxes?

PostPosted: Tue Jul 20, 2010 6:38 pm
by Kirk
I'm glad to hear m4a will finally be supported. I actually came to the forums to see if there was a solution to an issue I'm having where m4a will sometimes decide not to transcode. But I guess since its been fixed in the next release I won't worry about it. :P