210 likes | 316 Views
DEVELOPMENT OF UNIVERSAL MEDIA PLAYER FACILITATOR — PROF. SUBRAT KAR (DEPT. OF ELECTRICAL ENGINEERING). BY: ATUL GARG (2004EE10319) ADITYA KAWATRA (2004EE10313) PIYUSH MAHESHWARI (2004EE10335). INTRODUCTION.
E N D
DEVELOPMENT OF UNIVERSAL MEDIA PLAYERFACILITATOR — PROF. SUBRAT KAR(DEPT. OF ELECTRICAL ENGINEERING) BY: ATUL GARG (2004EE10319) ADITYA KAWATRA (2004EE10313) PIYUSH MAHESHWARI (2004EE10335) Atul Garg / Piyush Maheshwari / Aditya Kawatra
INTRODUCTION • We expect that most modern networks will try to achieve convergence / unification of media in one form or the other. • It is probable that this convergence will occur through the conversion of “everything-to-IP”. • 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 T.V tuner cards, Fax using Fax software and Multifunction devices (scanner + printer + Fax). • The development of a universal media player, which can play all type of inputs (Video, Audio or Data), therefore gains importance. Atul Garg / Piyush Maheshwari / Aditya Kawatra
OBJECTIVE • We wished to develop, as Open Source / GPL (GNU Public License), a universal media player to integrate and develop separate GUI’s for streams originating from audio, video and importantly other data source such as Fax, telephone. • In this particular project, we worked primarily for the implementation of the media player on Nokia Mobile series 60 cell phones. Atul Garg / Piyush Maheshwari / Aditya Kawatra
APPROACH This presentation has been divided into the following sections: • Series 60 platform and Symbian OS • Using VLC media player as server for streaming • J2ME – Player Application • http connection • UDP connection • Socket Connection • Real Time Streaming • Using two players • Pipe data structure • Thin internet technology Atul Garg / Piyush Maheshwari / Aditya Kawatra
Series 60 platform and Symbian OS • Series 60 Platform is a complete smart phone reference design that includes a host of wireless applications. • The platform builds on the Symbian operating system (Symbian OS), complementing it with a configurable graphical user interface library. Atul Garg / Piyush Maheshwari / Aditya Kawatra
Symbian OS - Features • A 32-bit multitasking operating system • Performance : Symbian OS is designed to make minimal demands on batteries and to have low memory consumption • Multi-tasking: Telephony and universal messaging are fundamental components .All applications are designed to work seamlessly in parallel • Standards : The use of technologies based on agreed-upon standards, ensuring that applications are portable and interoperable • Object-oriented software architecture • 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 conversation Atul Garg / Piyush Maheshwari / Aditya Kawatra
Streaming using VLC mediaplayer There are two methods of streaming using VLC media player. • Using the Wizard. • Streaming using Graphical User Interface (GUI) • Wizard offers easy to use menus but provides a restricted set of options. Following steps are used :: 1) Launch the wizard 2) Select input 3) Select streaming methods 4) Transcoding options 5) Encapsulation methods 6) Save to file Atul Garg / Piyush Maheshwari / Aditya Kawatra
Streaming using the GUI • A second way to set up a streaming instance using VLC is using Stream Output panel in the Open... dialog of the wxWindows (Windows / GNU Linux.) Atul Garg / Piyush Maheshwari / Aditya Kawatra
Stream output methods • Play locally: This allows to display the stream you are actually streaming on your screen. Effects of transcoding, rescaling, etc. can be monitored locally using this function. • File: Save the stream to a file. The Dump raw input option allows to save the input stream as it read by VLC, without any processing. • HTTP: Specify the IP address and TCP port number on which to listen. • MMSH: This access method allows to stream to Microsoft Windows Media Player. Specify the IP address and TCP port number on which to listen. • UDP: Stream in unicast or in multicast by providing an address in the suitable range. • RTP: Use the Real-Time Transfer Protocol. Like UDP, it can use both unicast and multicast addresses. Atul Garg / Piyush Maheshwari / Aditya Kawatra
Mobile Media API (MMAPI) background The MMAPI is built on a high-level abstraction of all the multimedia devices that are possible in a resource-limited device. This abstraction is manifested in three classes • Player and Control interfaces, and Manager class. • Manager is the central class for creating players and it provides three methods to indicate the source of media. • These methods are createPlayer(DataSource source), createPlayer(InputStream stream, String type) and createPlayer(String locator). Atul Garg / Piyush Maheshwari / Aditya Kawatra
Supported Protocols and Syntax Atul Garg / Piyush Maheshwari / Aditya Kawatra
Media Player States and their Transitions Player goes through various stages • Realization is the process in which the player examines the source or destination media resources and has enough information to start acquiring them. • Prefetching happens after realization and the player actually acquires these media resources. • Both processes may be time- and resource-consuming, but doing them before the player is started ensures that there is no latency when the actual start happens. • Then player is started, using the start() method, and is processing media data. Atul Garg / Piyush Maheshwari / Aditya Kawatra
UDP and Socket connection Following set of abstractions can be used at the programming level: • Device manufacturers that work with circuit-switched networks require stream-based connections such as the Transport Control Protocol (TCP), a connection-oriented protocol. • Device manufacturers that work with packet-switched networks require datagram-based connections such as the User Datagram Protocol (UDP), a connectionless protocol. • Other hand-held devices have specific mechanisms for communications. Atul Garg / Piyush Maheshwari / Aditya Kawatra
Various connections • The following figure shows the relationships of the interfaces in an inheritance hierarchy. • Most of the application's code remains the same regardless of the protocol one uses. Atul Garg / Piyush Maheshwari / Aditya Kawatra
Low-Level IP Networking Support in MIDP 2.0 • A call like Connector.open("socket://host:port") returns a SocketConnection, and a call like Connector.open("socket://:port") returns a ServerSocketConnection. • A MIDlet specifies a host when requesting an outbound client connection and omits the host when requesting an inbound server connection. • If one leaves out the port parameter when obtaining a server socket – as in Connector.open("socket://") – an available port number is assigned dynamically. One can use the getLocalPort method to discover the assigned port number, and the getLocalAddress method to discover the local address to which the socket is bound. • A call like Connector.open("datagram://host:port") returns a UDP Datagram Connection. • The SocketConnection interface defines the socket stream connection. One uses it when writing MIDlets that access TCP/IP servers • The ServerSocketConnection interface defines the server socket stream connection. One uses it when requesting an inbound server connection Atul Garg / Piyush Maheshwari / Aditya Kawatra
Real Time Streaming • 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. • We put our efforts in developing the real time streaming using the following methods: • Playing the stream using two Players. • Playing the Stream using Pipe Data Structure. • Thin Internet Technology. Atul Garg / Piyush Maheshwari / Aditya Kawatra
Playing the stream using two Players • At a time one player is prefetching the stream and second player is playing the prefetched stream. • 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 start playing its prefetched video stream section. • This process will go on until whole of media stream is played. So player will switch from one screen to another screen. Atul Garg / Piyush Maheshwari / Aditya Kawatra
Pipe Data Structure • 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. • There can be two possible types of Pipes. • One can either write or read at an end. • One can read and write both at an end • 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. • There is not a suitable way to implement Pipe data structure in J2ME and so this line of thought was snubbed. Atul Garg / Piyush Maheshwari / Aditya Kawatra
Thin Internet Technology • The ThinEncoder converts standard audio and video files into mobile streaming 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. • Audio or video files can be converted into any format using Thinencoder. • Through Thin internet technology we can create a live mobile broadcast by capturing a live broadcast signal (satellite or cable) and transcode it for playback on a mobile device. • Various Bit-rates can be supported. • The dynamic bit rate adaptation mechanism works to automatically adjust the encoding and transmission parameters of the mobile delivery system based on network performance characteristics and terminal capabilities. The adaptation functioning is activated by the server after receiving feedback information from the client. Atul Garg / Piyush Maheshwari / Aditya Kawatra
CONCLUSIONS • We implemented a code to play video streams coming over the internet through the http: protocol and it successfully plays the video. • 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.mpg however, depending upon the network speed, it has some time delay, which is quite noticeable. • Also, UDP and socket connection was not supported in the Sun’s MIDP. Hence, we had to restrict ourselves to the http: connection only. • Real time streaming was not supported Atul Garg / Piyush Maheshwari / Aditya Kawatra
THANK YOU Atul Garg / Piyush Maheshwari / Aditya Kawatra