IP Library Granted Patent US 11,621,986
Granted Patent B2
US 11,621,986 · App. 17/362,255 · Granted Apr 4, 2023

Peer-to-peer media streaming from an edge data storage device to a browser

Inventors: Vishwas Saxena (Bangalore, IN); Venkatesh Naidu Pamoti (Bangalore, IN); Mukesh Kumar P (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
H04L65/61H04L63/0281H04L63/0884H04L67/02H04L67/141H04L67/56H04L69/08
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,621,986
App. No.
17/362,255
Filed
Jun 29, 2021
Granted
Apr 4, 2023
Kind
B2
Art Unit
2441
USPC
709/219
Abstract

Systems and methods for peer-to-peer video streaming 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 proxy server. The media server may send media streaming files using a first data transfer protocol to the proxy server in the media device. Using a second data transfer protocol, the proxy server on the media device may establish a secure peer-to-peer connection to another proxy server on a user device. The proxy server on the user device may provide the media streaming files to an internet browser on the user device and the internet browser may display the media from the media streaming file.

Claims (151)

1. A system, comprising:

a media device 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 first proxy server, an encapsulated media request using a first data transfer protocol; and

send, to the first proxy server and responsive to the encapsulated media request, a media stream file using the first data transfer protocol; and

the first proxy server, stored in the memory for execution by the processor, configured to:

establish a peer network connection with a second proxy server using a second data transfer protocol;

receive, from the second proxy server, a media request;

encapsulate the media request according to the first data transfer protocol;

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

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

send, to the second proxy server and using the second data transfer protocol, the media stream file over the peer network connection.

2. The system of claim 1 , wherein:

the media device 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 further configured to receive network communication from a network address translation device using a local network address; and

establishing the peer network connection with the second proxy server includes establishing a secure socket between the media device and a user device hosting the second proxy server.

4. The system of claim 1 , wherein:

the media device 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 first proxy server 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 second proxy server is responsive to the connection answer.

5. The system of claim 4 , wherein establishing the peer network connection with the second proxy server includes:

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

the first proxy server on the media device; and

the second proxy server 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 media device identifier from a plurality of media device identifiers supported by the authentication server, wherein the target media device identifier corresponds to the media device;

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

initiate the signaling server to support negotiation of the peer network connection between the media device 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 media device and the user device;

receive, using the signaling channel, the connection offer from the first proxy server;

forward, using the signaling channel, the connection offer to the second proxy server;

receive, using the signaling channel, the connection answer from the second proxy server; and

forward, using the signaling channel, the connection answer to the first proxy server;

wherein the authentication server is further configured to:

determine signaling channel information for the signaling channel; and

send the signaling channel information to the media device and the user device.

8. The system of claim 1 , wherein:

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

the media server is further configured to:

receive, from the first proxy server, a first encapsulated media request for a manifest file for a target media stream;

send, to the first proxy server and responsive to the media request, the manifest file using the first data transfer protocol; and

receive, from the first proxy server, a second encapsulated media request for the media stream file; and

the media stream file corresponds a portion of the target media stream selected using media metadata in the manifest file.

9. The system of claim 1 , further comprising:

a user device comprising:

an internet browser configured to:

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

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

display the media stream file on the user device; and

the second proxy server configured to:

establish the peer network connection with the first proxy server using the second data transfer protocol;

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

reformat the media request according to the second data transfer protocol;

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

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

generate a media request response containing the media stream file according to 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 first proxy server in a media device and a second proxy server in a user device, a peer network connection using a second data transfer protocol;

receiving, at the first proxy server and from the second proxy server, a media request;

encapsulating, by the first proxy server, the media request according to a first data transfer protocol;

sending, by the first proxy server and to a media server in the media device, the encapsulated media request using the first data transfer protocol;

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

sending, by the first proxy server to the second proxy server, the media stream file over the peer network connection using the second data transfer protocol.

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

the media device 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 media device, network communication from a network address translation device using a local network address for the media device; and

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

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

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

determining, by the media device, a security value for verifying communication over the peer network connection;

sending, by the first proxy server, a connection offer to the signaling server; and

receiving, by the first proxy server and from the signaling server, a connection answer to the connection offer, wherein establishing the peer network connection with the second proxy server is responsive to the connection answer.

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

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

the first proxy server on the media device; and

the second proxy server 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 media device identifier from a plurality of media device identifiers supported by the authentication server, wherein the target media device identifier corresponds to the media device;

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

initiating, by the authentication server, the signaling server to support negotiation of the peer network connection between the media device 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 media device and the user device;

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

receiving, by the signaling server and using the signaling channel, the connection offer from the first proxy server;

forwarding, by the signaling server and using the signaling channel, the connection offer to the second proxy server;

receiving, by the signaling server and using the signaling channel, the connection answer from the second proxy server; and

forwarding, by the signaling server and using the signaling channel, the connection answer to the first proxy server.

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

receiving, by the media server and from the first proxy server, a first encapsulated media request for a manifest file for a target media stream;

sending, by the media server and responsive to the media request, the manifest file to the first proxy server using the first data transfer protocol;

selecting, by a user device and using metadata in the manifest file, a portion of the target media stream; and

receiving, by the media server and from the first proxy server, a second encapsulated media request for the media stream file, wherein the media stream file corresponds the portion of the target media stream.

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

sending, from an internet browser in the user device to the second proxy server, the media request using the first data transfer protocol;

receiving, by the second proxy server and from the internet browser, the media request using the first data transfer protocol;

reformatting, by the second proxy server, the media request according to the second data transfer protocol;

sending, by the second proxy server and to the first proxy server, the media request using the second data transfer protocol;

receiving, by the second proxy server and from the first proxy server, the media stream file using the second data transfer protocol;

generating, by the second proxy server, a media request response containing the media stream file according to the first data transfer protocol;

sending, by the second proxy server and to the internet browser, the media request response using the first data transfer protocol;

receiving, by the internet browser and from the second proxy server, the media stream file using the first data transfer protocol; 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;

a video server, stored in the memory for execution by the processor, comprising:

means, stored in the memory for execution by the processor, for receiving, from a first proxy server, an encapsulated video request using a first data transfer protocol; and

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

the first proxy server, stored in the memory for execution by the processor, comprising:

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

means, stored in the memory for execution by the processor, for receiving, from the second proxy server, a video request;

means, stored in the memory for execution by the processor, for encapsulating the video request according to the first data transfer protocol;

means, stored in the memory for execution by the processor, for sending, to the video server, the encapsulated 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; and

means, stored in the memory for execution by the processor, for sending, to the second proxy server and using the second data transfer protocol, the video stream file over the peer network connection.

Assignments (10)
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 →
RELEASE OF SECURITY INTEREST AT REEL 057651 FRAME 0296 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058981/0958 →
SECURITY INTEREST Recorded Sep 17, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 057651/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2021
From: SAXENA, VISHWAS; PAMOTI, VENKATESH NAIDU; P, MUKESH KUMAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 057136/0746 →