IP Library Granted Patent US 11,997,364
Granted Patent B2
US 11,997,364 · App. 17/852,704 · Granted May 28, 2024

Peer-to-peer data transfer for video on demand from an edge data storage device to a browser

Inventors: Vishwas Saxena (Bangalore, IN); Mukesh Kumar P (Bangalore, IN); Venkatesh Naidu Pamoti (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
H04N21/632H04N21/2187H04N21/25875H04N21/437H04N21/8456
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 11,997,364
App. No.
17/852,704
Granted
May 28, 2024
Kind
B2
Abstract

Systems and methods for peer-to-peer video data transfer on demand from an edge data storage device to a browser are described. A media device, such as a surveillance video camera, may include a media server and a WebRTC peer application. The media server may send media stream files using a first data transfer protocol to the WebRTC peer application in the media device. Using a second data transfer protocol, the WebRTC peer application on the media device may establish a secure peer-to-peer connection to a connection handler on a user device. The connection handler on the user device may provide the media stream files to an internet browser on the user device and the internet browser may display the media from the media stream file using an HTTP Live Streaming (HLS) library.

Claims (141)

1. A system, comprising:

a video camera comprising:

a processor;

a memory;

a network interface configured for communication over a network;

a data storage device configured to store media data;

a media server, stored in the memory for execution by the processor, configured to:

receive, from a peer application, a media request using a first data transfer protocol; and

send, to the peer application and responsive to the media request, a media stream file using the first data transfer protocol; and

the peer application, stored in the memory for execution by the processor, configured to:

establish a peer network connection with a client connection handler using a second data transfer protocol;

receive, from the client connection handler, a media request;

send, to the media server, the media request using the first data transfer protocol;

receive, from the media server, the media stream file using the first data transfer protocol;

segment the media stream file into a plurality of uniform file chunks; and

send, to the client connection handler and using the second data transfer protocol, the plurality of uniform file chunks over an established data channel in the peer network connection.

2. The system of claim 1 , wherein:

the video camera further comprises at least one image sensor configured to capture video images;

the media data comprises video data captured by the at least one image sensor; and

the media stream file includes video data from the media data stored in the data storage device.

3. The system of claim 1 , wherein:

the network interface is configured to receive network communication from a network address translation device using a local network address; and

establishing the peer network connection with the client connection handler includes establishing a secure socket between the video camera and a user device hosting the client connection handler.

4. The system of claim 1 , wherein:

the video camera further comprises a network server interface configured to receive, from an authentication server, a user device notification indicating a signaling server for establishing the peer network connection;

the peer application is further configured to:

determine a security value for verifying communication over the peer network connection;

send a connection offer to the signaling server; and

receive, from the signaling server, a connection answer to the connection offer;

a user device corresponding to the user device notification is configured to generate the connection answer responsive to the connection offer; and

establishing the peer network connection with the client connection handler is responsive to the connection answer.

5. The system of claim 4 , wherein establishing the peer network connection with the client connection handler includes:

exchanging, for the second data transfer protocol, a plurality of combinations of network addresses and ports for:

the peer application on the video camera; and

the client connection handler on the user device; and

implementing a transport layer security protocol compatible with the second data transfer protocol.

6. The system of claim 4 , further comprising:

the authentication server configured to:

receive a media connection request from the user device;

authenticate the media connection request based on at least one user credential associated with the media connection request;

determine, based on the media connection request, a target video camera identifier from a plurality of video camera identifiers supported by the authentication server, wherein the target video camera identifier corresponds to the video camera;

send, based on the media connection request, the user device notification to the video camera; and

initiate the signaling server to support negotiation of the peer network connection between the video camera and the user device.

7. The system of claim 4 , further comprising:

the signaling server configured to:

establish a signaling channel for use by the video camera and the user device;

receive, using the signaling channel, the connection offer from the peer application;

forward, using the signaling channel, the connection offer to the client connection handler;

receive, using the signaling channel, the connection answer from the client connection handler; and

forward, using the signaling channel, the connection answer to the peer application;

wherein the authentication server is further configured to:

determine signaling channel information for the signaling channel; and

send the signaling channel information to the video camera and the user device.

8. The system of claim 1 , wherein:

the media data comprises a time-based media stream indexed by time value; and

the media request comprises a range of time values.

9. The system of claim 1 , further comprising:

a user device comprising:

an internet browser configured to:

send, to the client connection handler, the media request using the first data transfer protocol;

receive, from the client connection handler, the media stream file using the first data transfer protocol; and

display the media stream file on the user device; and

the client connection handler configured to:

establish the peer network connection with the peer application using the second data transfer protocol;

receive, from the internet browser, the media request using the first data transfer protocol;

send, to the peer application, the media request using the second data transfer protocol;

receive, from the peer application, the media stream file using the second data transfer protocol;

generate a media request response containing the media stream file for the first data transfer protocol; and

send, to the internet browser, the media request response using the first data transfer protocol.

10. The system of claim 1 , wherein:

the first data transfer protocol includes hypertext transfer protocol over transfer control protocol;

the second data transfer protocol includes stream control transmission protocol over user datagram protocol; and

the media server is configured as a hypertext transfer protocol live streaming server.

11. A computer-implemented method, comprising:

establishing, between a peer application in a video camera and a client connection handler in a user device, a peer network connection using a second data transfer protocol;

receiving, at the peer application and from the client connection handler, a media request;

sending, by the peer application and to a media server in the video camera, the media request using a first data transfer protocol;

receiving, by the peer application and from the media server, a media stream file using the first data transfer protocol;

segmenting the media stream file into a plurality of uniform file chunks; and

sending, by the peer application to the client connection handler, the plurality of uniform file chunks over the peer network connection using the second data transfer protocol.

12. The computer-implemented method of claim 11 , wherein:

the video camera comprises:

at least one image sensor configured to capture video images;

a processor;

a memory;

a network interface configured for communication over a network; and

a data storage device configured to store video data captured by the at least one image sensor; and

the media stream file includes video data stored in the data storage device.

13. The computer-implemented method of claim 11 , further comprising:

receiving, by the video camera, network communication from a network address translation device using a local network address for the video camera; and

establishing, for the peer network connection, a secure socket between the video camera and the user device.

14. The computer-implemented method of claim 11 , further comprising:

receiving, by the video camera and from an authentication server, a user device notification indicating a signaling server for establishing the peer network connection;

determining, by the video camera, a security value for verifying communication over the peer network connection;

sending, by the peer application, a connection offer to the signaling server; and

receiving, by the peer application and from the signaling server, a connection answer to the connection offer, wherein establishing the peer network connection with the client connection handler is responsive to the connection answer.

15. The computer-implemented method of claim 14 , further comprising:

exchanging, for the second data transfer protocol, a plurality of combinations of network addresses and ports for:

the peer application on the video camera; and

the client connection handler on the user device; and

implementing a transport layer security protocol compatible with the second data transfer protocol.

16. The computer-implemented method of claim 14 , further comprising:

receiving, by the authentication server, a media connection request from the user device;

authenticating, by the authentication server, the media connection request based on at least one user credential associated with the media connection request;

determining, by the authentication server and based on the media connection request, a target video camera identifier from a plurality of video camera identifiers supported by the authentication server, wherein the target video camera identifier corresponds to the video camera;

sending, by the authentication server and based on the media connection request, the user device notification to the video camera; and

initiating, by the authentication server, the signaling server to support negotiation of the peer network connection between the video camera and the user device.

17. The computer-implemented method of claim 14 , further comprising:

determining, by the authentication server, signaling channel information for a signaling channel;

sending, by the authentication server, the signaling channel information to the video camera and the user device;

establishing, by the signaling server, the signaling channel for use by the video camera and the user device;

receiving, by the signaling server and using the signaling channel, the connection offer from the peer application;

forwarding, by the signaling server and using the signaling channel, the connection offer to the client connection handler;

receiving, by the signaling server and using the signaling channel, the connection answer from the client connection handler; and

forwarding, by the signaling server and using the signaling channel, the connection answer to the peer application.

18. The computer-implemented method of claim 11 , wherein:

the media stream file comprises a time-based media stream indexed by time value; and

the media request comprises a range of time values.

19. The computer-implemented method of claim 11 , further comprising:

sending, from an internet browser in the user device to the client connection handler, the media request using the first data transfer protocol;

receiving, by the client connection handler and from the internet browser, the media request using the first data transfer protocol;

sending, by the client connection handler and to the peer application, the media request using the second data transfer protocol;

receiving, by the client connection handler and from the peer application, the media stream file using the second data transfer protocol;

generating, by the client connection handler, a media request response comprising the media stream file for the first data transfer protocol, the media stream file segmented into the plurality of uniform file chunks;

sending, by the client connection handler and to the internet browser, the media request response using the first data transfer protocol;

receiving, by the internet browser and from the client connection handler, the segmented media stream file using the first data transfer protocol;

aggregating the plurality of uniform file chunks of the segmented media stream file at the internet browser; and

displaying, by the internet browser, the media stream file on the user device.

20. A video camera, comprising:

a processor;

a memory;

a network interface configured for communication over a network;

a data storage device configured to store video data;

means, stored in the memory for execution by the processor, for receiving, from a peer application, a video request using a first data transfer protocol;

means, stored in the memory for execution by the processor, for sending, to the peer application and responsive to the video request, a video stream file using the first data transfer protocol;

means, stored in the memory for execution by the processor, for establishing a peer network connection with a client connection handler using a second data transfer protocol;

means, stored in the memory for execution by the processor, for receiving, from the client connection handler, the video request;

means, stored in the memory for execution by the processor, for sending, to a video server, the video request using the first data transfer protocol;

means, stored in the memory for execution by the processor, for receiving, from the video server, the video stream file using the first data transfer protocol;

means, stored in the memory for execution by the processor, for segmenting the video stream file into a plurality of uniform file chunks; and

means, stored in the memory for execution by the processor, for sending, to the client connection handler and using the second data transfer protocol, the plurality of uniform file chunks over the peer network connection.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2022
From: SAXENA, VISHWAS; KUMAR P, MUKESH; PAMOTI, VENKATESH NAIDU
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060354/0132 →
Continuity (1)
Related Publication 20240007720A1 · Jan 4, 2024