IP Library › Granted Patent US 12,341,844
Granted Patent B2
US 12,341,844 · App. 17/841,075 · Granted Jun 24, 2025

Self-driven adaptive upload

Inventors: Nicholas Tegan Heckman (Kirkland, WA); Ohad Atia (Redmond, WA); Nitin Suri (Redmond, WA); Steven Craig Peterson (Bloomington, MN)
Assignee: Microsoft Technology Licensing, LLC
H04L67/06H04L65/403H04L65/75H04L67/12
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,341,844
App. No.
17/841,075
Granted
Jun 24, 2025
Kind
B2
Abstract

A method and system for uploading a media file container from a first device to a second device are described herein, including receiving an instruction to upload the media file container and in response, reading a metadata box of the media file container to locate a track box containing information about audio data, including a size and a location of the audio data, in a media data box of the media file container, identifying the audio data in the media data box using the information from the track box, packaging the identified audio data from the media data box into an audio byte stream separate from the media data box, and uploading the audio byte stream to the second device prior to completing upload of the media file container.

Claims (97)

1. A system for uploading a media file container from a first device to a second device configured to process or distribute the media file container, comprising:

one or more processors; and

a memory storing computer-executable instructions that, when executed, cause the one or more processors to control the system to perform operations comprising:

responsive to receiving an instruction to upload the media file container to the second device, performing a series of instructions according to a set of upload rules, comprising:

reading a metadata box of the media file container to locate a track box containing information about audio data, including a size and a location of the audio data, in a media data box of the media file container;

identifying the audio data in the media data box using the information from the track box;

packaging the identified audio data from the media data box into an audio byte stream separate from the media data box;

creating a schedule for uploading the audio byte stream to the second device prior to completing upload of the media file container, wherein the schedule dictates that the audio byte stream is to be communicated from the first device to the second device in its entirety before completing upload of remaining portions of the media file container from the first device to the second device; and

based on the created schedule, completing uploading the audio byte stream from the first device to the second device prior to completing the upload of the media file container, and

subsequent to completing uploading the audio byte stream from the first device to the second device, completing the upload of the media file container from the first device to the second device, wherein the media file container is expressed in a non-streaming media format and having audio data and at least one of video data, image data or other media data.

2. The system of claim 1 ,

wherein packaging the identified audio data into the audio byte stream includes packaging the identified audio data into a separate container file including the audio byte stream, and

wherein completing uploading the audio byte stream includes completing uploading the separate container file prior to completing the upload of the media file container.

3. The system of claim 1 ,

wherein the audio data in the media data box includes audio data associated with corresponding video data,

wherein the media data box includes a plurality of fragments, each fragment including a fragment metadata box and a corresponding fragment media data box, wherein each fragment metadata box includes a fragment track box,

wherein reading the metadata box of the media file to locate the track box includes:

reading the metadata box to identify which fragments of the media data box contain audio data; and

reading the fragment metadata boxes of the identified fragments to locate the fragment track boxes of the identified fragments containing information about audio data in the respective identified fragment media data boxes, and

wherein identifying the audio data in the media data box includes identifying the audio data in the identified fragment media data boxes using information from the identified fragment track boxes.

4. The system of claim 1 ,

wherein packaging the identified audio data into the audio byte stream includes packaging the identified audio data into a separate fragment media data box for the audio byte stream, and

wherein completing uploading the audio byte stream includes completing uploading the separate fragment media data box prior to completing the upload of the media file container.

5. The system of claim 1 ,

wherein packaging the identified audio data comprises:

repackaging the media file container to include the audio byte stream, including creating a separate track box for the audio byte stream in the repackaged media file container, and

wherein completing uploading the audio byte stream includes uploading the repackaged media file container.

6. The system of claim 1 ,

wherein performing the series of instructions according to the set of upload rules includes:

identifying a first portion of the media file container and a last portion of the media file container, each of the first and last portions having a size in bytes and including at least a portion of at least one box of the media file container;

creating a schedule for uploading the first portion of the media file container and the last portion of the media file container before intervening portions of the media file container between the first and last portions; and

based on the created schedule, completing uploading of the first and last portions of the media file container before completing uploading of the intervening portions of the media file container,

wherein completing uploading the audio byte stream includes after completing uploading the first and last portions of the media file container, and before completing uploading of the intervening portions of the media file container.

7. The system of claim 1 ,

wherein performing the series of instructions according to the set of upload rules includes automatically performing the series of instructions by the first device, and

wherein the second device is configured to provide the set of upload rules to the first device through a meeting application executed on the first device.

8. The system of claim 1 ,

wherein performing the series of instructions according to the set of upload rules includes automatically performing the series of instructions by the first device, and

wherein the second device is configured to provide the set of upload rules to the first device in a response to a request to upload the media file container to the second device.

9. A method for uploading a media file container from a first device to a second device configured to process or distribute the media file container, comprising:

receiving an instruction to upload the media file container to the second device, and in response, performing, using the first device, a series of instructions according to a set of upload rules, comprising:

reading a metadata box of the media file container to locate a track box containing information about audio data, including a size and a location of the audio data, in a media data box of the media file container;

identifying the audio data in the media data box using the information from the track box;

packaging the identified audio data from the media data box into an audio byte stream separate from the media data box;

creating a schedule for uploading the audio byte stream to the second device prior to completing upload of the media file container, wherein the schedule dictates that the audio byte stream is to be communicated from the first device to the second device in its entirety before completing upload of remaining portions of the media file container from the first device to the second device; and

based on the created schedule, completing uploading the audio byte stream from the first device to the second device prior to completing the upload of the media file container, and

subsequent to completing uploading the audio byte stream to the second device, completing the upload of the media file container to the second device, wherein the media file container is expressed in a non-streaming media format and having audio data and at least one of video data, image data or other media data.

10. The method of claim 9 ,

wherein packaging the identified audio data into the audio byte stream includes packaging the identified audio data into a separate container file including the audio byte stream, and

wherein completing uploading the audio byte stream includes completing uploading the separate container file prior to completing the upload of the media file container.

11. The method of claim 9 ,

wherein the audio data in the media data box includes audio data associated with corresponding video data,

wherein the media data box includes a plurality of fragments, each fragment including a fragment metadata box and a corresponding fragment media data box, wherein each fragment metadata box includes a fragment track box,

wherein reading the metadata box of the media file to locate the track box includes:

reading the metadata box to identify which fragments of the media data box contain audio data; and

reading the fragment metadata boxes of the identified fragments to locate the fragment track boxes of the identified fragments containing information about audio data in the respective identified fragment media data boxes, and

wherein identifying the audio data in the media data box includes identifying the audio data in the identified fragment media data boxes using information from the identified fragment track boxes.

12. The method of claim 9 ,

wherein packaging the identified audio data into the audio byte stream includes packaging the identified audio data into a separate fragment media data box for the audio byte stream, and

wherein completing uploading the audio byte stream includes completing uploading the separate fragment media data box prior to completing the upload of the media file container.

13. The method of claim 9 ,

wherein packaging the identified audio data comprises:

repackaging the media file container to include the audio byte stream, including creating a separate track box for the audio byte stream in the repackaged media file container, and

wherein completing uploading the audio byte stream includes uploading the repackaged media file container.

14. The method of claim 9 ,

wherein performing the series of instructions according to the set of upload rules includes:

identifying a first portion of the media file container and a last portion of the media file container, each of the first and last portions having a size in bytes and including at least a portion of at least one box of the media file container;

creating a schedule for uploading the first portion of the media file container and the last portion of the media file container before intervening portions of the media file container between the first and last portions; and

based on the created schedule, completing uploading of the first and last portions of the media file container before completing uploading of the intervening portions of the media file container,

wherein completing uploading the audio byte stream includes after completing uploading the first and last portions of the media file container, and before completing uploading of the intervening portions of the media file container.

15. The method of claim 9 ,

wherein performing the series of instructions according to the set of upload rules includes automatically performing the series of instructions by the first device, and

wherein the second device is configured to provide the set of upload rules to the first device through a meeting application executed on the first device.

16. The method of claim 9 ,

wherein performing the series of instructions according to the set of upload rules includes automatically performing the series of instructions by the first device, and

wherein the second device is configured to provide the set of upload rules to the first device in a response to a request to upload the media file container to the second device.

17. A system for uploading a media file container from a first device to a second device configured to process or distribute the media file container, comprising:

means for performing a series of instructions according to a set of upload rules responsive to receiving an instruction to upload the media file container to the second device, comprising:

means for reading a metadata box of the media file container to locate a track box containing information about audio data in a media data box of the media file container;

means for identifying the audio data in the media data box using the information from the track box;

means for packaging the identified audio data from the media data box into an audio byte stream separate from the media data box; and

means for creating a schedule for uploading the audio byte stream from the first device to the second device prior to completing upload of the media file container, wherein the schedule dictates that the audio byte stream is to be communicated from the first device to the second device in its entirety before completing upload of remaining portions of the media file container from the first device to the second device;

means for uploading the audio byte stream from the first device to the second device prior to completing upload of the media file container, and

means for completing the upload of the media file container to the second device subsequent to completing uploading the audio byte stream to the second device, wherein the media file container is expressed in a non-streaming media format and having audio data and at least one of video data, image data or other media data.

18. The system of claim 17 ,

wherein the means for packaging the identified audio data into the audio byte stream includes means for packaging the identified audio data into a separate container file including the audio byte stream, and

wherein the means for uploading the audio byte stream includes means for completing uploading the separate container file prior to completing the upload of the media file container.

19. The system of claim 17 ,

wherein the audio data in the media data box includes audio data associated with corresponding video data,

wherein the media data box includes a plurality of fragments, each fragment including a fragment metadata box and a corresponding fragment media data box, wherein each fragment metadata box includes a fragment track box,

wherein the means for reading the metadata box of the media file to locate the track box includes means for:

reading the metadata box to identify which fragments of the media data box contain audio data; and

reading the fragment metadata boxes of the identified fragments to locate the fragment track boxes of the identified fragments containing information about audio data in the respective identified fragment media data boxes, and

wherein the means for identifying the audio data in the media data box includes means for identifying the audio data in the identified fragment media data boxes using information from the identified fragment track boxes.

20. The system of claim 17 ,

wherein the means for packaging the identified audio data into the audio byte stream includes means for packaging the identified audio data into a separate fragment media data box for the audio byte stream, and

wherein the means for uploading the audio byte stream includes means for completing uploading the separate fragment media data box prior to completing the upload of the media file container.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2022
From: HECKMAN, NICHOLAS TEGAN; ATIA, OHAD; SURI, NITIN; PETERSON, STEVEN CRAIG
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 060793/0717 →
Continuity (1)
Related Publication 20230412669A1 · Dec 21, 2023
References Cited (38)
US 7095905B1 · Peterson · 2006 [cited by applicant]
US 8510848B1 · Zhao · 2013 [cited by examiner]
US 8984569B2 · Hurst · 2015 [cited by applicant]
US 9338515B2 · Hu et al. · 2016 [cited by applicant]
US 9351020B2 · Good · 2016 [cited by applicant]
US 9674502B2 · Park et al. · 2017 [cited by applicant]
US 9843606B1 · Vendrow et al. · 2017 [cited by applicant]
US 12149769B2 · Heckman · 2024 [cited by examiner]
US 20070058951A1 · Kashiwagi et al. · 2007 [cited by applicant]
US 20100169390A1 · Park et al. · 2010 [cited by applicant]
US 20110119327A1 · Masuda · 2011 [cited by applicant]
US 20110280540A1 · Woodman · 2011 [cited by applicant]
US 20120054370A1 · Tsubakihara · 2012 [cited by applicant]
US 20130346626A1 · Zhang · 2013 [cited by applicant]
US 20150281305A1 · Sievert et al. · 2015 [cited by applicant]
US 20160088287A1 · Sadi · 2016 [cited by applicant]
US 20160366452A1 · Roessler · 2016 [cited by examiner]
US 20170149860A1 · Ben Eli et al. · 2017 [cited by applicant]
US 20190268601A1 · Lu et al. · 2019 [cited by applicant]
US 20200329283A1 · Yin · 2020 [cited by examiner]
US 20200396504A1 · Yin · 2020 [cited by applicant]
US 20220109806A1 · Sohoni · 2022 [cited by applicant]
US 20220116691A1 · Stockhammer · 2022 [cited by applicant]
US 20230412866A1 · Heckman · 2023 [cited by applicant]
US 20230412901A1 · Heckman · 2023 [cited by applicant]
CN 114390319A · 2022 [cited by applicant]
EP 1980958A2 · 2008 [cited by applicant]
WO 2007082169A2 · 2007 [cited by applicant]
WO 2011108868A2 · 2011 [cited by applicant]
Moseley, Robert, “Video Optimization, Part 2: Multi-Codec Adaptive Bitrate Streaming”, Retrieved from: https://web.archive.org/web/20210502021010/https:/cloudinary.com/blog/video_optimization_part_ii_adaptive_bitrate_st… [cited by applicant]
Stockhammer, Thomas, “Dynamic Adaptive Streaming over HTTP—Design Principles and Standards”, In Journal of Qualcomm Incorporated, Feb. 23, 2011, 3 Pages. [cited by applicant]
“Progressive Playback: An Atom Story”, [online]. Retrieved from the Internet: <URL: https://fabiensanglard.net/mobile_progressive_playback/index.php>, Nov. 15, 2011, 5 Pages. [cited by applicant]
“International Search Report and Written Opinion Issued in PCT Application No. PCT/US23/019540”, Mailed Date: Jul. 12, 2023, 12 Pages. [cited by applicant]
“International Search Report and Written Opinion Issued in PCT Application No. PCT/US23/021790”, Mailed Date: Jul. 17, 2023, 11 Pages. [cited by applicant]
“International Search Report and Written Opinion Issued in PCT Application No. PCT/US23/019539”, Mailed Date: Jun. 29, 2023, 14 Pages. [cited by applicant]
Non-Final Office Action mailed on Apr. 11, 2024, in U.S. Appl. No. 17/841,033, 9 pages. [cited by applicant]
Non-Final Office Action mailed on Nov. 6, 2023, in U.S. Appl. No. 17/841,116, 19 pages. [cited by applicant]
Notice of Allowance mailed on Jul. 15, 2024, in U.S. Appl. No. 17/841,033, 9 pages. [cited by applicant]