IP Library Granted Patent US 9,338,523
Granted Patent B2
US 9,338,523 · App. 12/643,700 · Granted May 10, 2016

Audio splitting with codec-enforced frame sizes

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 9,338,523
App. No.
12/643,700
Granted
May 10, 2016
Kind
B2
Abstract

A method and apparatus for splitting the audio of media content into separate content files without introducing boundary artifacts is described.

Claims (78)

1. A method comprising:

receiving, by a computing system, media content including audio and video;

encoding, by the computing system, the video according to a frame rate;

encoding, by the computing system, the audio according to a codec-enforced frame size;

generating, by the computing system, a plurality of content files, wherein each of the plurality of content files comprises an encoded portion of the video having a fixed-time duration and an encoded portion of the audio having a plurality of full audio frames having the codec-enforced frame size, wherein a duration of the encoded portion of the audio of one or more of the plurality of content files is greater than or less than the fixed-time duration.

2. The method of claim 1 , wherein the last of the plurality of full audio frames is not padded with zeros.

3. The method of claim 1 , further comprising splitting the media content into the audio and the video, wherein said encoding the video comprises encoding the video using a video codec according to the fixed-time duration, and wherein said encoding the audio comprises encoding the audio using an audio codec according to the codec-enforced frame size.

4. The method of claim 1 , further comprising:

buffering encoded frames of the audio;

determining a number of encoded frames needed to fill the current one of the plurality of content files, wherein the number of frames is the smallest integer that is not less than a number of samples needed to fill the current one of the plurality of files divided by the codec-enforced frame size;

determining if there are enough of the encoded frames buffered to fill a current one of the plurality of content files;

if there is enough of the encoded frames buffered, filling the current one of the plurality of content files with the number of frames; and

if there are not enough of the encoded frames buffered, buffering an additional frame of the audio and filling the current one of the plurality of content files with the number of frames and the additional frame.

5. The method of claim 4 , wherein said determining if there is enough encoded frames buffered comprises:

multiplying the number of buffered frames by the codec-enforced frame size;

adding a sample offset, if any, from a previous one of the plurality of content files to the product of the multiplication;

determining if the sum is greater than or equal to the number of samples needed to fill the first one of the plurality of content files.

6. The method of claim 4 , further comprising determining a sample offset, if any, for a subsequent one of the plurality of content files.

7. The method of claim 6 , wherein said determining the sample offset comprises multiplying the number of the encoded frames by the codec-enforced frame size minus the number of samples needed to fill the first one of the plurality of content files and plus the sample offset, if any, from a previous one of the plurality of content files.

8. The method of claim 1 , further comprising buffering encoded frames of the audio, and wherein said generating the plurality of content files comprises:

calculating a number of samples needed to fill a current one of the plurality of content files;

calculating a number of frames needed for the current one of the plurality of content files;

adding a frame to the number of frames when the number of samples divided by the codec-enforced frame size is not equally divisible; and

filling the current one of the plurality of content files with the number of frames.

9. The method of claim 1 , further comprising buffering encoded frames of the audio, and wherein said generating the plurality of content files comprises:

calculating a number of samples needed to fill a current content file of the one or more of the plurality of content files by multiplying a sampling rate by the fixed-time duration plus a sample offset, if any, from a previous one of the plurality of content files;

calculating a number of frames needed to fill the current content file by dividing the number of samples by the codec-enforced frame size; and

if the remainder of the division is zero, filling the current content file with the number of frames; and

if the remainder of the division is greater than zero, incrementing the number of frames by one and filling the current content file with the incremented number of frames.

10. The method of claim 9 , wherein said generating the plurality of content files further comprises:

multiplying the number of frames by the codec-enforced frame size to convert back to the number of samples needed to fill the current content file;

calculating the duration of the encoded portion of the audio of the current content file by dividing the number of samples by the sampling rate;

determining a presentation offset for a subsequent one of the plurality of content files by subtracting the duration from the fixed-time duration; and

updating a sample offset for the subsequent one of the plurality of content files by multiplying the number of frames by the codec-enforced frame size minus the number of samples needed to fill the first one of the plurality of content files and plus the sample offset, if any, from the previous one of the plurality of content files.

11. The method of claim 1 , wherein said receiving comprises receiving the media content as a plurality of raw streamlets, wherein each of the plurality of raw streamlets comprises a portion of the media content having the fixed-time duration.

12. The method of claim 11 , wherein:

said receiving the media content comprises:

receiving a first of the plurality of raw streamlets and a second of the plurality of raw streamlets; and

splitting the audio and the video of the first raw streamlet and of the second raw streamlet;

said encoding the video comprises:

encoding the video of the first raw streamlet, wherein the video of the first raw streamlet is stored in a first of the plurality of content files; and

encoding the video of the second raw streamlet, wherein the video of the second raw streamlet is stored in a second of the plurality of content files;

said encoding the audio comprises:

encoding the audio of the first raw streamlet into a first plurality of audio frames;

buffering the first plurality of audio frames;

determining if there are enough buffered frames to fill the first content file;

when there are not enough buffered frames to fill the first content file, encoding the audio of the second raw streamlet into a second plurality of audio frames and buffering the second plurality of audio frames;

when there are enough buffered frames to fill the first content file, storing the buffered audio frames into the first content file.

13. The method of claim 1 , wherein said fixed-time duration is approximately two seconds, wherein the audio is sampled at approximately 48,000 samples per second, wherein the codec-enforced frame size is 1024 samples per frame, wherein the audio portions of the first three of the plurality of content files each comprises ninety-four audio frames, and wherein the audio portion of a fourth of the plurality of content files comprises ninety-three audio frames, and wherein each of the video portions of the four content files comprises approximately sixty video frames.

14. The method of claim 1 , wherein said fixed-time duration is approximately two seconds, wherein the audio is sampled at approximately 44,100 samples per second, wherein the codec-enforced frame size is 1024 samples per frame, wherein the audio portion of a first of the plurality of content files comprises eight-seven audio frames and a second of the plurality of content files comprises eighty-six audio frames.

15. The method of claim 1 , wherein the codec-enforced frame size is 2048 samples per frame.

16. A computing system comprising:

means for receiving media content including video and audio;

means for encoding the video according to a frame rate;

means for encoding the audio according to a fixed-frame size;

means for segmenting the encoded video into a plurality of portions, wherein each portion of the encoded video is stored in a separate content file; and

means for splitting the encoded audio into the separate content files without introducing boundary artifacts, wherein the encoded audio of a first content file of the separate content files has a duration that is greater than or less than a duration of the portion of the encoded video stored in the first content file.

17. The apparatus of claim 16 , further comprising:

means for tracking a sample offset, if any, for each of the content files; and

means for tracking a presentation offset, if any, for each of the content files.

18. A computing device comprising:

a splitter to receive media content including audio and video and to split the audio and the video;

a video encoder coupled to receive the video from the splitter and to encode the video according to a frame rate;

an audio encoder coupled to receive the audio from the splitter and to encode the audio according to a codec-enforced frame size; and

an audio-splitting multiplexer to generate a plurality of content files, wherein each of the plurality of content files comprises an encoded portion of the video having a fixed-time duration and an encoded portion of the audio having a plurality of full audio frames having the codec-enforced frame size, wherein a duration of the encoded portion of the audio of one or more of the plurality of content files is greater than or less than the fixed-time duration.

19. The apparatus of claim 18 , wherein the last of the plurality of full audio frames is not padded with zeros.

20. The apparatus of claim 18 , wherein the computing device further comprises an audio frame buffer to buffer encoded frames of the audio.

21. A non-transitory computer-readable storage medium storing instruction thereon when executed by a computing device cause the computing device to perform a method, comprising:

receiving media content including audio and video;

encoding the video according to a frame rate;

encoding the audio according to a codec-enforced frame size;

generating a plurality of content files, wherein each of the plurality of content files comprises an encoded portion of the video having a fixed-time duration and an encoded portion of the audio having a plurality of full audio frames having the codec-enforced frame size, wherein a duration of the encoded portion of the audio of one or more of the plurality of content files is greater than or less than the fixed-time duration.

22. The computer-readable storage medium of claim 21 , wherein the method further comprises:

buffering encoded frames of the audio;

determining a number of encoded frames needed to fill the current one of the plurality of content files, wherein the number of frames is the smallest integer that is not less than a number of samples needed to fill the current one of the plurality of files divided by the codec-enforced frame size;

determining if there are enough of the encoded frames buffered to fill a current one of the plurality of content files;

if there is enough of the encoded frames buffered, filling the current one of the plurality of content files with the number of frames; and

if there are not enough of the encoded frames buffered, buffering an additional frame of the audio and filling the current one of the plurality of content files with the number of frames and the additional frame.

Assignments (8)
SECURITY INTEREST Recorded Nov 30, 2021
From: DISH BROADCASTING CORPORATION; DISH NETWORK L.L.C.; DISH TECHNOLOGIES L.L.C.
To: U.S. BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 058295/0293 →
CHANGE OF NAME Recorded Jun 18, 2018
From: ECHOSTAR TECHNOLOGIES L.L.C.
To: DISH TECHNOLOGIES L.L.C.
Reel/Frame 047264/0127 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2014
From: DISH DIGITAL L.L.C.
To: ECHOSTAR TECHNOLOGIES L.L.C.
Reel/Frame 033470/0726 →
CHANGE OF NAME Recorded Feb 28, 2013
From: ECHOSTAR ADVANCED TECHNOLOGIES L.L.C.
To: DISH DIGITAL L.L.C.
Reel/Frame 029894/0512 →
RELEASE OF SECURITY INTEREST Recorded Dec 31, 2010
From: SILICON VALLEY BANK
To: MOVE NETWORKS, INC.
Reel/Frame 025570/0063 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2010
From: MOVE NETWORKS, INC.
To: ECHOSTAR ADVANCED TECHNOLOGIES L.L.C.
Reel/Frame 025570/0047 →
SECURITY AGREEMENT Recorded May 13, 2010
From: MOVE NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 024383/0738 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2009
From: OWEN, CALVIN RYAN
To: MOVE NETWORKS, INC.
Reel/Frame 023687/0370 →