IP Library Patent Application 14675442
Patent Application
App. No. 14/675,442

SELECTIVELY UPLOADING VIDEOS TO A CLOUD ENVIRONMENT

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 None
App. No.
14/675,442
Filed
Mar 31, 2015
Art Unit
2449
USPC
709/219
Abstract

A cloud video system selectively uploads a high-resolution video and instructs one or more client devices to perform distributed processing on the high-resolution video. A client device registers high-resolution videos accessed by the client device from a camera communicatively coupled to the client device. A portion of interest within a low-resolution video transcoded from the high-resolution video is selected. A task list is generated specifying the selected portion of the high-resolution video and at least one task to perform on the portion of the high-resolution video. Commands are transmitted to prompt the client device to perform the at least one task on the specified portion of the high-resolution video according to the task list. The specified portion of the high-resolution video is modified according to the task list and uploaded to the cloud. Example tasks include transcoding, applying edits, extracting metadata, and generating highlight tags.

Claims (67)

1 . A method for uploading a high-resolution video, the method comprising:

receiving, from a client device, a low-resolution video transcoded from a high-resolution video, the low-resolution video comprising frames having a lower resolution than frames of the high-resolution video;

selecting a portion of interest within the low-resolution video, the selected portion of interest used to obtain a corresponding portion of the high-resolution video from which the selected portion of interest within the low-resolution video was transcoded;

transmitting commands to the client device to prompt the client device to upload the corresponding portion of the high-resolution video;

receiving the corresponding portion of the high-resolution video from the client device; and

storing the corresponding portion of the high-resolution video.

2 . The method of claim 1 , wherein selecting the portion of interest within the low-resolution video comprises:

providing for display, through a video editing interface, the low-resolution video;

obtaining an edit decision list describing an edit made by a user to the low-resolution video through the video editing interface; and

identifying the corresponding portion of the high-resolution video from a portion comprising a video time of the edit to the low-resolution video, the edit time indicated by the edit decision list.

3 . The method of claim 2 , wherein the corresponding portion of the high-resolution video received from the client device has been modified according to the edit decision list.

4 . The method of claim 1 , wherein selecting the portion of interest within the low-resolution video comprises:

obtaining a highlight tag indicating a video time of the event of interest, the highlight tag included in metadata of the high-resolution video; and

selecting the portion of interest within the low-resolution video comprising video times within a threshold time interval from a video time indicated by the highlight tag.

5 . The method of claim 1 , wherein receiving the low-resolution video from the client device comprises:

obtaining a highlight tag indicating that the high-resolution video comprises an event of interest, the highlight tag included in metadata of the high-resolution video; and

selecting, from a plurality of videos in response to the highlight tag, the low-resolution video (a) for transcoding from the high-resolution video associated with the highlight tag and (b) for uploading.

6 . The method of claim 1 , wherein receiving the low-resolution video from the client device comprises:

receiving, from the client device, registration of the high-resolution video accessible by the client device from a camera communicatively coupled to the client device;

transmitting commands to the client device to prompt the client device to transcode the high-resolution video into the low-resolution video comprising frames at the lower resolution than frames of the high-resolution video; and

receiving, from the client device, the low-resolution video transcoded from the high-resolution video.

7 . The method of claim 1 , wherein transmitting the commands to the client device to prompt the client device to upload the corresponding portion of the high-resolution video comprises:

obtaining a device status report from the client device indicating connectivity resources of the client device; and

transmitting commands to prompt the client device to upload the corresponding portion of the high-resolution video in response to available bandwidth of the client device indicated by the device status report.

8 . The method of claim 1 , wherein the client device is one of a plurality of client devices uploading respective high-resolution videos, and wherein transmitting the commands to the client device to prompt the client device to upload the corresponding portion of the high-resolution video comprises:

obtaining a device status report from each of the plurality of client devices, each device status report indicating memory resources of a corresponding client device of the plurality of client devices;

determining an upload order for uploading high-resolution videos from the plurality of client devices, the upload order prioritizing uploads from client devices with lower memory resources than other client devices of the plurality; and

transmitting commands to the plurality of client devices to prompt the plurality of client devices to upload their respective high-resolution videos according to the determined upload order.

9 . The method of claim 1 , wherein the client device is one of a plurality of client devices each uploading a respective high-resolution video, and wherein transmitting the commands to the client device to prompt the client device to upload the corresponding portion of the high-resolution video comprises:

determining an upload schedule for the plurality of client devices according to connectivity resources, memory resources, and processing resources of a media server receiving and storing uploaded high-resolution videos; and

transmitting commands to the plurality of client devices to prompt the plurality of client devices to upload their respective high-resolution videos according to the determined upload schedule.

10 . The method of claim 1 , wherein the client device is one of a plurality of client devices each uploading a respective high-resolution video, and wherein transmitting the commands to the client device to prompt the client device to upload the corresponding portion of the high-resolution video comprises:

determining upload bandwidth allocations for each of the plurality of client devices according to connectivity resources and processing resources available to store high-resolution videos once uploaded; and

transmitting commands to the plurality of client devices to prompt the plurality of client devices to upload their respective high-resolution videos according to the determined upload bandwidth allocations.

11 . The method of claim 1 , wherein storing the corresponding portion of the high-resolution video comprises:

replacing the selected portion of interest within a stored copy of the low-resolution video with the corresponding portion of the high-resolution video.

12 . A non-transitory computer-readable medium storing instructions that when executed cause a processor to:

receive, from a client device, a low-resolution video transcoded from a high-resolution video, the low-resolution video comprising frames having a lower resolution than frames of the high-resolution video;

select a portion of the high-resolution video according to a portion of interest depicted in the selected portion of the low-resolution video;

instruct the client device to upload a corresponding portion of the high-resolution video from which the selected portion of the low-resolution video was transcoded;

receive the corresponding portion of the high-resolution video; and

store the corresponding portion of the high-resolution video.

13 . The computer-readable medium of claim 12 , wherein the instructions to select the portion of interest within the low-resolution video further comprise instructions that when executed cause the processor to:

provide for display, through a video editing interface, the low-resolution video;

obtain an edit decision list describing an edit made by a user to the low-resolution video through the video editing interface; and

identify the corresponding portion of the high-resolution video from a portion comprising a video time of the edit to the low-resolution video, the edit time indicated by the edit decision list.

14 . The computer-readable medium of 13, wherein the corresponding portion of the high-resolution video received from the client device has been modified according to the edit decision list.

15 . The computer-readable medium of claim 12 , wherein the instructions to select the portion of interest within the low-resolution video further comprise instructions that when executed cause the processor to:

obtain a highlight tag indicating a video time of the event of interest, the highlight tag included in metadata of the high-resolution video; and

select the portion of interest within the low-resolution video comprising video times within a threshold time interval from a video time indicated by the highlight tag.

16 . The computer-readable medium of claim 12 , wherein the instructions to receive the low-resolution video from the client device further comprise instructions that when executed cause the processor to:

obtain a highlight tag indicating that the high-resolution video comprises an event of interest, the highlight tag included in metadata of the high-resolution video; and

select, from a plurality of videos in response to the highlight tag, the low-resolution video (a) for transcoding from the high-resolution video associated with the highlight tag and (b) for uploading.

17 . The computer-readable medium of claim 12 , wherein the instructions to receive the low-resolution video from the client device further comprise instructions that when executed cause the processor to:

receive, from the client device, registration of the high-resolution video accessible by the client device from a camera communicatively coupled to the client device;

transmit commands to the client device to prompt the client device to transcode the high-resolution video into the low-resolution video comprising frames at the lower resolution than frames of the high-resolution video; and

receive, from the client device, the low-resolution video transcoded from the high-resolution video.

18 . The computer-readable medium of claim 12 , wherein the instructions to transmit the instructions to the client device to prompt the client device to upload the corresponding portion of the high-resolution video further comprise instructions that when executed cause the processor to:

obtain a device status report from the client device indicating connectivity resources of the client device; and

transmit commands to prompt the client device to upload the corresponding portion of the high-resolution video in response to available bandwidth of the client device indicated by the device status report.

19 . The computer-readable medium of claim 12 , wherein the client device is one of a plurality of client devices uploading respective high-resolution videos, and wherein the instructions to transmit the instructions to the client device to prompt the client device to upload the corresponding portion of the high-resolution video further comprise instructions that when executed cause the processor to:

obtain a device status report from each of the plurality of client devices, each device status report indicating memory resources of a corresponding client device of the plurality of client devices;

determine an upload order for uploading high-resolution videos from the plurality of client devices, the upload order prioritizing uploads from client devices with lower memory resources than other client devices of the plurality; and

transmit commands to the plurality of client devices to prompt the plurality of client devices to upload their respective high-resolution videos according to the determined upload order.

20 . The computer-readable medium of claim 12 , wherein the client device is one of a plurality of client devices each uploading a respective high-resolution video, and wherein the instructions to transmit the instructions to the client device to prompt the client device to upload the corresponding portion of the high-resolution video further comprise instructions that when executed cause the processor to:

determine an upload schedule for the plurality of client devices according to connectivity resources, memory resources, and processing resources of a media server receiving and storing uploaded high-resolution videos; and

transmit commands to the plurality of client devices to prompt the plurality of client devices to upload their respective high-resolution videos according to the determined upload schedule.

Assignments (3)
RELEASE OF PATENT SECURITY INTEREST Recorded Jan 25, 2021
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: GOPRO, INC.
Reel/Frame 055106/0434 →
SECURITY AGREEMENT Recorded Mar 28, 2016
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 038184/0779 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2016
From: SIEVERT, OTTO K.; OSBORNE, PAUL D.; WOODMAN, NICHOLAS D.; YOUEL, JEFFREY S.; DUDAS, DAVID
To: GOPRO, INC.
Reel/Frame 037648/0807 →