internet radio report

33
1 | Page 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.

Upload: abhi-mediratta

Post on 26-Oct-2014

112 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 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.

Page 2: Internet Radio Report

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.

Page 3: Internet Radio Report

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

Page 4: Internet Radio Report

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.

Page 5: Internet Radio Report

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.

Page 6: Internet Radio Report

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

Page 7: Internet Radio Report

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

Page 8: Internet Radio Report

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

Page 9: Internet Radio Report

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.

Page 10: Internet Radio Report

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.

Page 11: Internet Radio Report

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

Page 12: Internet Radio Report

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.

Page 13: Internet Radio Report

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.

Page 14: Internet Radio Report

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.

Page 15: Internet Radio Report

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.

Page 16: Internet Radio Report

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();

Page 17: Internet Radio Report

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>

Page 18: Internet Radio Report

18 | P a g e

Screenshots of the Android Application :

Fig 1.6 : Displays the intro screen of the app , containing different channels.

Page 19: Internet Radio Report

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.

Page 20: Internet Radio Report

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.

Page 21: Internet Radio Report

21 | P a g e

Fig 1.11 : Playing audio aborted and back to main screen.

Page 22: Internet Radio Report

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.

Page 23: Internet Radio Report

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

Page 24: Internet Radio Report

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

Page 25: Internet Radio Report

25 | P a g e

Fig 2.1 : Displaying white box testing done with Android Lint.

Page 26: Internet Radio Report

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

Page 27: Internet Radio Report

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.

Page 28: Internet Radio Report

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.

Page 29: Internet Radio Report

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.

Page 30: Internet Radio Report

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 ”

Page 31: Internet Radio Report

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.

Page 32: Internet Radio Report

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.

Page 33: Internet Radio Report

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