# Patent

## Title
Streaming media for portable devices

## Abstract

A system and method for allowing hand-held/wireless device devices to (1) provide audio/video conferencing; (2) access AV content through streaming and cloud transfer; and (3) offer hand-held and computer access to cameras and sensors for surveillance using ordinary personal computers as proxy servers is described. In a first aspect, a remote view streaming system which comprises a webcam server which enables streaming video over a network is disclosed. The system includes a portable device. The portable device includes a client application. The portable device is configured to receive the streaming video from the network and display it on a screen. The system includes a proxy server for authenticating a connection between the webcam server and the portable device. In a second aspect, a portable device is disclosed. The portable device comprises a client application; wherein the client application includes authentication information to allow connection to the proxy server and in turn can be connected directly to a webcam server if the webcam server has proper authentication.

## Background
CROSS REFERENCE TO RELATED APPLICATION
Under 35 USC 119(e), this application claims the benefit of U.S. Patent Application No. 61/315,848, entitled “STREAMING MEDIA FOR HAND-HELD/WIRELESS DEVICES,” filed on Mar. 19, 2010, which is incorporated herein by reference.


FIELD OF THE INVENTION
The present invention relates generally to portable devices and more particularly to a method and system for streaming media thereto.
BACKGROUND OF THE INVENTION
Substantial interest for extending the usefulness of hand-held/wireless device devices for the acquisition of live and stored content through streaming media to hand-held devices is desirable. The present invention addresses such a need.
SUMMARY OF THE INVENTION
A system and method for allowing hand-held/wireless device devices to (1) provide audio/video conferencing; (2) access AV content through streaming and cloud transfer; and (3) offer hand-held and computer access to cameras and sensors for surveillance using ordinary personal computers as proxy servers is described.
In a first aspect, a remote view streaming system which comprises a webcam server which enables streaming video over a network is disclosed. The system includes a portable device. The portable device includes a client application. The portable device is configured to receive the streaming video from the network and display it on a screen. The system includes a proxy server for authenticating a connection between the webcam server and the portable device.
In a second aspect, a portable device is disclosed. The portable device comprises a client application; wherein the client application includes authentication information to allow connection to the proxy server and in turn can be connected directly to a webcam server if the webcam server has proper authentication.



BRIEF DESCRIPTION OF DRAWINGS
The accompanying drawings illustrate an embodiment of the present invention and, together with the description, serve to explain the principle of the invention. One skilled in the art will recognize that the particular embodiments illustrated in the drawings are merely exemplary, and are not intended to limit the scope of the present invention.
FIG. 1 is a diagram of a remote view streaming system in accordance with an embodiment.
FIG. 2 is a flow chart of a process for setting up the remote view streaming system in accordance with the present invention.
FIG. 3 is a flow chart of a process for utilizing the remote control streaming system in accordance with the present invention.



DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
The present invention relates generally to portable devices and more particularly to a method and system for streaming media thereto. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.
DEFINITIONS
1. Universal Plug and Play (UPnP).
The UPnP architecture allows device-to-device networking of personal computers, networked home appliances, consumer electronics devices and wireless devices. It is a distributed, open architecture protocol based on established standards such as the Internet Protocol Suite (TCP/IP), HTTP, XML, and SOAP. UPnP control points are devices which use UPnP protocols to control UPnP devices.
The UPnP architecture supports zero configuration networking. A UPnP compatible device from any vendor can dynamically join a network, obtain an IP address, announce its name, convey its capabilities upon request, and learn about the presence and capabilities of other devices. Dynamic Host Configuration Protocol (DHCP) and Domain Name System (DNS) servers are optional and are only used if they are available on the network. Devices can disconnect from the network automatically without leaving state information.
2. NAT Transversal NAT-T (NAT Traversal in the IKE) is a method of enabling IPsec-protected IP datagram's to pass through a network address translator (NAT). It is also a technique for TCP-IP and or VOP connections.
3. Transmission Control Protocol (TCP).
TCP provides a communication service at an intermediate level between an application program and the Internet Protocol (IP). That is, when an application program desires to send a large chunk of data across the Internet using IP, instead of breaking the data into IP-sized pieces and issuing a series of IP requests, the software can issue a single request to TOP and let TOP handle the IP details.
IP works by exchanging pieces of information called packets. A packet is a sequence of octets and consists of a header followed by a body. The header describes the packet's destination and, optionally, the routers to use for forwarding until it arrives at its destination. The body contains the data IP is transmitting.
Due to network congestion, traffic load balancing, or other unpredictable network behavior, IP packets can be lost, duplicated, or delivered out of order. TOP detects these problems, requests retransmission of lost data, rearranges out-of-order data, and even helps minimize network congestion to reduce the occurrence of the other problems. Once the TOP receiver has reassembled the sequence of octets originally transmitted, it passes them to the application program. Thus, TOP abstracts the application's communication from the underlying networking details.
4. NAT Transversal. A Web Exclusive from Windows IT Pro . . . NAT-T uses UDP port 4500 and is quickly being adopted by many organizations.
Features
A streaming media process in accordance with an embodiment provides a means for direct connections with the user's proxy server for remote connectivity, eliminating the streaming load on the host central server. A streaming media process in accordance with an embodiment also provides a means for proxy to hand-held/wireless device client to exchange authentication keys enabling hand-held/wireless device/proxy server connection.
A streaming media process in accordance with an embodiment provides a means for managing media video integrity through frame rate controls. It also provides a streaming media process in accordance with an embodiment which provides a means for recording proxy server source video remotely using a hand-held/wireless device. Moreover, a streaming media process in accordance with an embodiment provides a means for eliminating blocking artifacts on the playback stream from proxy server to hand-held/wireless device.
A streaming media process in accordance with an embodiment provides a means for zooming video images on a hand-held/wireless device. A streaming media process in accordance with an embodiment also provides a means for eliminating media streams to multiple destinations through direct connection between client and server.
A streaming media process in accordance with an embodiment provides a means for improving media stream detection through direct connect simplicity. A streaming media process in accordance with an embodiment also automatically detects a camera (proxy) server using one central (host) proxy server allowing for a direct connection. In addition, a streaming media process in accordance with an embodiment supports Windows 2000/XP/Vista, as well as the Mac OS.
A streaming media process in accordance with an embodiment will send SMS text alerts upon a change in proxy server's video content. Moreover, a streaming media process in accordance with an embodiment will record and time stamp shifts in video content and enable SMS Alert to hand-held/wireless devices.
A streaming media process in accordance with an embodiment supports connectivity with IP Camera with JPEG/MJPEG and H.264 Protocols. A streaming media process in accordance with an embodiment also provides a method for piercing firewall/proxy piercing. In addition, a streaming media process in accordance with an embodiment provides a method for remotely saving/recording screen shots.
A system that utilizes a streaming media process in accordance with the present invention can take the form of an entirely hardware implementation, an entirely software implementation, or an implementation containing both hardware and software elements. In one implementation, this detection procedure is implemented in software, which includes, but is not limited to, application software, firmware, resident software, microcode, etc.
Furthermore, the streaming media process can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and an optical disk. Current examples of optical disks include DVD, compact disk-read-only memory (CD-ROM), and compact disk-read/write (CD-R/W). To describe the features of the present invention in more detail, refer now to the following description in conjunction with the accompanying Figures.
Remote View Application
An implementation of the present invention utilizes a remote view streaming system. FIG. 1 is a diagram of a remote view streaming system in accordance with an embodiment. The remote view streaming system has three modules.
1) A webcam server 12 within a computer 15 which enables streams of live or recorded video over a public network 17 via a video player 19 or a camera 21 coupled to the computer 15.
2) A portable device 13, such as a smartphone, PDA, tablet computer such as the IPAD or other handheld device. The portable device 13 includes a client application 14. The client application 14 receives the live or recorded video from the network 17 and displays the video on a screen of the portable device 13.
3) A proxy server 16 coupled to the network 17, which is the mediator between the webcam server 12 and the client application 14 for establishment of a direct connection therebetween.
Operation
FIG. 2 is a flow chart of a process for setting up the remote view streaming system in accordance with the present invention. First, the user downloads the client application, such as a smartphone client, onto their portable device such as a smartphone, via step 102. Next, the user downloads the webcam server onto their computer system such as a PC or Apple computer, via step 104. Then, a proxy server is deployed on a public network, such as the Internet. Both the client application and the webcam server are configured with the URL of the proxy server before deployment, via step 106.
The user can pair as many webcam servers as desired to their client application by being connected to the same network. The user can manually pair by typing in a key on the webcam server. The user can then go anywhere and login to servers they had previously paired with UPNP without being on the same network (it does not matter whether it is a private or public IP).
FIG. 3 is a flow chart of a process for utilizing the remote control streaming system in accordance with the present invention. The user starts the webcam server. First, the webcam server registers itself with the proxy server, via step 202. The proxy server then stores the webcam server's provided information in a relational database, via step 204. The webcam server re-registers itself from time to time to remain active in the relational database.
The user starts the client application by acquiring any key from the proxy server to an active webcam server list, via step 206. The proxy server acquires one or more keys from a relational database and provides all the information to the client application to establish a direct connection with the webcam server, via step 208.
The client application receives the active list of webcam servers and displays it on portable device for the user to select, via step 210. The user selects any webcam server listed on the portable device and the portable device then makes a direct connection with a webcam server, via step 212.
When the webcam server gets a request from the client application for a connection, it then authenticates the client application using the key shared during the previous pairing process, via step 214. If a match is confirmed, the webcam server permits the connection to be established. Otherwise it disallows the connection, via step 216.
Advantages
The user can manually select from the proxy server live (video/images) from the camera. The user can also select and record from the proxy server's camera upon detection of motion (shift in content). Therefore, a push notification can be sent to the smartphone that motion has been detected. Then the user of the smartphone can review the recording and its history.
The user may select frame rates increasing/decreasing live streaming smoothness (correction for bandwidth variances). The user can also choose to receive SMS push notifications when movement is detected and or recorded. The user can remotely load archived videos on their PC and play them on their portable device, such as a smartphone. The user can also apply all previously proven hand-held hand gestures (pinch in/out, double tapping, etc).
The user can refresh the active webcam server list at any time. A universal plug and play (UPnP) is supported for network address translation (NAT) traversal. Motion detection settings can be changed for either the client application or the webcam server.
Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.

## Claims

1. A remote view streaming system which comprises:
at least one webcam server streaming video from a camera over a network;
a portable device including a client application, the portable device configured to remotely receive the streaming video from the at least one webcam server via the network and display the streaming video on a screen of the portable device, wherein push notifications are received by the portable device when motion is detected on the streaming video; and
a proxy server for authenticating and pairing a connection between the at least one webcam server and the portable device, wherein both the at least one webcam server and the portable device are configured with a URL of the proxy server;
the at least one webcam server registers itself with the proxy server, and is listed on an active list of webcam servers, wherein the proxy server stores the at least one webcam server information in a relational database, wherein the proxy server maintains the active list of webcam servers and shares at least one key to the active list of webcam servers with the portable device, thereby enabling the portable device to view the active list of webcam servers on the screen; and
wherein the at least one key is acquired by the proxy server from the relational database and provides the at least one webcam server's information to the client application to establish the connection between the at least one webcam server and the portable device using the at least one key.

2. The remote view streaming system of claim 1, wherein the at least one webcam server comprises a plurality of webcam servers which are paired to the client application.

3. The remote view streaming system of claim 1, wherein the client application receives the active list of webcam servers after the proxy server authenticates the portable device using the at least one key.

4. The remote view streaming system of claim 1, wherein the portable device comprises a smartphone and the client application comprises a smartphone client.

5. The remote view streaming system of claim 1, wherein the portable device comprises any of a smartphone, PDA, and tablet computer.

6. A portable device comprising:
a processor;
a memory device coupled to the processor; and
a client application coupled to the memory device; wherein the client application, when executed by the processor, remotely receives streaming video from a camera associated with at least one webcam server via a network and receives push notifications when motion is detected on the streaming video, wherein both the at least one webcam server and the portable device are configured with a URL of the proxy server, wherein the client application includes authentication information to allow connection to a proxy server and in turn, connection directly to the at least one webcam server if the at least one webcam server has proper authentication, the at least one webcam server registers itself with the proxy server, and is listed on an active list of webcam servers, wherein the proxy server stores the at least one webcam server information in a relational database, wherein the proxy server maintains an active list of webcam servers and shares at least one key to the active list of webcam servers with the portable device thereby enabling the portable device to view the active list of webcam servers on the screen; and wherein the at least one key is acquired by the proxy server from the relational database and provides the at least one webcam server's information to the client application to establish the connection with the at least one webcam server using the at least one key.

7. The portable device of claim 6, wherein the at least one webcam server comprises a plurality of webcam servers which are paired to the client application.

8. The portable device of claim 6, wherein the client application receives the active list of webcam servers after the proxy server authenticates the portable device using the at least one key.

9. The portable device of claim 6, wherein the portable device is any of a smartphone, PDA, and tablet computer.