Internet Radio Report
-
Upload
abhi-mediratta -
Category
Documents
-
view
112 -
download
2
Transcript of Internet Radio Report
1 | P a g e
CHAPTER 1 : Improvisation in Analysis , Design and Modelling
1.1 Requirement Changes
We aim to develop and deploy an internet radio application on windows , linux and on
android platform for music streaming on internet. The proposed system will overcome the
following drawbacks of the existing FM radio systems :
It is also available in rural area.
The proposed system having hundreds of station available.
We can listen our favorite station any time whenever we want.
Sound quality is better than the existing system.
1.1.1 Added Requirements
Upto this phase , we had implemented the internet radio application on windows and on
android. We aim to develop and deploy the same on linux platform for music streaming
on internet. We will attempt it on the linux platform using the icecast server.
Software Requirements :
ICECAST 2 server on Linux.
Network Requirements :
Internet should be available.
1.1.2 Deleted Requirements
There will be no such deletions from the requirements in the project. We will add the new
dimensions in our project by implementing it on different platforms so as to expand its
horizon. The project is a combination of modules that are independent and there is no
partial implementation possible. Either the whole module is implemented or it is
dissolved as it can only work as a whole. So, In our project , the requirements can not be
removed.
2 | P a g e
1.1.3 Modified Requirements
In the earlier phase , We had completed the implementation of our project on windows
platform using Shoutcast server. And we did the implementation of the same on the
android emulator. The modified requirement will be to complete the android platform
implementation by running it on the android device.
Software Requirements:
Android phone
API Level: 2.2
Display : Touch screen with any dimension and resolution
Network Requirements :
Internet should be available.
FUNCTIONAL REQUIREMENTS The main goal that proposed system is to play the radio of our choice. We can also play
the radio in rural area. This radio is available everywhere. Hundreds of stations are
available in this radio. We can play the previous and next played station. Add the liked station
to the favorite list. Selecting the category then selecting the station then play the selected station.
Searching the station which we want to play. Setting the database means deleting
previously created and creating new database. Change the the volume of the player. Once
station starts playing an animation starts rotating.
NONFUNCTIONAL REQUIREMENTS
Availability: - The system should be properly supported by the required H/W and S/W
interface needs so that any user can access the data from any place sitting on the internet
connectivity node.
Maintainability : - It is a system which incorporates this feature as it is the system whose
defects can be easily removed by the programmers. This system can be easily adapted to
meet the changing requirements of its users or the changing environment in which it operates.
3 | P a g e
Portability: - its design is relatively machine independent. It is being coded in languages
which are well-defined & meet to the standards, hence more portable.
Visibility: - Any user can view the menu of the system and can work out the processing even
from a remote place. There is no hiding of data and incorporates easy availability and
accessibility.
Efficiency: - It is an efficient system because it fulfills most of the requirements being
mentioned by the users. It uses least amount of devices & memory space for execution of the
package on the systems at the client’s end.
Reliability: - It is a very reliable system. Two separate processes of the package are unique
& non-interdependent to each other. The execution of one process does not effect the
processing of second one. The complete processing does not effect the normal operations of
the company terminals.
Safety & Security: - The processes/operations under each consideration are completely
equipped with alert messages as and when required. The software never permits any
mishandling or misfiring of data in the database tables at any point of processing.
Standard Compliance: - It follows a standard format or layout in the designing as well as
operational phases. This helps the user to work on the system in an effective and efficient
way at any site of the office. They can work on its database to keep all the concurrent
updating.
Fig 1.1 : Non Functional Requirements
4 | P a g e
1.2 Design Changes
1.2.1 Design Constraints
The interface of our project will be user friendly and will work on the following options
Ask the user to select the station they would like to listen to.
Restrict the user to play only one station at a time .
Allows the user to add station to their favourite list.
Search the stations from the available list of stations.
Allows the user to listen to their favourite stations anytime , anywhere.
Portable android application.
The interface design describes how the software communicates within itself, to
system that inter-operates with it and with people who use it. User interface is the
doorway into an interactive software application. The interface tells the system what
action is to be taken for entering, changing, or retrieving data. It should allow users to
accomplish processing action is to be taken for entering, changing or retrieving data.
The interface would be in such a way that it includes methods that will not be
tiresome or unacceptable to frequent users who become families with the system,
but that will facilitate equally effective use by novice users. It should prevent any action
that will create a processing error.
Interface design creates an effective communication medium between a human and
a mobile. Design identifies interface objects and actions then create a screen layout
that forms the basis for a user interface.
Interface design focuses on:
1. The design of interfaces between software components
2. The design of interfaces between software and other non-human
producers and consumers of information.
3. The design of interface between a human and the mobile.
Interface design begins with the identification of user, task and environment
requirements.
5 | P a g e
Design Constraints for performance requirements
The advantage of using Internet Radio instead of the terrestrial radio itself is three-fold:
1. Live streaming of data over the internet which is availavle from anywhere in the
world.
2. Efficient encoding of data formats and numerous stations available at a time.
3. Improved sound quality which is unaffected under change in weather conditions or
no-network zones.
Thus , the system developed required to perform in such a way such that the above three
advantages of using Internet Radio over FM radio are fulfilled as well as it takes into
consideration that the sound quality is maintained and the user doesnt not have to wait
long for buffering.
Also there are certain constraints to maximize the usability of the bandwith such as,
limiting the number of clients, restricting the user to listen to a single station at a time,
checking if the user is available by checking for clicks on the page for a fixed time
duration.
6 | P a g e
1.2.2 Design Diagrams
Use Case diagrams
For my system there is a relatively simple use case diagram as the software is fairly
compartmentalised and doesn’t link to anything external besides the user and the
software to be developed.
Fig1.2 - Use Case Diagram
7 | P a g e
Class diagrams
We also made a class diagram, outlining the classes, methods and members of each class and
how they relate to each other. The relationships are all calling about the server class, which
creates instances of many of the other classes,and the main focus is around the server
interface which reads audio file, encodes it and broadcasts it to the systems.
Fig. 1.3 - Class Diagram
8 | P a g e
1.3 Implementation Strategy
Streaming technology is used to distribute Internet radio, typically using a lossy audio codec .
Streaming audio formats include MP3 , Ogg Vorbis , Windows Media Audio
, RealAudio, HE-AAC . Audio data is continuously transmitted serially over the local
network or internet in TCP or UDP packets, then reassembled at the receiver and played a
second or two later. The delay is called lag, and is introduced at several stages of digital
audio broadcasting. On windows platform, we are using the shoutcast server , to stream audio
over the internet. And on linux , we are using icecast server , to stream audio over the
internet.
Three layers within a communication system for the internet are:
1. The physical layer (computers, wires that connect them)
2. The logical or code layer (the code that makes the hardware run)
3. The content layer (the content that gets transferred around and across the network)
The implementation will be done by implementing the below steps :
1. Implementation of the above described three layers.
2. Creation of an Android application for Internet Radio.
Implementation details
Streaming Media is the term used to describe the real-time delivery of audio and video over
the internet. Streaming Media allows for live transmission of audio or video over the
internet, transforming the internet into a broadcasting medium. Content can also be archived
in streaming file formats, allowing internet users to experience recordings of events after they
happen.
Varieties of Streaming
There are three types of delivery of audio and video data over the internet: Download and
Play,Progressive Download, and True Streaming.
Download and play
To experience Download and Play media you must first download the entire media file to
your hard disk before you can play it. For this reason Download and Play media cannot be
used for live broadcasts, however it is often a good way to deliver high quality media content
over any bandwidth. A high quality movie, for example, can be downloaded over any internet
connection. However because you cannot play the movie until you have downloaded the
entire file, download time becomes a factor. To download a DVD movie (usually about 4.6
9 | P a g e
GB in size) over a dial-up modem (56kbps) it would take over 8 days! Most people would
find this quite tedious!
Download and Play media is not streaming media (more on this later) but it is a lot more
popular than streaming. File sharing networks are Download and Play mechanisms, and this
is an extremely popular activity on the internet. As many countries make high bandwidth
connections more accesible there is an increasing popularity of trading Download and Play
movies on these networks.
Progressive download
This enables you to experience media as it downloads to your harddrive. Progressive
Download is useful but is less efficient than True Streaming and cannot provide some
functionality such as multiple bitrate encoding. However this method has an advantage over
Download and Play as you do not have to wait for the file to finish downloading before you
can start playing it. There are some constraints - for example, if the file does not download as
fast as you are playing it, then you will find that playback will stop while you wait for more
of the file to download. This can be annoying and it is often the reason why some choose
True Streaming as a preferred method of delivery.
Quicktime (Apple's suite of streaming technologies) calls Progressive Download "Fast Start".
This highlights one of the difficulties of learning streaming - in the effort to differentiate
technologies, each technology provider has made up their own jargon. However throughout
this manual I will stick to the more generic terminologies wherever possible.
True streaming
This enables the user to view or listen to the media as it is delivered over the internet in real-
time. True Streaming is the only variety of streaming that allows for live broadcasting, and it
also supports more advanced functionality than Progressive Download, enabling the user to
control the media experience by pausing, skipping forward, or rewinding. Although different
terms have been used to describe True Streaming, including webcasting, livecasting, web tv,
or net.radio, the term that has prevailed is "streaming media" (more often it is just refered to
as "streaming").
The difference between Progressive Download and True Streaming is not always obvious. If,
for example, a user has a very fast connection to the internet then Progressive Download may
appear to behave in exactly the same way as True Streaming.
10 | P a g e
Within Download and Play, Progressive Download, and True Streaming there are two distinct
varieties : static file streaming and live streaming.
Static file streaming
The delivery of pre-recorded media files over the internet in real time. Typically when we
refer to archives of online media we are discussing static file streaming. A large archive of
video art encoded into streaming files is an example of a collection of static file streaming
files. This content is also known as on-demand or archived content. This content can be
delivered by Download and Play, Progressive Download, or True Streaming processes.
Live streaming
The delivery of live audio and/or video over the internet. This allows the user to experience
an event as it occurs in realtime. There are many examples of this such as online radio or
viewing live performances. Only True Streaming supports live streaming.
This manual will mainly deal with True Streaming of both live and archived content.
Encoding
To stream static files over the internet the files must be compressed and encoded into a
'streaming format'. Ripping CDs into MP3 is doing just this and is done using encoding
softwares. In this process a CD audio recording is converted by the encoding software from a
CD (Compact Disc) audio format into a 'streaming audio format' (MP3). This will involve
compressing the data, which reduces its quality and file size, and converting the data into a
'streaming format' (for example MP3).
Compression
There are two forms of compression - lossy, and lossless compression.
When the encoding process compresses the source file so that it can be delivered over
internet connections in real-time this process degrades the quality of the audio and video. The
more a file is compressed, the lower bandwidth required to be able to play the file, but the
more the quality is reduced. A compromise has to be achieved whereby the level of
compression achieves an acceptable audio and video experience, while reducing the amount
of data enough to enable delivery over the internet.
11 | P a g e
Live encoding is similar except that an audio or video (or both) input is encoded instead of a
file. With this process the encoding software delivers the encoded data in a continuous stream
to the streaming server.
Lossless compression
This is the process of compressing data information into a smaller size without removing
data. To visualise this process imagine a paper bag with an object in it. When you remove the
air in the bag by creating a vacuum the object in the bag is not affected even tough the total
size of the bag is reduced
Lossy compression
Sometimes called 'Perceptual Encoding', this is the process of 'throwing away' data to reduce
the file size. The compression algorithms used are complex and try to preserve the qualitative
perceptual experience as much as possible while discarding as much data as necessary.
Lossy compression is a very fine art. The algorithms that enable this take into account how
the brain precieves sounds and images and then discards information from the audio or video
file while maintaining an aural and visual experience resembling the original source material.
To do this the process follows Psychoacoustic and Psychovisual modelling principles.
Codecs
The algorithms used to compress and encode audio and video and create the file format are
known as "codecs". The word is made from two common terms compress anddecompress.
The encoding software uses a codec to 'compress' the streaming content for delivery over the
net, and the player softwares use a codec to 'decompress' the content for replay.
The codec is mathematical wizardry and is the heart and soul of streaming. It is on this
ground that we have the various technology providers battling it out for dominance. Each
codec has its own unique way of doing things depending on what the developer believes is
best, and some come with their own minefield of licencing issues too.
Bitrate
Compression is the process of reducing the amount of data
Multiple bitrate encoding allows the server and player to negotiate the best quality (highest
bandwidth) stream to be delivered from a single static file or live stream. Hence the player is
12 | P a g e
delivered the best quality stream possible over the user's internet connection.
Multiple bitrate? encoding produces only one encoded stream.
Choosing the bitrate(s) will require the consideration of several factors, including: The target
audience's connectivity; The desirable frame size of the video (if including video); The
amount of movement in the frame (if including video); The level of video contrast (if
including video); The type of audio encoded (e.g. ambient noise/voice/stereo music);The
amount of camera movement (if including video); The quality of the camera and camera lens
(if including video).
Delivery
Streaming static ("archived") files can be achieved using a normal web server. This is often
the cheapest way to deliver content on a small scale. This method cannot be used for live
streaming and does not allow for the advanced features of True Streaming such as multiple
bitrate encoding. This method will also enhance the likelihood for time-outs ('buffering') and
cannot deliver the same amount of simultaneous player connections as True Streaming.
To enable live streaming and to gain full functionality and efficiency a streaming media
server is required. This server is usually standard server hardware but with the necessary
streaming server softwares installed. It is quite normal to install a streaming server on the
same machine as an existing web server.
Streaming servers
Perhaps a good way to understand what a streaming server does is to imagine a radio station.
A radio station comprises of three components - a studio, a transmitter, and
thereceivers that your audience has.
Fig 1.4 : Diagram showing how a trasmiiting radio station works.
13 | P a g e
Above is a basic diagram showing how a transmitting radio station works. The radio studio is
the source of the audio. In this space there are usually mixing desks, cd-players, minidisc
players, turntables etc. Then from the studio an audio signal is sent to the transmitter. This
can be sent from the studio to the transmitter by either a cable (sometimes called a "landline")
or by a microwave link. Then the transmitter sends the audio via FM so that radio receivers
(tuners) can pick it up and play it.
Radio works this way because it is trying to distribute the studio audio to as many people as
possible. If you imagine the radio studio without the transmitter then the station would have
have a fairly reduced audience! Essentially only people that could fit into the studio would be
able to listen. So the transmitter works as a distributer, allowing more people to connect via
their radio receivers and hence the potential audience is enlarged.
This is a close analogy to why streaming exists and how it works. If you were just playing
audio on a computer in your room then the audience isn't going to be so big... so, we utilise
streaming to distribute this audio to more people.
Fig 1.5 : Analogy of internet radio and FM.
The analogy is obvious....the computer replaces the radio studio, the streaming server
replaces the transmitter, and your listeners connect by computers to the server rather than
with radio receivers to the broadcast signal. The analog can be taken quite a long way.
Having a bigger radio transmitter is like having more bandwidth available at the streaming
server - both allow more people to connect.
14 | P a g e
Shoutcast server :
Shoutcast is an internet broadcasting tool, usually used for audio streaming. It can be used by
radio stations or end users, to bring audio or video content to an internet audience.
SHOUTcast uses mp3 (MPEG Layer 3) technology for audio delivery and NSV for
audio/video delivery. If you want people to hear what you have to say, on-line radio is the
fastest, most accessible way to do that. SHOUTcast servers are the answer if you are looking
for a solid, professional on-line radio station that provides great reliability and security for
accessible prices. The SHOUTcast protocol was designed to support Internet audio
broadcasting. The DJ sends audio data from his personal computer to a central SHOUTcast
server that then turns around and streams it out to any connected listeners.
The Autodj system will allow you to upload your mp3′s to the system and to be able select
multiply playlists and stream 24/7 without having your computer on all the time.
To make SHOUTcast system you will need the following software tools and hardware:
A computer running on a supported operating system.
SHOUTcast DNAS Server
An input source (Transcoder or Winamp plus Source DSP plug-in)
Media or DJ's or a Capture device i.e. the content you want to provide to people.
Icecast :
ICEcast is a streaming server which allows radio stations to effectively broadcast audio
online (this is known as webcasting). It is powerful and stable, meaning you can throw all of
your internet radio traffic at it without having crashes or other problems. Audio listeners can
access the stream through any live MP3 supported media player. ICEcast has mountpoints
meaning and automatically transferes listeners from the Auto DJ to the Live stream and back
again without needing to manually turn anything on or off.
Icecast accounts in Linux and Windows are created by directly editing the configuration file
with a text editor. Most probably you will be working with a config file on a server so it will
be necessary to use a text editor in the terminal.
15 | P a g e
Account settings are really specific to individual mountpoints. The following are some of the
more useful settings:
Password : The password required before any stream will be accepted by the server on
that mountpoint. The password will be entered into the password field of the encoder, if
the encoder is a command line encoder, then the password will be either entered in the
command line or added to a text config file. If the encoder has a graphical user interface
(GUI) then there is usually a form field in the interface for the password.
Max-listeners : The maximum number of listeners that the mountpoint can support
concurrently (at the same time). If you set the value to 50 for example, then you will be
able to have up to 50 listeners or viewers at any one moment.
Dump-file : The path and filename where the stream on this mountpoint should be
archived.
Intro : This stipulates that an intro must be streamed on the mountpoint before the
listener hears the stream. For example, if you had a live stream for an event, you may
wish to play a short introduction announcement when the listener connects, followed by
the stream. In this case you would use this option and include a link to the intro file to be
played.
Basic streaming server setup
A streaming server consists of three pieces of software.
Server (Server software) : Server Software allows your machine to "serve" data to other
machines. If you look at things the other way around, the "server software" manipulates the
operating system and the hardware to allow remote machines to connect to your machine.
Player (DSP capable player) : DSP stands for "Digital Signal Processing." There are a couple
well-known and widely used audio players that allow third party "plugins." The majority of
the DSP plugins are used to add effects to audio files, such as echo and reverb. Streaming
server DSP take this idea of capturing the signal before it goes to the speakers and rather
than applying a cool effect, they transmit the signal/data over a network. WinAmp is a nice
audio player with DSP support.
16 | P a g e
Bridge (DSP conversion software) Bridging software captures an analog signal, then
converts the signal into a digital format, then sends the data to the Server Software. In other
words, it "bridges" your audio player software to your server software. The Bridging software
does the reverse of what a standard audio player does - it converts an analog signal into
digital data.
A standard audio player takes a digital file and converts it into an analog signal so that your
speakers can play it. The only way to send stuff over a network is if it is digital. We can not
send analog data over a network. Phones and telegraphs are used to do that.
What we are trying to do here is send raw digital data directly to another machine. In other
words, a remote computer can "point" it's audio player to our machine and thereby receive the
raw digital data and then convert the digital data back into an analog signal and then out to
the speakers -- i.e. stream audio.
Function code to limit connections per IP:
sudo iptables -A INPUT -s 127.0.0.1 -p tcp --dport 8000 -j ACCEPT
sudo iptables -A INPUT -p tcp --syn --dport 8000 -m connlimit --connlimit-above 1 -
j REJECT --reject-with tcp-reset
Function Code to display timeout if page is left idle :
var dbase=new Date();
var cntr=0;
function tcheck()
{
var dnew=new Date();
var sec=dnew.getSeconds()- dbase.getSeconds();
var min=dnew.getMinutes()- dbase.getMinutes();
if(sec==0 && min==1 && cntr==1)
{
document.getElementById("aud").src="";
var a=alert("Time Out. Disconnecting....");
window.close();
17 | P a g e
}
cntr=1;
setTimeout("tcheck()",1000);
}
function clicked()
{
dbase=new Date();
cntr=0;
}
<body onload="tcheck()">
<p id="para1" onclick="clicked()">
<audio id="aud"
src="http://www.foundwaves.com/content/audio/Dark%20Dark%20Dark%20-
%20Daydreaming.mp3" controls="controls"></audio>
</p>
18 | P a g e
Screenshots of the Android Application :
Fig 1.6 : Displays the intro screen of the app , containing different channels.
19 | P a g e
Fig 1.7 : Selected station 1 , Screen displaying play button to start playing the audio.
Fig 1.8 : Screen displaying loading the audio of channel 1.
20 | P a g e
Fig 1.9 : Selected station 1 , Screen playing the audio displaying pause button to pause.
Fig 1.10 : Selected station 1 , Screen displaying play button to play the paused audio.
21 | P a g e
Fig 1.11 : Playing audio aborted and back to main screen.
22 | P a g e
CHAPTER 2 : Testing and Evaluation
2.1 Component Decomposition and Type of Testing Required
Table 2.1 – Testing Plan
Type of test
Comments / Explanations
Software Component
Requirements Testing
Done after software is developed
complete
Unit
We have divided the project into individual modules, which can be
tested individually
Preprocessing, streaming of audio
Integration
All the modules will be tested together two at a time and all
combined together
Running android application as a
whole.
Performance
To see if the output is timely and
well coordinated
Measure of false alarm and false
reject.
Stress
We shall test the program with
various different specifications as the end user might not have the
same specifications
Measure of effective bandwidth usage
Security
Security component required as
such
Security from variour internet
security attacks
Load
We can do this by giving very
complex backgrounds and increasing the no. of clients.
Increased no. of clients and less buffer time.
23 | P a g e
Components and testing required :
Table 2.2 – Components and Testing Required
2.2 Test cases
Black box Testing
Table 2.3 - Black Box Testing
Sno List of Various Components
(modules) that require testing
Type of Testing Required Technique for writing test
cases
1 Android Player Module Unit White Box
2 Firewall Module Unit Black Box
3 Audio Input Unit White Box and Black Box
4 Audio Input Streaming Integration Black Box
Test Case Id Input Expected Output Status
1
Select station
Should select station
from the given list.
PASS
2
Play / Pause
Should play/pause the
audio on required
command.
PASS
3
Limit connections per ip
Should be able to
restrict max. of 1
connection at a time.
PASS
4
Time out
Should be able to
timeout the connection if
page left idle for a
particulat time period,
say 2 min.
PASS
24 | P a g e
Table 2.4 : Test cases result
White Box Testing
White Box Testing is done using the tool , Android Lint. Android Lint is a new tool
introduced in ADT 16 which scans Android project sources for potential bugs. It is available
both as a command line tool, as well as integrated with Eclipse. The architecture is
deliberately IDE independent so it will hopefully be integrated with other IDEs, with other
build tools and with continuous integration systems as well.
Here are some examples of the types of errors that it looks for:
Missing translations (and unused translations)
Layout performance problems (all the issues the old layoutopt tool used to find, and
more)
Unused resources
Inconsistent array sizes (when arrays are defined in multiple configurations)
Accessibility and internationalization problems (hardcoded strings, missing
contentDescription, etc)
Icon problems (like missing densities, duplicate icons, wrong sizes, etc)
Usability problems (like not specifying an input type on a text field)
Manifest errors and many more.
Test Case Id Input Expected Output Status
1 Internet Radio Stream Stream Played Via
Android Media Player
Fail
2 Multiple Connections
from Client Machine
Only one connection
allowed for clients
and for hosts many
Fail
3 Analog Audio to
Sound Card
Dump File being
recorded from sound
card
Fail
4 Input to Icecast server
using “shout2send”
Audio Streamed Fail
25 | P a g e
Fig 2.1 : Displaying white box testing done with Android Lint.
26 | P a g e
2.3 Error and Exception Handling
Debugging:
Test case id Test case for xyz components Debugging Technique
1 Android Media Player Print Technique
2 Firewall Rule Testing Post-Mortem Technique
3 Audio Input Testing Post-Mortem Technique
4 Soundcard Stream Testing Print and Post-Mortem Technique
Table 2.5 - Debugging
After Debugging:
Test Case Id Input Expected Output Status
1 Internet Radio Stream Stream Played Via
Android Media Player
Pass
2 Multiple Connections
from Client Machine
Only one connection
allowed for clients
and for hosts many
Pass
3 Analog Audio to
Sound Card
Dump File being
recorded from sound
card
Pass
4 Input to Icecast server
using “shout2send”
Audio Streamed Pass
Table 2.6 – After Debugging
27 | P a g e
CHAPTER 3 : Findings and Conclusion
3.1 Findings
Alternatives of Internet Radio :
FM broadcasting : It is a broadcast technology pioneered by Edwin Howard
Armstrong that uses frequency modulation (FM) to provide high-fidelity sound over
broadcast radio. The term "FM band" is effectively shorthand for "frequency band in which
FM is used for broadcasting". This term can upset purists because it conflates a modulation
scheme with a range of frequencies.
Drawbacks of FM Broadcasting :
FM is strictly line of sight, so it's broadcast range on our round planet is limited.
We can not listen our favorite station anytime.
Internet Radio :
Internet Radio is available anywhere , having hundreds of station available , we can listen
our favorite station any time whenever we want, also the sound quality is better.
Podcasting :
Internet Radio is active , i.e the signal is pushed to the listeners , while , Podcasts are
passive , i.e. , the files are needed to be downloaded first.
Internet Radio is immediate , i.e. it starts immediately and plays in its own media player ,
while podcasts only starts after you download the file and the file is needed to be opened
in the media player.
Internet Radio is a live audio stream while podcast is archived , i.e. the files are available
to download from a library of files.
In Internet Radio , each show reaches multiple listeners at a time , while podcasts only
reach one listener at a time.
28 | P a g e
Comparison of the Shoutcast & Icecast servers used for Windows and
Linux platforms
Table 3.1 : Shoutcast vs Icecast
Property
Shoutcast
Icecast
Ownership &
Licensing
A propriety software owned by AOL.
An open source software available
under GNU License.
Formats
Supported
MP3 , AAC , AAC+ and NSV formats.
All formats supported including
MP3 , AAC , AAC+ , OGG ,
Vorbis formats.
Multiple
Streaming
Shoutcast server can only handle one
feed at a time.
In icecast , upto three different
feeds can be supported on the
same port.
Automated or
Manual
Transfer
We can either stream live or with auto-
dj, one at a time.
We can stream live and keep the
auto-dj active at the same time.
Ease Of Use
Shoutcast is easiest to install and work
with on Windows platform.
It's fairly easy to install but to
work with on Linux platform
requires user to know Linux Shell
Commands and basic know how.
Flexibility
Being a propriety based software not
many flexible options available and also
it cannot be configured as per a user
requirement.
As it's a free source code GNU
License based software it's highly
flexible and can be configured as
per requirements of the user.
Public Listing
It has around 53,000 stations listed on
it. Thus a public listing on ShoutCast is
likely to get user listeners easily.
It has around 25,000 stations
listed on it. But, station listed on
IceCast public listing gets on an
average less number of users
compared to ShoutCast.
29 | P a g e
3.2 Conclusion
INTERNET RADIO is a user-friendly interactive Application for android device and
requires no prior knowledge of software. All the suggestions forwarded during the software
proposal have been successfully completed and final threshold of application has been
crossed. Some errors were spotted out during the system testing and were corrected.
The system developed for the given conditions specified by the firm was found
working efficiently. The system is highly flexible and is well efficient to make easy
interactions with the database. The goal of computer security to maintain the integrity,
availability and privacy of information entrusted to the system was successfully
obtained.
After studying both Internet Radio broadcasting software over various parameter we have
come to following conclusion:
If a person is a Naive user who just wants to broadcast music without getting
into hassle ShoutCast is the best choice.
For an advanced user who has had prior knowledge of using Linux based system and
Shell Script Icecast proves to be better choice as it provides quite many advanced
configuration.
3.3 Future Work
INTERNET RADIO application can be enhanced by including features like :
User can change the background of the application.
The playing information can be shown as notification on status bar.
Podcasting option can be implemented.
In the future , we also intend to publish a research paper on our project describing the system,
comparison of the servers used , advantages of Internet Radio etc. A rough draft has already
been prepared.
30 | P a g e
(VIII)
REFERENCES
[1] Adam Hyde & Zita Joyce, "Icecast," 2011 .
“http://en.flossmanuals.net/_booki/icecast/icecast.pdf ”
[2] Joebert S. Jacaba , “Audio Compression using MDCT : The MP3 Coding Standard ” ,
2001. “http://www.mp3tech.org/programmer/docs/jacaba_main.pdf ”
[3] Karlheinz Brandenburg, “MP3 and AAC explained,” AES 17th International Conference
on High Quality Audio Coding , 2001.
“http://graphics.ethz.ch/teaching/mmcom10/slides/mp3_and_aac_brandenburg.pdf ”
[4] M. Dietz and S. Meltzer, “Audio Coding Scheme,” Coding Technologies , 2002.
“http://tech.ebu.ch/docs/techreview/trev_291-dietz.pdf ”
[5] S. Meltzer and G. Moser, “Audio Compression,” Coding Technologies , 2006.
“http://tech.ebu.ch/docs/techreview/trev_305moser.pdf ”
31 | P a g e
(IX)
Appendix – A
Description Of Tools
Eclipse : Java IDE
The Eclipse IDE for Java Developers contains what you need to build Java
applications. Considered by many to be the best Java development tool available, the
Eclipse IDE for Java Developers provides superior Java editing with validation,
incremental compilation, cross-referencing, code assist; an XML Editor and much
more.
Alsa: GStreamer Hardware Handling Driver Tool
Advanced Linux Sound Architecture (known by the acronym ALSA) is a free and
open source software framework providing an API fordevice drivers for sound cards.
As such, it is a Linux kernel component. Some of the goals of the ALSA project at its
inception were automatic configuration of sound-card hardware, and graceful
handling of multiple sound devices in a system.
Shout2Send : Tool to connect gstreamer tools with Icecast
It sends data to an icecast server.
SHOUTcast DSP: Winamp DSP for SHOUTcast
Use Winamp media player along with the SHOUTcast DSP plug-in to program and
manage your SHOUTcast station in real-time. This plug-in will broadcast whatever is
playing in your Winamp playlist in real time.
Icecast server
ICEcast is a streaming server which allows radio stations to effectively broadcast
audio online. It is powerful and stable, meaning you can throw all of your internet
radio traffic at it without having crashes or other problems. Audio listeners can access
the stream through any live MP3 supported media player. ICEcast has mountpoints
meaning and automatically transferes listeners from the Auto DJ to the Live stream
and back again without needing to manually turn anything on or off.
SHOUTcast server
Shoutcast is an internet broadcasting tool, usually used for audio streaming. It can be
used by radio stations or end users, to bring audio or video content to an internet
audience. SHOUTcast uses mp3 technology for audio delivery and NSV for
audio/video delivery.
32 | P a g e
(X)
Appendix - B
Risk Analysis and Mitigation Plan
ID Classification Description Of Risk Risk Area P I RE Mitigation Plan
1
Development Environment
Development System
Usability
Bandwidth wastage
:
It might be possible
that system is idle
and still the
bandwidth is being
used. Or if there are
multiple connections
from the same ip
address, resulting in
wastage of
bandwidth.
All
5
1
5
Limiting the
user to have
one connection
at a time, and
also checking
after intervals ,
for idle
situation.
2
Product
Engineering
Requirement
Feasibility
Version
Incompatibility :
The version or
format provided is
not compatible with
those that can be
encoded and
streamed.
Pre
processing
3
5
15
Enhance
preprocessing
techniques,
using more
complex
algorthms,
reducing time
efficiency for
better
computational
accuracy.
3
Product
Engineering
Integration and test
Environment
Security Attacks :
There might be
security attacks on
the app which will
refrain the user to
get the required
signal.
All
5
1
5
Enhance security
measures in terms of
configuration settings like
banned ip, broadcast ip etc.
33 | P a g e
Table 4.1 - Risk Analysis and Risk Mitigation
Risk 1: Bandwidth Wastage
Table 4.2 : Risk Mitigation (I)
Mitigation Plan: The functions to be applied should be tested by taking various test cases to
ensure the efficient bandwidth usage.
Date Started: 01/03/12 Date Completed: 12/03/12 Owner: Khagesh Batra
Additional Resources Required: None
Risk 2: Performance
Table 4.3 : Risk Mitigation (II)
4
Product Engineering
Design
Performance
Delay in
processing:
Due to high
computational
complexity and
multi-modular
architecture involved
with the tool, the
processing for final
parallel results may
suffer from some
lag.
All
3
3
9
This risk shall
be handles at
the
developmental
stage via
rigorous testing
and time
analysis of the
various
algorithms
applied in the
program.
5
Product
Engineering
Requirements
Completeness
Unidentifiable
components in the
audio.
All
1
5
5
Shall treat them as two different
pieces or can deploy multiple algos to remove that particular
type of identification.
Mitigation Plan: The performance of the project is very important. Therefore, it was made
sure that the project does not depend on the system performance. The algorithms were
implemented in such a way that they take the minimum processing power and the least time
possible.
Date Started: 25/02/12 Date Completed: 13/03/12 Owner: Ekta Goyal
Additional Resources Required: None