Transcoding Logic
Hey guys,
Can someone explain me how transcoding logic works? Due to https://github.com/devsnd/cherrymusic/pull/519/files (which seems not to be merged inmaster yet) you guys able to transcode
- opus :tada:
- ogg
- mp3
- aac (decoding only?)
If I have all needed tools installed for transcoding (lame, opus-tools, ogg-libs etc)
[ 1 ] Will opus :tada: will be chosen first as transcoding library [ 2 ] Will cherrymusic auto-fallback server-side to the next codec if not be able to transcode or due to transcoding error (missing codec for example)? [ 3 ] Will cherrymusic auto-fallback client-side to the next codec (opus still have shitty support in major browsers)
- http://caniuse.com/#feat=opus
- http://hpr.dogphilosophy.net/test/
[ 4 ] I'm thinking of using AAC as alternative (this codec still provide transparent sound on low bitrates when using special profiles). Do you guys support AAC transcoding or decoding only?
:ghost:
I've been playing with cherrymusic on a Raspberry Pi (Raspbian) and it appears to work GREAT! I really like the whole concept of this application.
I too wanted to switch over to the opus codec (exclusively.) I know for a fact that the all of the devices/browsers I would be accessing cherrymusic from do indeed support the opus codec (iOS Chrome, iOS Safari, Windows Chrome, Linux Chrome.)
However, I don't see any configuration options to specify or prefer opus over oga or mp3. Just about all three of the browsers I named above all seem to default to mp3. I ensured that raspbian's opus-tools package was intalled and even confirmed that it was working by modifying one of the urls from /trans/mp3/... to /trans/opus/... and my browser did indeed get an opus encoded stream (which it successfully played.) I also was running the "top" command and saw that an opusenc process was spawned as well..
However, no luck with getting the front-end code to request the /trans/opus version of any song. I started mucking around with the .js files and found the following codec list on line 308 of the file res/js/playlistmanager.js:
supplied: "mp3, oga, m4v",
After messing with the above line (and making the realization that unless you specify devel=true in the query string the minified versions of all of the js files are used instead of the human readable ones. Even after all of this it still seems that things are mostly designed to use mp3 (and fall back to oga.)
I did manage to tweak line 308 to read:
supplied: "opus, oga, mp3",
However, it seems that I could only get the CherryMusic front-end to pick oga/vorbis. That said even vorbis at 64kbps sounds 1000% better than 64kbps mp3.
I would still like to find a way to get opus to be the preferred transcode codec especially since it will offer the best sound quality/bitrate ratio hands down. I would probably elect for 64kbps as I have found (in my personal humble experience) that 64kbps seems to be the "magical" bitrate (at the current time in my area) for streaming to mobile devices. It seems to offer the best trade off between bitrate (almost no dropouts) and sound quality.
I'm not sure if I'm asking in the right place, but would anybody be able to offer some guidance on how to get CherryMusic to perefer the opus codec? I figured adding a comment to systems-rebooter's ticket would be better than starting my own since we seem to have a similar theme to our inquiry. I apologize if this was not the correct place to make this inquiry.
Thanks again for such a killer application!