IP Library Granted Patent US 12,155,879
Granted Patent B2
US 12,155,879 · App. 17/314,661 · Granted Nov 26, 2024

Methods for uploading video data

Inventors: Gordon R. Daily (Cleveland, OH); Justin R. Hartman (Twinsburg, OH); Joel S. Helbling (Berea, OH); Ronald C. Hopper (Berea, OH)
Assignee: BOXCAST INC.
H04N21/2541H04L63/0209H04L63/0876H04L63/10H04N5/262H04N21/2187H04N21/231H04N21/234363H04N21/23439H04N21/26241H04N21/4223H04N21/4627H04N21/6125H04N21/63H04N21/64322H04N21/64746H04N21/812
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 12,155,879
App. No.
17/314,661
Granted
Nov 26, 2024
Kind
B2
Abstract

Methods are provided for uploading of video data to one or more media servers. The video data can be divided into data blocks and transmitted over a plurality of threads. Validation of the transmitted data is performed and transmission repeated if validation fails, ensuring that the video data has been successfully uploaded to the one or more media servers.

Claims (71)

1. A method for uploading video data, the method comprising:

dividing the video data into a plurality of video data blocks;

generating a plurality of threads based upon a number of outstanding video data blocks of the plurality of video data blocks, wherein the plurality of threads are configured to transmit the plurality of video data blocks to one or more media servers via the Internet;

selecting an unsent video data block of the plurality of video data blocks;

transmitting the selected video data block to the one or more media servers via at least one thread of the plurality of threads;

performing a data validation of the selected video data block, wherein if the data validation is successful the selected video data block is stored at the one or more media servers, and if the data validation fails, repeating the transmitting step for the selected video data block until the data validation is successful; and

repeating the selecting, transmitting, and performing steps for the plurality of data blocks until the one or more media servers determine successful receipt of the video data.

2. The method of claim 1 , wherein the data validation is performed at the one or more media servers.

3. The method of claim 1 , wherein successful data validation comprises a response from the one or more media servers before expiration of a timeout period.

4. The method of claim 1 , wherein at least a portion of the video data relates to a live event.

5. The method of claim 4 , further comprising:

authorizing access of the video data stored at the one or more media servers to at least one user based on authentication of one or more user credentials.

6. The method of claim 5 , wherein upon successful access authorization the at least one user can modify the video data.

7. The method of claim 6 , wherein modifying the video data comprises modifying at least one of the video data name, video data description, or video data date.

8. The method of claim 7 , further comprising capturing the video data from a video acquisition device.

9. The method of claim 8 , wherein capturing the video data is performed concurrently with the live event.

10. The method of claim 9 , further comprising:

registering a broadcast device, wherein upon successful registration, the broadcast device is configured to perform the transmitting step.

11. The method of claim 5 , further comprising generating a URL,

wherein the URL is configured to grant access to the video data.

12. The method of claim 1 , further comprising:

registering a broadcast device, wherein upon successful registration, the broadcast device is configured to perform the transmitting step.

13. The method of claim 12 , wherein registering the broadcast device comprises associating the broadcast device with at least one user.

14. The method of claim 1 , further comprising capturing the video data from a video acquisition device.

15. The method of claim 14 , wherein the step of capturing the video data is performed concurrently with a live event.

16. The method of claim 14 , further comprising enhancing the video data by modifying any one of the following: video resolution, compression loss, audio quality, file size, or frame rate.

17. The method of claim 1 , further comprising encrypting at least a portion of the video data.

18. The method of claim 1 , further comprising:

marking the selected video data block to indicate that the selected video data block is in transit.

19. The method of claim 1 , wherein upon successful data validation the selected video data block is stored at the one or more media servers using a requested offset.

20. The method of claim 1 , further comprising:

receiving a pseudo-event request for streaming video data related to a live event that has concluded; and

transmitting the video data from the one or more media servers to an end-client in response to the pseudo-event request.

21. The method of claim 1 , further comprising:

receiving a starting offset for the selected data block, wherein the starting offset defines the position of the selected data block within the video data;

subsequent to a successful data validation, storing the selected video data block at the one or more media servers according to the starting offset.

22. A method for transmitting video data, the method comprising:

dividing the video data into a plurality of video data blocks;

generating a plurality of threads based upon an amount of outstanding video data, wherein the plurality of threads are configured to transmit the plurality of video data blocks to one or more media servers via the Internet;

selecting an unsent video data block of the plurality of video data blocks;

transmitting the selected video data block to the one or more media servers via at least one thread of the plurality of threads;

performing a data validation of the selected video data block, wherein if the data validation is successful the selected video data block is stored at the one or more media servers, and if the data validation fails, repeating the transmitting step for the selected video data block until the data validation is successful;

repeating the selecting, transmitting, and performing steps for the plurality of data blocks until the one or more media servers determine successful receipt of the video data; and

transmitting the video data from a first server of the one or more media servers to a second server.

23. The method of claim 22 , wherein the second server is a storage server.

24. The method of claim 23 , wherein the storage server comprises one or more third-party cloud storage data buckets.

25. The method of claim 22 , further comprising:

receiving a starting offset for the selected data block, wherein the starting offset defines the position of the selected data block within the video data;

subsequent to a successful data validation, storing the selected video data block at the one or more media servers according to the starting offset.

26. A method for uploading video data, the method comprising:

dividing the video data into a plurality of video data blocks;

generating a plurality of threads, wherein the number of threads generated in based upon the amount of outstanding video data blocks of the plurality of video data blocks, wherein the plurality of threads are configured to transmit the plurality of video data blocks to one or more media servers via the Internet;

transmitting at least one of the video data blocks to the one or more media servers via at least one thread of the plurality of threads; and

performing a data validation of the at least one video data block, and if the data validation fails, repeating the transmitting step for the video data block until the data validation is successful.

27. The method of claim 26 , further comprising:

receiving a starting offset for the selected data block, wherein the starting offset defines the position of the selected data block within the video data;

subsequent to a successful data validation, storing the selected video data block at the one or more media servers according to the starting offset.

28. A method for transmitting video data, the method comprising:

dividing the video data into a plurality of video data blocks;

spawning a plurality of threads, wherein each thread is configured to transmit one or more video data blocks of the plurality of video data blocks from a broadcast device to one or more media servers via the Internet, wherein threads are spawned based upon a number of outstanding video data blocks;

at a first thread of the plurality of threads, (i) selecting an unsent video data block of the plurality of video data blocks; (ii) transmitting the selected video data block to the one or more media servers; and (iii) performing a data validation of the selected video data block, and if the data validation fails, repeating the transmitting step for the video data block until the data validation is successful; and

repeating the selecting, transmitting, and performing steps via at least one thread of the plurality of threads until no unsent video data blocks remain.

29. The method of claim 28 , further comprising:

receiving a starting offset for the selected data block, wherein the starting offset defines the position of the selected data block within the video data;

subsequent to a successful data validation, storing the selected video data block at the one or more media servers according to the starting offset.

30. The method of claim 29 , wherein the number of threads spawned is based on available resources at the broadcast device.

31. The method of claim 30 , further comprising:

subsequent to selecting the selected video data block, marking the selected video data block to indicate that the selected video data block is in transit.

32. The method of claim 30 , further comprising:

determining that no unsent video data blocks remain;

verifying successful receipt of the video data at the one or more media servers.

Assignments (3)
SECURITY INTEREST Recorded Oct 24, 2022
From: BOXCAST INC.
To: WESTERN ALLIANCE BANK
Reel/Frame 061515/0925 →
CHANGE OF NAME Recorded Sep 23, 2022
From: BOXCAST, LLC
To: BOXCAST INC.
Reel/Frame 061535/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2021
From: DAILY, GORDON R.; HELBLING, JOEL; HARTMAN, JUSTIN R.; HOPPER, RONALD C.
To: BOXCAST LLC
Reel/Frame 056411/0671 →
Continuity (5)
Continuation 16224003 · Dec 18, 2018
Continuation 14876080 · Oct 6, 2015
Continuation 13045719 · Mar 11, 2011
Provisional Application 61312773 · Mar 11, 2010
Related Publication 20210266620A1 · Aug 26, 2021
Cited By (1)
US 12,706,888