by: atul garg (2004ee10319) aditya kawatra (2004ee10313)
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 PresentationTRANSCRIPT
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)
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. .
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.
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
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.
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
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
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.)
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
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).
1111 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra
Supported Protocols and SyntaxSupported Protocols and Syntax
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.
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.
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.
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
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.
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.
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.
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.
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
2121 of 21 of 21Atul Garg / Piyush Maheshwari / Aditya KawatraAtul Garg / Piyush Maheshwari / Aditya Kawatra
THANK YOUTHANK YOU