IP Library Granted Patent US 7,962,933
Granted Patent B2
US 7,962,933 · App. 11/694,546 · Granted Jun 14, 2011

Mid-roll insertion of digital media

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 7,962,933
App. No.
11/694,546
Granted
Jun 14, 2011
Kind
B2
Abstract

An example embodiment of the present invention provides a process for inserting a source media stream into a target media stream, which media streams might be in container file format. The process opens and reads into memory structural information from a target media stream and structural information from a source media stream. The process then finds the nearest prior key frame to an insertion time and splits a chunk of media samples if the key frame's sample is not at the beginning of a chunk. The process adjusts the structural information for both streams in order to effect the mid-roll insertion of the source media stream into the target media stream. The process then writes onto an output media stream the adjusted structural information for the source and target media streams and then pipes onto the output media stream the media data for the source and target media streams.

Claims (38)

1. A method, comprising

opening, and reading into memory, structural information from a first media stream;

opening, and reading into memory, structural information from a second media stream, wherein both the first and second media streams comprise one or more chunks and each of the chunks comprise one or more media samples;

identifying a nearest prior key frame in the second media stream corresponding to an insertion time;

identifying a chunk and a media sample corresponding to the identified key frame;

splitting the identified chunk into first and second split chunks so that the second split chunk begins with the media sample corresponding to the identified key frame, wherein this splitting occurs if the media sample corresponding to the identified key frame is not at the beginning of the identified chunk;

adjusting the structural information for the first and second media streams to effect insertion of the first media stream into the second media stream before the second chunk, wherein the structural information for each media stream comprises a sample-to-chunk table and a chunk-to-offset table, and wherein adjusting the structural information comprises modifying the sample-to-chunk table and the chunk-to-offset table of the second media stream to include entries for the one or more chunks and media samples of the first media stream and the first and second split chunks of the first media stream; and

writing onto an output media stream the adjusted structural information for the first and second media streams.

2. A method as in claim 1 , further comprising the step of piping, onto the output media stream, media data for the first and second media streams.

3. A method as in claim 1 , wherein the structural information for each media stream comprises a header for the media stream and one or more tracks, wherein each track further comprises a header, one or more edit lists, and one or more media, wherein the media further comprises a header and one or more sample tables specifying the locations and durations of sample data.

4. A method as in claim 1 , wherein the first media stream and the second media stream are pre-normalized to avoid transcoding.

5. A method as in claim 1 , wherein the steps are performed by an insertion server.

6. A method as in claim 1 , wherein there are more than two input media streams.

7. A method as in claim 1 , wherein the first media stream comprises an advertisement and the second media stream comprises content.

8. A method as in claim 1 , wherein the piping step uses Java file channels.

9. A method as in claim 1 , wherein the first, second, and output media streams are in container file format.

10. A method as in claim 1 , wherein the first, second, and output media streams are in MP4 file format.

11. An apparatus, comprising

a memory,

a network interface;

one or more processors; and

logic encoded in one or more persistent storage media for execution and when executed operable to cause the one or more processors to:

open, and read into the memory, structural information from a first media stream;

open, and read into the memory, structural information from a second media stream, wherein both the first and second media streams comprise one or more chunks and each of the chunks comprise one or more media samples;

identify a nearest prior key frame in the second media stream corresponding to an insertion time;

identify a chunk and a media sample corresponding to the identified key frame;

split the identified chunk into first and second split chunks so that the second split chunk begins with the media sample corresponding to the identified key frame, wherein this splitting occurs if the media sample corresponding to the identified key frame is not at the beginning of the identified chunk;

adjust the structural information for the first and second media streams to effect insertion of the first media stream into the second media stream before the second chunk, wherein the structural information for each media stream comprises a sample-to-chunk table and a chunk-to-offset table, and wherein adjusting the structural information comprises modifying the sample-to-chunk table and the chunk-to-offset table of the second media stream to include entries for the one or more chunks and media samples of the first media stream and the first and second split chunks of the first media stream; and

write onto an output media stream the adjusted structural information for the first and second media streams.

12. An apparatus as in claim 11 , further comprising encoded logic to pipe onto the output media stream, media data for the first and second media streams.

13. An apparatus as in claim 11 , wherein the structural information for each media stream comprises a header for the media stream and one or more tracks, wherein each track further comprises a header, one or more edit lists, and one or more media, wherein the media further comprises a header and one or more sample tables specifying the locations and durations of sample data.

14. An apparatus as in claim 11 , wherein the first media stream and the second media stream are pre-normalized to avoid transcoding.

15. An apparatus as in claim 11 , wherein the encoded logic is executed by an insertion server.

16. An apparatus as in claim 11 , wherein there are more than two input media streams.

17. An apparatus as in claim 11 , wherein the first media stream comprises an advertisement and the second media stream comprises content.

18. An apparatus as in claim 11 , wherein the piping operation uses Java file channels.

19. An apparatus as in claim 11 , wherein the first, second, and output media streams are in container file format.

20. An apparatus as in claim 11 , wherein the first, second, and output media streams are in MP4 file format.

Assignments (17)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2022
From: VIVIAL MOBILE LLC
To: THRYV INC.
Reel/Frame 060499/0131 →
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2017
From: HERITAGE BANK OF COMMERCE
To: MGAGE, LLC; OUTSPOKEN, LLC
Reel/Frame 043882/0047 →
SECURITY INTEREST Recorded Feb 24, 2017
From: MGAGE, LLC; OUTSPOKEN, LLC
To: HERITAGE BANK OF COMMERCE
Reel/Frame 041377/0123 →
RELEASE OF SECURITY INTEREST Recorded Sep 1, 2015
From: U.S. BANK NATIONAL ASSOCIATION
To: MGAGE, LLC
Reel/Frame 036471/0442 →
SECURITY INTEREST Recorded Aug 27, 2015
From: MGAGE, LLC
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 036436/0127 →
SECURITY INTEREST Recorded Mar 24, 2014
From: MGAGE, LLC
To: U.S. BANK, NATIONAL ASSOCIATION
Reel/Frame 032511/0597 →
CHANGE OF NAME Recorded Mar 5, 2014
From: GSO MMBU ACQUISITION LLC
To: MGAGE, LLC
Reel/Frame 032390/0163 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2014
From: VELTI INC.
To: GSO MMBU ACQUISITION LLC
Reel/Frame 032346/0301 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jan 27, 2014
From: U.S. BANK, NATIONAL ASSOCIATION (AS SUCCESSOR TO HSBC BANK USA, NATIONAL ASSOCIATION)
To: VELTI INC.; VELTI MOBILE PLATFORMS LIMITED
Reel/Frame 032127/0228 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jan 27, 2014
From: U.S. BANK, NATIONAL ASSOCIATION
To: VELTI INC.; AIR2WEB, INC.
Reel/Frame 032127/0326 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DATE OF EXECUTION OF DOCUMENT PREVIOUSLY RECORDED ON REEL 031795 FRAME 0612. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Dec 20, 2013
From: VELTI INC.; AIR2WEB, INC.
To: U.S. BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 031866/0943 →
NOTICE OF CHANGE OF AGENT AND ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Dec 12, 2013
From: HSBC BANK USA, NATIONAL ASSOCIATION
To: U.S. BANK, NATIONAL ASSOCIATION
Reel/Frame 031808/0504 →
SECURITY AGREEMENT Recorded Dec 11, 2013
From: VELTI INC.; AIR2WEB, INC.
To: U.S. BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 031795/0612 →
CHANGE OF NAME Recorded Dec 11, 2013
From: VELTI USA, INC.
To: VELTI INC.
Reel/Frame 031759/0676 →
SECURITY AGREEMENT Recorded Aug 13, 2012
From: VELTI INC., A DELAWARE CORPORATION, AS GRANTOR
To: HSBC BANK USA, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 028779/0253 →
CHANGE OF NAME Recorded Jul 26, 2012
From: AD INFUSE, INC.
To: VELTI USA, INC.
Reel/Frame 028647/0785 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2007
From: HUANG, ALEX XUEYUAN; LUDEWIG, CARLE
To: AD INFUSE
Reel/Frame 019095/0119 →