===============
Stream and transcode your music library. The goal is to make software you want to use, for instance an itunes-like audio jukebox player experience in the browser. HTML5 audio is tricky because not all browser's support all codecs/containers. This app uses ffmpeg, a free open source media transcoder, to support all browsers.
Currently only Unix like operating systems are supported for the server. Windows support has not yet been tested.
You need to install ffmpeg and have it in your path so that typing which ffmpeg
in your command line produces an absolute path.
$ git clone git://github.com/nickdesaulniers/audiostream.git && cd audiostream && npm install
Modify config/config.json
to add your music library's absolute paths. Notice how for paths with spaces, the spaces and parentheses needs to be escaped (a single backslash), and for JSON the escape character needs to be escaped (two backslashes).
npm start
or $ node app.js
$ open localhost:3000
- Click on any link to fetch a file. If the file has not yet been transcoded, it will be, then served, otherwise it serves the previously encoded version. The encoded files will be in
library/
. - The app currently transcodes a file (tested mp3's, and ogg's so far) to either ogg, mp3, aac, or wav based on browser support. If the original format is supported, then that file is served, otherwise a preferred format is transcoded to and served.
- HTTP Basic Authentication is currently being used, for it's simplicity. You can find the username and password in the
config/config.json
file. You need to restart the server if you modify the config file.
- Bug reports are always welcome! Please file them as issues on the github page: https://github.com/nickdesaulniers/audiostream/issues
- Do NOT just fork and send a pull request!!! If there is an issue in the issue tracker that you want to tackle, and it has been accepted, feel free to to fork, and issue a pull request. Otherwise, please first create an issue, and wait for it to be approved. This will allow you to 'fail sooner,' as in have your patch declined before you write it, if it's not in line with the goals of this project.
- Is there an issue in the issue tracker you want to tackle, that has been accepted? If yes, goto 4.
- Create issue in the issue tracker, and wait for it to be accepted or declined.
- Was the issue declined? If yes, goto 1.
- Fork.
- Write your patch.
- Pull Request.
- Was your pull request declined? If yes, goto 5. If no, thanks! and goto 1.
- Nick Desaulniers
http://html5doctor.com/html5-audio-the-state-of-play/#support