IP Library › Granted Patent US 10,263,802
Granted Patent B2
US 10,263,802 · App. 15/208,585 · Granted Apr 16, 2019

Methods and devices for establishing connections with remote cameras

Inventors: Christopher Charles Burns (Santa Clara, CA); Gregory Cortis Clark (Mountain View, CA)
Assignee: GOOGLE LLC
H04L12/2807H04L12/282H04L12/4625H04L2012/285H04L2012/2841H04L2012/2849
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,263,802
App. No.
15/208,585
Filed
Jul 12, 2016
Granted
Apr 16, 2019
Kind
B2
Art Unit
2699
USPC
725/105
Abstract

The various embodiments described herein include methods, devices, and systems for presenting video feeds in a user interface. In one aspect, a method includes: (1) receiving a request to execute an application for communicating with a plurality of smart devices, including a plurality of cameras; (2) in response to receiving the request, establishing a connection for each of at least a subset of the cameras; (3) identifying a user interface for display to a user via the display, the user interface including a video feed from a particular camera; (4) after identifying the user interface, determining whether a connection has been established for the particular camera; (5) in accordance with a determination that the connection has been established for the particular camera, requesting, via the connection, the video feed for the particular camera; and (6) displaying the user interface with the video feed for the particular camera.

Claims (82)

1. A method, comprising:

at a client device having a display, one or more processors, and memory storing one or more programs for execution by the one or more processors:

receiving a request from a user to execute an application for communicating with a plurality of smart devices, the plurality of smart devices including a plurality of cameras;

in response to receiving the user request to execute the application, establishing a preliminary connection via one or more wireless networks for each of at least a subset of the plurality of cameras, wherein establishing each preliminary network connection comprises completing a communication handshake between the client device and the camera;

identifying a user interface for display to the user via the display based on one or more characteristics of the client device, the user interface including a video feed from a particular camera of the plurality of cameras;

after identifying the user interface for display, determining whether a preliminary connection has been established for the particular camera;

in accordance with a determination that the preliminary connection has been established for the particular camera, requesting, via the preliminary connection, the video feed for the particular camera; and

displaying the user interface with the video feed for the particular camera via the display.

2. The method of claim 1 , further comprising:

in accordance with a determination that the preliminary connection has not been established for the particular camera, establishing the preliminary connection for the particular camera; and

requesting, via the preliminary connection, the video feed for the particular camera.

3. The method of claim 1 , further comprising:

predicting a display order for the plurality of cameras; and

ranking the plurality of cameras in accordance with the predicted display order;

wherein establishing the preliminary connection for each of at least the subset of the plurality of cameras comprises establishing the preliminary connection for each of at least the subset of the plurality of cameras based on the ranking.

4. The method of claim 1 , wherein the identified user interface includes a plurality of video players for simultaneous display to the user, and the method further comprises:

determining that video feeds from a first subset of cameras of the plurality of cameras are to be displayed within the identified user interface, the first subset of cameras including the particular camera; and

assigning a video feed from each camera of the first subset of cameras to a video player of the plurality of video players, including assigning the video feed from the particular camera to a particular video player;

wherein displaying the user interface with the video feed comprises displaying a first view of the user interface including video feeds from each camera of the first subset of cameras.

5. The method of claim 4 , further comprising, for each camera in the first subset of cameras:

determining whether a preliminary connection has been established for the camera; and

in accordance with a determination that a preliminary connection has not been established for the camera, establishing a preliminary connection for the camera.

6. The method of claim 5 , wherein establishing the preliminary connection for the camera comprises:

prior to establishing the preliminary connection for the camera, determining whether a maximum number of preliminary connections has been reached; and

in accordance with a determination that the maximum number of preliminary connections has been reached:

based on a ranking of the preliminary connections, terminating a second preliminary connection; and

after terminating the second preliminary connection, establishing the preliminary connection for the camera.

7. The method of claim 4 , further comprising:

receiving a request from the user to display a second view of the user interface;

determining that video feeds from a second subset of cameras of the plurality of cameras are to be displayed within the second view of the user interface, wherein the second subset of cameras does not include the particular camera;

reassigning the particular video player to a video feed from a camera in the second subset of cameras; and

displaying the second view of the user interface including displaying video feeds from each camera of the second subset of cameras.

8. The method of claim 7 , wherein reassigning the particular video player to the video feed from the camera in the second subset of cameras comprises:

ceasing to display the video feed from the particular camera; and

displaying the video feed from the camera in the second subset of cameras.

9. The method of claim 7 , wherein establishing the preliminary connection for each of at least a subset of the plurality of cameras comprises establishing a preliminary connection for the camera in the second subset of cameras; and

the method further comprises:

after establishing the preliminary connection for the camera and before reassigning the particular video player, receiving the video feed from the camera; and

after reassigning the particular video player to the video feed from the camera in the second subset of cameras, transcoding the video feed from the camera.

10. The method of claim 1 , further comprising determining a video refresh rate for the video feed from the particular camera based on one or more connection parameters;

wherein displaying the user interface with the video feed comprises displaying the video feed at the determined video refresh rate.

11. The method of claim 1 , further comprising, in response to the request for the video feed from the particular camera, receiving a portion of the video feed corresponding to a previously detected motion event;

wherein displaying the user interface with the video feed comprises displaying the portion of the video feed corresponding to the previously detected motion event.

12. An electronic device, comprising:

a display;

one or more processors;

memory storing one or more programs to be executed by the one or more processors, the one or more programs comprising instructions for:

receiving a request from a user to execute an application for communicating with a plurality of smart devices, the plurality of smart devices including a plurality of cameras;

in response to receiving the user request to execute the application, establishing a preliminary connection via one or more wireless networks for each of at least a subset of the plurality of cameras, wherein establishing each preliminary network connection comprises completing a communication handshake between the electronic device and the camera;

identifying a user interface for display to the user via the display based on one or more characteristics of the electronic device, the user interface including a video feed from a particular camera of the plurality of cameras;

after identifying the user interface for display, determining whether a preliminary connection has been established for the particular camera;

in accordance with a determination that the preliminary connection has been established for the particular camera, requesting, via the preliminary connection, the video feed for the particular camera; and

displaying the user interface with the video feed for the particular camera via the display.

13. The electronic device of claim 12 , wherein the one or more programs further comprise instructions for:

in accordance with a determination that the preliminary connection has not been established for the particular camera, establishing the preliminary connection for the particular camera; and

requesting, via the preliminary connection, the video feed for the particular camera.

14. The electronic device of claim 12 , wherein the one or more programs further comprise instructions for:

predicting a display order for the plurality of cameras; and

ranking the plurality of cameras in accordance with the predicted display order;

wherein establishing the preliminary connection for each of at least the subset of the plurality of cameras comprises establishing the preliminary connection for each of at least the subset of the plurality of cameras based on the ranking.

15. The electronic device of claim 12 , wherein the identified user interface includes a plurality of video players for simultaneous display to the user, and wherein the one or more programs further comprise instructions for:

determining that video feeds from a first subset of cameras of the plurality of cameras are to be displayed within the identified user interface, the first subset of cameras including the particular camera; and

assigning a video feed from each camera of the first subset of cameras to a video player of the plurality of video players, including assigning the video feed from the particular camera to a particular video player;

wherein displaying the user interface with the video feed comprises displaying a first view of the user interface including video feeds from each camera of the first subset of cameras.

16. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs comprising instructions, which, when executed by an electronic device with a display and one or more processors, cause the electronic device to perform operations comprising:

receiving a request from a user to execute an application for communicating with a plurality of smart devices, the plurality of smart devices including a plurality of cameras;

in response to receiving the user request to execute the application, establishing a preliminary connection via one or more wireless networks for each of at least a subset of the plurality of cameras, wherein establishing each preliminary network connection comprises completing a communication handshake between the electronic device and the camera;

identifying a user interface for display to the user via the display based on one or more characteristics of the electronic device, the user interface including a video feed from a particular camera of the plurality of cameras;

after identifying the user interface for display, determining whether a preliminary connection has been established for the particular camera;

in accordance with a determination that the preliminary connection has been established for the particular camera, requesting, via the preliminary connection, the video feed for the particular camera; and

displaying the user interface with the video feed for the particular camera via the display.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the one or more programs further comprise instructions, which, when executed by the electronic device, cause the electronic device to perform operations comprising:

in accordance with a determination that the preliminary connection has not been established for the particular camera, establishing the preliminary connection for the particular camera; and

requesting, via the preliminary connection, the video feed for the particular camera.

18. The non-transitory computer-readable storage medium of claim 16 , wherein the one or more programs further comprise instructions, which, when executed by the electronic device, cause the electronic device to perform operations comprising:

predicting a display order for the plurality of cameras; and

ranking the plurality of cameras in accordance with the predicted display order;

wherein establishing the preliminary connection for each of at least the subset of the plurality of cameras comprises establishing the preliminary connection for each of at least the subset of the plurality of cameras based on the ranking.

19. The non-transitory computer-readable storage medium of claim 16 , wherein the identified user interface includes a plurality of video players for simultaneous display to the user, and wherein the one or more programs further comprise instructions, which, when executed by the electronic device, cause the electronic device to perform operations comprising:

determining that video feeds from a first subset of cameras of the plurality of cameras are to be displayed within the identified user interface, the first subset of cameras including the particular camera; and

assigning a video feed from each camera of the first subset of cameras to a video player of the plurality of video players, including assigning the video feed from the particular camera to a particular video player;

wherein displaying the user interface with the video feed comprises displaying a first view of the user interface including video feeds from each camera of the first subset of cameras.

Assignments (2)
CHANGE OF NAME Recorded Oct 20, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044567/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2016
From: BURNS, CHRISTOPHER CHARLES; CLARK, GREGORY CORTIS
To: GOOGLE INC.
Reel/Frame 039383/0485 →
Continuity (1)
Related Publication 20180019889A1 · Jan 18, 2018
Cited By (11)
US 1,074,695 US 1,087,164 US 1,091,607 US 1,096,801 US 1,100,948 US 1,119,998 US 1,122,942 US 1,145,836 US 12,350,479 US 12,487,737 US 12,544,514