Our approach

Building your own System

Here is an explanation of how our system works.

Audio feed—line in
The quality of audio fed into the system is critical. Anybody not using amplified speech should consider this first before adding a broadcast service.
Ethernet
A high quality broadband or WiFi connection is required, but high capacity is not essential. Upload speeds of 100 kbps are adequate, so broadcasting using a 3G mobile Internet dongle is feasible.
Hardware Platform
A standard Android Tablet running the Audiominutes application available from Google Play.
Audio Quality
There will always be a compromise between the quality of the audio presented to the listener and the bandwidth required. We recommend encoding a 11,025 Hz 16– bit mono into MP3 at 64 kbps.

[Sample files in various formats can be found here]

Back-ups)
A back-up recording is continuously made of all audio fed into the line–in socket. Data is received in Raw PCM format at 44,100 Hz, and is then down sampled to 11,025 Hz and from stereo to mono. 80 x 1 hour files of audio are saved locally and can be recovered if the broadcast or remotely recorded version of the audio fails to record. New files overwrite old files leaving space on the SD card for 20 hours of audio for meeting recordings.
Icecast
The application triggers automatically when the MP3 stream is received on a particular URL/port on which it is listening, delivered over the public Internet. Audiominutes uses Icecast to deleiver audio on port 80 or port 8000.  If using the supported version, Audiominutes simultaneously writes the audio to an archive file which is time stamped when the live stream closes. This file name is written into a database where it is associated with the event in question, and, if published, is made available via the archived recordings page
CMS Integration (Supported version only)
Audiominutes integrates with all popular committee management systems (modern.gov, CMIS etc). Meetings can be uploaded in XML format. Some agenda management systems, particularly those used in local government, can be integrated so agendas are automatically added to the database once they are published.
Admin Page (Supported version only)
The admin page presents the information stored in the database, and enables the administrator to add restored back-up recordings, upload events, upload agendas, add and/or edit chapter tags,  publish or unpublish archived events and add twitter Facebook and any other social media links. 
Event Control Page (Supported version only)
If a future event has been added to the database, that event is presented (with agenda items if pre-populated) on the events control page. A start button is used to turn on and off the live stream, and buttons via which the time at which each agenda item is discussed, are presented.  When checked, the time elapsed after the start of the meeting is recorded. This offset is stored in the database and used to build pull down menus to allow the agenda item to be found more easily.
Playing the live stream and archived recordings
We recommend using jplayer (jplayer.org) a javascript media library for cross platform audio support.

When the archive playback page is hit a JSON object request is sent to the database via an API (to audiominutes.com) which returns all published events, name, duration, date, agenda items and corresponding offsets—the page is displayed.

The live stream notifier is also loaded. This requests the status of the live stream for the selected UserID using websockets. If no live stream is present then a confirmation message is displayed.

Player Window
When the event tag is selected, a page opens with a hidden DIV tag and an ‘event view’ request, including the eventId is sent to audiominutes.com. The server returns the title, date, file, description, path (for file location), chapters and offsets.

The Jplayer library then takes all the information contained in the event view which also take into account the target browser, and renders a template on the server which is then displayed to the viewer.

Player Formats
Files in MP3 format seem to work for most browser and operating system combinations. Jplayer automatically falls back to flash if HTML5 playback is not supported.

The Jplayer template includes a pull down menu from which agenda chapters can be are selected. The seek function is activated when listeners click on the progress bar.

The ‘close’ button stops the stream first and then aborts the player, the modal window then closes.

APIs (Application Programme Interfaces - Supported version only)
These APIs are used to control the way the system works:

Mount, Userid—returns if active, current and peak listeners

Update Chapter Call, passes ChapterID

Stream Control, Passes in start/stop

Check Stream API, (Called by SBC) returns action on, off, testoff, teston

Check time