BY: ATUL GARG (2004EE10319) ADITYA KAWATRA (2004EE10313)

21
1 of 21 of 21 Atul Garg / Piyush Maheshwari / Aditya Kawatra Atul Garg / Piyush Maheshwari / Aditya Kawatra DEVELOPMENT OF UNIVERSAL DEVELOPMENT OF UNIVERSAL MEDIA PLAYER MEDIA PLAYER FACILITATOR — PROF. SUBRAT KAR FACILITATOR — PROF. SUBRAT KAR (DEPT. OF ELECTRICAL ENGINEERING) (DEPT. OF ELECTRICAL ENGINEERING) BY: BY: ATUL GARG ATUL GARG (2004EE10319) (2004EE10319) ADITYA KAWATRA ADITYA KAWATRA (2004EE10313) (2004EE10313) PIYUSH MAHESHWARI PIYUSH MAHESHWARI (2004EE10335) (2004EE10335)

description

DEVELOPMENT OF UNIVERSAL MEDIA PLAYER FACILITATOR — PROF. SUBRAT KAR (DEPT. OF ELECTRICAL ENGINEERING). BY: ATUL GARG (2004EE10319) ADITYA KAWATRA (2004EE10313) PIYUSH MAHESHWARI (2004EE10335). INTRODUCTION. - PowerPoint PPT Presentation

Transcript of BY: ATUL GARG (2004EE10319) ADITYA KAWATRA (2004EE10313)

Page 1: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

11 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

DEVELOPMENT OF UNIVERSAL DEVELOPMENT OF UNIVERSAL MEDIA PLAYERMEDIA PLAYER

FACILITATOR — PROF. SUBRAT KARFACILITATOR — PROF. SUBRAT KAR(DEPT. OF ELECTRICAL ENGINEERING)(DEPT. OF ELECTRICAL ENGINEERING)

BY:BY:ATUL GARG (2004EE10319)ATUL GARG (2004EE10319)ADITYA KAWATRA (2004EE10313)ADITYA KAWATRA (2004EE10313)

PIYUSH MAHESHWARI (2004EE10335)PIYUSH MAHESHWARI (2004EE10335)

Page 2: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

22 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

INTRODUCTIONINTRODUCTION We expect that most modern networks will try to achieve convergence / We expect that most modern networks will try to achieve convergence /

unification of media in one form or the other. unification of media in one form or the other. It is probable that this convergence will occur through the conversion of It is probable that this convergence will occur through the conversion of

“everything-to-IP”.“everything-to-IP”. We have been displaying different streams using dedicated players e.g. video We have been displaying different streams using dedicated players e.g. video

streams in Video player, audio streams in audio players, T.V. using dedicated streams in Video player, audio streams in audio players, T.V. using dedicated T.V tuner cards, Fax using Fax software and Multifunction devices (scanner + T.V tuner cards, Fax using Fax software and Multifunction devices (scanner + printer + Fax).printer + Fax).

The development of a universal media player, which can play all type of inputs The development of a universal media player, which can play all type of inputs (Video, Audio or Data), therefore gains importance(Video, Audio or Data), therefore gains importance. .

Page 3: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

33 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

OBJECTIVEOBJECTIVE We wished to develop, as Open Source / GPL (GNU Public License), a We wished to develop, as Open Source / GPL (GNU Public License), a

universal media player to integrate and develop separate GUI’s for streams universal media player to integrate and develop separate GUI’s for streams originating from audio, video and importantly other data source such as Fax, originating from audio, video and importantly other data source such as Fax, telephone. telephone.

In this particular project, we worked primarily for the implementation of the In this particular project, we worked primarily for the implementation of the media player on Nokia Mobile series 60 cell phones. media player on Nokia Mobile series 60 cell phones.

Page 4: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

44 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

APPROACHAPPROACH This presentation has been divided into the following sections:This presentation has been divided into the following sections: Series 60 platform and Symbian OSSeries 60 platform and Symbian OS Using VLC media player as server for streaming Using VLC media player as server for streaming J2ME – Player Application J2ME – Player Application

– http connectionhttp connection– UDP connectionUDP connection– Socket ConnectionSocket Connection

Real Time Streaming Real Time Streaming – Using two playersUsing two players– Pipe data structurePipe data structure– Thin internet technologyThin internet technology

Page 5: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

55 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Series 60 platform and Symbian Series 60 platform and Symbian OSOS

Series 60 Platform is a complete Series 60 Platform is a complete smart phone reference design that smart phone reference design that includes a host of wireless includes a host of wireless applications. applications.

The platform builds on the Symbian The platform builds on the Symbian operating system (Symbian OS), operating system (Symbian OS), complementing it with a configurable complementing it with a configurable graphical user interface library.graphical user interface library.

Page 6: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

66 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Symbian OS - FeaturesSymbian OS - Features A 32-bit multitasking operating systemA 32-bit multitasking operating system

Performance Performance : Symbian OS is designed to make minimal demands on batteries : Symbian OS is designed to make minimal demands on batteries and to have low memory consumptionand to have low memory consumption

Multi-taskingMulti-tasking: Telephony and universal messaging are fundamental : Telephony and universal messaging are fundamental components .All applications are designed to work seamlessly in parallelcomponents .All applications are designed to work seamlessly in parallel

Standards :Standards : The use of technologies based on agreed-upon standards, The use of technologies based on agreed-upon standards, ensuring that applications are portable and interoperableensuring that applications are portable and interoperable

Object-oriented software architectureObject-oriented software architecture

E.g. a phone call may interrupt a user composing an e-mail message, a user E.g. a phone call may interrupt a user composing an e-mail message, a user may switch from e-mail to a calendar application in the middle of a telephone may switch from e-mail to a calendar application in the middle of a telephone conversationconversation

Page 7: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

77 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Streaming using VLC mediaStreaming using VLC media playerplayer

There are two methods of streaming using VLC media player. There are two methods of streaming using VLC media player. Using the Wizard. Using the Wizard. Streaming using Graphical User Interface (GUI)Streaming using Graphical User Interface (GUI)

WizardWizard offers easy to use menus but provides a restricted set of options. offers easy to use menus but provides a restricted set of options. Following steps are used ::Following steps are used ::

1) Launch the wizard1) Launch the wizard 2) Select input2) Select input

3) Select streaming methods3) Select streaming methods 4) Transcoding options4) Transcoding options 5) Encapsulation methods5) Encapsulation methods 6) Save to file 6) Save to file

Page 8: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

88 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Streaming using the GUIStreaming using the GUI A second way to set up a streaming instance using VLC is using A second way to set up a streaming instance using VLC is using Stream Stream

OutputOutput panel in the panel in the Open...Open... dialog of the wxWindows (Windows / GNU Linux.) dialog of the wxWindows (Windows / GNU Linux.)

Page 9: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

99 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Play locallyPlay locally: This allows to display the : This allows to display the stream you are actually streaming on your stream you are actually streaming on your screen. Effects of transcoding, rescaling, screen. Effects of transcoding, rescaling, etc. can be monitored locally using this etc. can be monitored locally using this function. function.

FileFile: Save the stream to a file. The : Save the stream to a file. The Dump Dump raw inputraw input option allows to save the input option allows to save the input stream as it read by VLC, without any stream as it read by VLC, without any processing. processing.

HTTPHTTP:: Specify the IP address and TCP port Specify the IP address and TCP port number on which to listen.number on which to listen.

MMSHMMSH: This access method allows to : This access method allows to stream to Microsoft Windows Media Player. stream to Microsoft Windows Media Player. Specify the IP address and TCP port Specify the IP address and TCP port number on which to listen. number on which to listen.

UDPUDP: Stream in unicast or in multicast by : Stream in unicast or in multicast by providing an address in the suitable range. providing an address in the suitable range.

RTPRTP: Use the Real-Time Transfer Protocol. : Use the Real-Time Transfer Protocol. Like UDP, it can use both unicast and Like UDP, it can use both unicast and multicast addresses. multicast addresses.

Stream output methodsStream output methods

Page 10: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

1010 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Mobile Media API (MMAPI) Mobile Media API (MMAPI) backgroundbackground

The MMAPI is built on a high-level The MMAPI is built on a high-level abstraction of all the multimedia abstraction of all the multimedia devices that are possible in a devices that are possible in a resource-limited device. This resource-limited device. This abstraction is manifested in three abstraction is manifested in three classes classes

Player and Control interfaces, and Player and Control interfaces, and Manager class.Manager class.

Manager is the central class for Manager is the central class for creating players and it provides creating players and it provides three methods to indicate the source three methods to indicate the source of media.of media.

These methods are These methods are createPlayer(DataSource source), createPlayer(DataSource source), createPlayer(InputStream stream, createPlayer(InputStream stream, String type) and createPlayer(String String type) and createPlayer(String locator).locator).

Page 11: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

1111 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Supported Protocols and SyntaxSupported Protocols and Syntax

Page 12: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

1212 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Media Player States and their Media Player States and their TransitionsTransitions

Player goes through various stagesPlayer goes through various stages RealizationRealization is the process in which the is the process in which the

player examines the source or player examines the source or destination media resources and has destination media resources and has enough information to start acquiring enough information to start acquiring them.them.

PrefetchingPrefetching happens after realization happens after realization and the player actually acquires these and the player actually acquires these media resources. media resources.

Both processes may be time- and Both processes may be time- and resource-consuming, but doing them resource-consuming, but doing them before the player is started ensures that before the player is started ensures that there is no latency when the actual start there is no latency when the actual start happens. happens.

Then player is Then player is startedstarted, using the start() , using the start() method, and is processing media data.method, and is processing media data.

Page 13: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

1313 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

UDP and Socket connectionUDP and Socket connection

Following set of abstractions can be used at the programming level: Following set of abstractions can be used at the programming level: Device manufacturers that work with circuit-switched networks require Device manufacturers that work with circuit-switched networks require

stream-based connections such as the Transport Control Protocol (TCP), a stream-based connections such as the Transport Control Protocol (TCP), a connection-oriented protocol. connection-oriented protocol.

Device manufacturers that work with packet-switched networks require Device manufacturers that work with packet-switched networks require datagram-based connections such as the User Datagram Protocol (UDP), a datagram-based connections such as the User Datagram Protocol (UDP), a connectionless protocol. connectionless protocol.

Other hand-held devices have specific mechanisms for communications. Other hand-held devices have specific mechanisms for communications.

Page 14: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

1414 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Various connections Various connections The following figure shows the relationships of the interfaces in an inheritance The following figure shows the relationships of the interfaces in an inheritance

hierarchy. hierarchy.

Most of the application's code remains the same regardless of the protocol one Most of the application's code remains the same regardless of the protocol one uses. uses.

Page 15: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

1515 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Low-Level IP Networking Low-Level IP Networking Support in MIDP 2.0Support in MIDP 2.0

A call like Connector.open("socket://A call like Connector.open("socket://hosthost::portport") returns a SocketConnection, ") returns a SocketConnection, and a call like Connector.open("socket://:and a call like Connector.open("socket://:portport") returns a ") returns a ServerSocketConnection. ServerSocketConnection.

A MIDlet specifies a host when requesting an outbound client connection and A MIDlet specifies a host when requesting an outbound client connection and omits the host when requesting an inbound server connection.omits the host when requesting an inbound server connection.

If one leaves out the port parameter when obtaining a server socket – as in If one leaves out the port parameter when obtaining a server socket – as in Connector.open("socket://") – an available port number is assigned Connector.open("socket://") – an available port number is assigned dynamically. One can use the getLocalPort method to discover the assigned dynamically. One can use the getLocalPort method to discover the assigned port number, and the getLocalAddress method to discover the local address to port number, and the getLocalAddress method to discover the local address to which the socket is bound.which the socket is bound.

A call like Connector.open("datagram://A call like Connector.open("datagram://hosthost::portport") returns a UDP Datagram ") returns a UDP Datagram Connection. Connection.

The SocketConnection interface defines the socket stream connection. One The SocketConnection interface defines the socket stream connection. One uses it when writing MIDlets that access TCP/IP servers uses it when writing MIDlets that access TCP/IP servers

The ServerSocketConnection interface defines the server socket stream The ServerSocketConnection interface defines the server socket stream connection. One uses it when requesting an inbound server connection connection. One uses it when requesting an inbound server connection

Page 16: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

1616 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Real Time StreamingReal Time Streaming Real time streaming means that the stream (audio/video), which is coming over Real time streaming means that the stream (audio/video), which is coming over

any protocol (http, UDP, RTP etc.) is played directly without any delay.any protocol (http, UDP, RTP etc.) is played directly without any delay.

We put our efforts in developing the real time streaming using the following We put our efforts in developing the real time streaming using the following methods: methods: – Playing the stream using two Players.Playing the stream using two Players.– Playing the Stream using Pipe Data Structure.Playing the Stream using Pipe Data Structure.– Thin Internet Technology.Thin Internet Technology.

Page 17: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

1717 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Playing the stream using two Playing the stream using two PlayersPlayers

At a time one player is prefetching the stream and second player is playing the At a time one player is prefetching the stream and second player is playing the prefetched stream.prefetched stream.

When1st player is prefetching the video stream and 2nd player is playing its When1st player is prefetching the video stream and 2nd player is playing its prefetched video stream section. When 2nd player gets null then 1st player will prefetched video stream section. When 2nd player gets null then 1st player will start playing its prefetched video stream section. start playing its prefetched video stream section.

This process will go on until whole of media stream is played. So player will This process will go on until whole of media stream is played. So player will switch from one screen to another screen. switch from one screen to another screen.

Page 18: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

1818 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Pipe Data Structure Pipe Data Structure A data structure which resembles a pipe, i.e. one can write the data at one end A data structure which resembles a pipe, i.e. one can write the data at one end

and take i.e. read the data from the other end.and take i.e. read the data from the other end. There can be two possible types of Pipes.There can be two possible types of Pipes.

– One can either write or read at an end. One can either write or read at an end. – One can read and write both at an endOne can read and write both at an end

We required only the first type of the Pipe data structure as we only wanted the We required only the first type of the Pipe data structure as we only wanted the phone to play the feed and not respond back to its source. phone to play the feed and not respond back to its source.

There is not a suitable way to implement Pipe data structure in J2ME and so There is not a suitable way to implement Pipe data structure in J2ME and so this line of thought was snubbed. this line of thought was snubbed.

Page 19: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

1919 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

Thin Internet TechnologyThin Internet Technology The TThe ThinEncoder converts standard audio and video files into mobile streaming hinEncoder converts standard audio and video files into mobile streaming

media clips. ThinEncoder can convert any video files that are available in all media clips. ThinEncoder can convert any video files that are available in all video formats. Video files are first edited using high performance video editors. video formats. Video files are first edited using high performance video editors.

Audio or video files can be converted into any format using Thinencoder.Audio or video files can be converted into any format using Thinencoder. Through Thin internet technology we can create a live mobile broadcast by Through Thin internet technology we can create a live mobile broadcast by

capturing a live broadcast signal (satellite or cable) and transcode it forcapturing a live broadcast signal (satellite or cable) and transcode it for playback on a mobile device. playback on a mobile device. Various Bit-rates can be supported. Various Bit-rates can be supported. The dynamic bit rate adaptation mechanism works to automatically adjust the The dynamic bit rate adaptation mechanism works to automatically adjust the

encoding and transmission parameters of the mobile delivery system based on encoding and transmission parameters of the mobile delivery system based on network performance characteristics and terminal capabilities. The adaptation network performance characteristics and terminal capabilities. The adaptation functioning is activated by the server after receiving feedback information from functioning is activated by the server after receiving feedback information from the client. the client.

Page 20: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

2020 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

CONCLUSIONS CONCLUSIONS We implemented a code to play video streams coming over the internet We implemented a code to play video streams coming over the internet

through the through the http:http: protocol and it successfully plays the video. protocol and it successfully plays the video.

We tested it using “sun java wireless toolkit 2.3” for the following url: We tested it using “sun java wireless toolkit 2.3” for the following url: http://java.sun.com/products/java-media/mma/media/test-mpeg.mpghttp://java.sun.com/products/java-media/mma/media/test-mpeg.mpg however, depending upon the network speed, it has some time delay, whichhowever, depending upon the network speed, it has some time delay, which is quite noticeable.is quite noticeable.

Also, UDP and socket connection was not supported in the Sun’s MIDP. Also, UDP and socket connection was not supported in the Sun’s MIDP. Hence, we had to restrict ourselves to the http: connection only. Hence, we had to restrict ourselves to the http: connection only.

Real time streaming was not supported Real time streaming was not supported

Page 21: BY: ATUL GARG                   (2004EE10319) ADITYA KAWATRA          (2004EE10313)

2121 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra

THANK YOUTHANK YOU