IP Library Granted Patent US 8,484,358
Granted Patent B2
US 8,484,358 · App. 13/448,227 · Granted Jul 9, 2013

Real-time video detector

Inventors: Erik R. Swenson (San Jose, CA); Jaime Heilpern (San Francisco, CA); Robert Oberhofer (Belmont, CA); John Hansen (San Jose, CA)
Assignee: Skyfire Labs, Inc.
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 8,484,358
App. No.
13/448,227
Granted
Jul 9, 2013
Kind
B2
Abstract

A request to retrieve data from a client device is intercepted by a video detector. The video detector determines if the request is for retrieving a video file. If the request is for a video file, and the video file is deemed to be transcoded to be displayed on the client device, the video detector forwards the request to a video optimizer along with encoding parameters. Encoding parameters are selected by the video detector based on properties of the client device, networks accessible by the client device, conditions of those networks, properties of the requested video and the type of video requested. The encoding parameters also include a file format type to which the requested video is to be transcoded.

Claims (30)

1. A method for detecting a video request, the method comprising: monitoring communications on a network to detect sessions between a client device and a server by intercepting requests originating from the client device; determining if a request originating from the client device is associated with a session for retrieving a video from the server based on information associated with the request; determining to transcode the video based on properties of the client device; and replacing, in response to the video being identified for transcoding, the detected video session between the client device and the server with a new session at an optimizer, the optimizer retrieving the video from the server and transcoding the video for the client device, wherein replacing the detected video session further comprises redirecting the request originating from the client device to an optimizer by generating a uniform resource locator (URL) with a redirect request to the optimizer for establishing the new session.

2. The method of claim 1 , wherein a request for retrieving a video is detected based on a file name extension in the request, the file name extension identified in payload of the request.

3. The method of claim 1 , wherein a request for retrieving a video is detected based on a user agent and a referrer header of the request.

4. The method of claim 1 , further comprising generating an encoding profile for the video identified for transcoding, the encoding profile generation based on at least one of properties of a network connection available to the client device, properties of the client device, properties of the requested video and a type of video file requested.

5. The method of claim 4 , further comprising determining to transcode the video based on the encoding profile generated for the video request.

6. The method of claim 1 , further comprising determining a transcoded video size of the video based on audio and video properties of the video.

7. The method of claim 6 , wherein an audio and video property of the video includes a bit rate of the video.

8. A method for detecting a video request, the method comprising:

monitoring Real Time Messaging Protocol (RTMP) communications between a client device and a server to detect sessions for providing video content to the client device by intercepting request made in the Real Time Messaging Protocol; and

replacing, in response to identifying a request associated with a session for providing video content to the client device, the session with a new session to provide optimized video content to the client by:

generating a hyper text transfer protocol (HTTP) POST/PUT request based on the intercepted request;

sending the HTTP POST/PUT request to a video optimizer;

receiving an optimized video from the video optimizer based on the sent HTTP POST/PUT request; and

sending the optimized video to the client.

9. The method of claim 8 , further comprising adaptively limiting bit rates available to the client device.

10. A non-transitory computer-readable storage medium storing executable computer program instructions for detecting a video request, the computer program instructions comprising instructions for: monitoring communications on a network to detect sessions between a client device and a server by intercepting requests originating from the client device; determining if a request originating from the client device is associated with a session for retrieving a video from the server based on information associated with the request; determining to transcode the video based on properties of the client device; and replacing, in response to the video being identified for transcoding, the detected video session between the client device and the server with a new session at an optimizer, the optimizer retrieving the video from the server and transcoding the video for the client device, wherein replacing the detected video session further comprises redirecting the request originating from the client device to an optimizer by generating a uniform resource locator (URL) with a redirect request to the optimizer for establishing the new session.

11. The computer-readable storage medium of claim 10 , wherein a request for retrieving a video is detected based on a file name extension in the request, the file name extension identified in payload of the request.

12. The computer-readable storage medium of claim 10 , wherein a request for retrieving a video is detected based on a user agent and a referrer header of the request.

13. The computer-readable storage medium of claim 10 , further comprising instructions for generating an encoding profile for the video identified for transcoding, the encoding profile generation based on at least one of properties of a network connection available to the client device, properties of the client device, properties of the requested video and a type of video file requested.

14. The computer-readable storage medium of claim 13 , further comprising instructions for determining to transcode the video based on the encoding profile generated for the video request.

15. The computer-readable storage medium of claim 10 , further comprising instructions for determining a transcoded video size of the video based on audio and video properties of the video.

16. The computer-readable storage medium of claim 15 , wherein an audio and video property of the video includes a bit rate of the video.

17. The computer-readable storage medium storing executable computer program instructions for detecting a video request, the computer program instructions comprising instructions for:

monitoring Real Time Messaging Protocol (RTMP) communications between a client device and a server to detect sessions for providing video content to the client device by intercepting requests made in the Real Time Messaging Protocol; and

replacing, in response to identifying a request associated with a session for providing video content to the client device, the session with a new session to provide optimized video content to the client by:

generating a hyper text transfer protocol (HTTP) POST/PUT request based on the intercepted request;

sending the HTTP POST/PUT request to a video optimizer;

receiving an optimized video from the video optimizer based on the sent HTTP POST/PUT request; and

sending the optimized video to the client.

18. The computer-readable storage medium of claim 17 , further comprising instructions for adaptively limiting bit rates available to the client device.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2025
From: OTELLO CORPORATION ASA
To: TIR TECHNOLOGIES LIMITED
Reel/Frame 071165/0584 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2023
From: PERFORMANCE AND PRIVACY IRELAND LIMITED
To: OTELLO CORPORATION ASA
Reel/Frame 063188/0195 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2017
From: OPERA SOFTWARE IRELAND LTD.
To: PERFORMANCE AND PRIVACY IRELAND LTD.
Reel/Frame 042076/0473 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2014
From: SKYFIRE LABS, INC.
To: OPERA SOFTWARE IRELAND LIMITED
Reel/Frame 032827/0175 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2012
From: SWENSON, ERIK R.; BHANDARI, NITIN; HEILPERN, JAIME; OBERHOFER, ROBERT; HANSEN, JOHN
To: SKYFIRE LABS, INC.
Reel/Frame 028054/0237 →
Continuity (2)
Provisional Application 61476214 · Apr 15, 2011
Related Publication 20120265847A1 · Oct 18, 2012