Combining and Serving Media Content

Abstract
Systems and methods provide for dynamic generation of media content at the point that content is served. The system and method work within the bounds of simple, existing, open protocols and the media files served are playable by standard media playback clients. The method is driven by a request for media content from a client specifying an edit list. The server opens one or more source files and selects portions of one or more files to transmit based on edit list instructions, and sequentially writes those portions to an output for serving to the client. The server sorts the selected portions of one or more source media files, combines the selected portions to form a combined media shot, and serves the combined media shot to the client. The method allows for various modifications of the content before serving.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram illustrating a client-server architecture according to one embodiment of the present invention.



FIG. 2 is a block diagram illustrating the server in greater detail.



FIG. 3 is a flowchart illustrating a method for serving media content.



FIGS. 4A-4C illustrate possible uniform resource locators.



FIG. 5A is an illustration of a file format.



FIG. 5B is an illustration of a sample AVI file.



FIG. 6 shows an example of a use case for the method described herein.



FIG. 7 is a flowchart illustrating a method for combining media shots.



FIGS. 8A-8C show examples of use cases for the method described in FIG. 7.


Claims
  • 1. A method for combining media shots on a server, comprising: receiving at the server a request from a client for a combined media shot;selecting in response to the request at least one frame from a first media shot;selecting in response to the request at least one frame from a second media shot;combining the selected frames from the first and second media shots to form a portion of the combined media shot corresponding to the request, wherein the combined media shot comprises a plurality of portions; andserving from the server the portion of the combined media shot to the client, wherein the server is configured to serve the portion prior to formation of the combined media shot.
  • 2. The method of claim 1, wherein the request comprises at least one content identifier and instructions corresponding to the at least one content identifier, the instructions being directed to combine the first and second media shots.
  • 3. The method of claim 2, wherein the instructions further comprise a time range corresponding to the first media shot.
  • 4. The method of claim 2, wherein the instructions further comprise a content transformation instruction.
  • 5. The method of claim 4, wherein the content transformation instruction is applied to the first media shot.
  • 6. The method of claim 4, wherein the content transformation instruction is applied to the combined media shot.
  • 7. The method of claim 1, wherein the at least one frame from the first media shot and the at least one frame from the second media shot each corresponds to a timestamp.
  • 8. The method of claim 1 further comprising: selecting at least one frame from a third media shot; andwherein combining the selected frames further comprises combining selected frames from the third media shot to form the combined media shot.
  • 9. The method of claim 1, further comprising generating a header and a footer for the combined media shot.
  • 10. The method of claim 1, wherein the first media shot and the second media shot are selected from one source media file.
  • 11. The method of claim 1, wherein the first media shot and the second media shot are selected from two different source media files.
  • 12. The method of claim 1, wherein the at least one frame from the first media shot comprises a frame selected from a group consisting of a video stream, an audio stream, a text stream, and a metadata stream.
  • 13. The method of claim 1, wherein the client and the server reside on a single device.
  • 14. A method for combining media shots on a server, comprising: receiving at the server a request from a client for a combined media shot;selecting in response to the request at least one frame from a first media shot;selecting in response to the request at least one frame from a second media shot;sorting the at least one frames from the first and second media shots according to a timestamp corresponding to each frame;combining the selected frames from the first and second media shots to form a portion of the combined media shot corresponding to the request, wherein the combined media shot comprises a plurality of portions; andwriting the portion of the combined media shot to an output, wherein the server is configured to serve the portion prior to formation of the combined media shot.
  • 15. The method of claim 14, wherein the step of sorting the at least one frames from the first and second media shots further comprises sorting the timestamps in ascending order.
  • 16. The method of claim 14, wherein the step of sorting the at least one frames from the first and second media shots further comprises sorting the timestamps in descending order.
  • 17. A method for combining media shots on a server, comprising: receiving at the server a request from a client for a combined media shot;selecting in response to the request at least one frame from a first media shot;selecting in response to the request at least one frame from a second media shot;modifying the at least one frame from the first media shot and the at least one frame from the second media shot corresponding to the request;combining the selected frames from the first and second media shots to form a portion of the combined media shot corresponding to the request, wherein the combined media shot comprises a plurality of portions; andserving from the server the portion of the combined media shot to the client, wherein the server is configured to serve the portion prior to formation of the combined media shot.
  • 18. The method of claim 17, wherein modifying the at least one frames from the first and second media shots comprises an alteration selected from a group consisting of a data encryption, a length modification, an encoding rate modification, a stream quantity modification, a file wrapper format modification, a video transformation processing, an audio transformation processing, and a metadata insertion.
  • 19. A method for combining media shots on a server, comprising: receiving at the server a request from a client for a combined media shot;selecting in response to the request at least one frame from a first media shot, wherein the at least one frame from the first media shot comprises a frame selected from a group consisting of a video stream, an audio stream, a text stream, and a metadata stream;selecting in response to the request at least one frame from a second media shot;sorting the at least one frames from the first and second media shots according to a timestamp corresponding to each frame;modifying the at least one frame from the first media shot and the at least one frame from the second media shot corresponding to the request, wherein modifying comprises an alteration selected from a group consisting of a data encryption, a length modification, an encoding rate modification, a stream quantity modification, a file wrapper format modification, a video transformation processing, an audio transformation processing, and a metadata insertion;combining the selected frames from the first and second media shots to form a portion of the combined media shot corresponding to the request, wherein the combined media shot comprises a plurality of portions; andserving from the server the portion of the combined media shot to the client, wherein the server is configured to serve the portion prior to formation of the combined media shot.
  • 20. A computer program product for combining media shots on a server, the computer program product comprising: a computer-readable medium; andcomputer program code, coded on the medium, for: receiving at the server a request from a client for a combined media shot; selecting in response to the request at least one frame from a first media shot;selecting in response to the request at least one frame from a second media shot;combining the selected frames from the first and second media shots to form a portion of the combined media shot corresponding to the request, wherein the combined media shot comprises a plurality of portions; andserving from the server the portion of the combined media shot to the client, wherein the server is configured to serve the portion prior to formation of the combined media shot.
  • 21. The computer program product of claim 20, wherein the request comprises at least one content identifier and instructions corresponding to the at least one content identifier, the instructions being directed to combine the first and second media shots.
  • 22. The computer program product of claim 20, wherein the instructions further comprise a content transformation instruction.
  • 23. The computer program product of claim 20, wherein the computer program code if further coded for generating a header and a footer for the combined media shot.
  • 24. The computer program product of claim 20, wherein the client and the server reside on a single device.
  • 25. A system for combining media shots on a server, comprising: means for receiving at the server a request from a client for a combined media shot;means for selecting in response to the request at least one frame from a first media shot;means for selecting in response to the request at least one frame from a second media shot;means for combining the selected frames from the first and second media shots to form a portion of the combined media shot corresponding to the request, wherein the combined media shot comprises a plurality of portions; andmeans for serving from the server the portion of the combined media shot to the client, wherein the server is configured to serve the portion prior to formation of the combined media shot.
  • 26. The system of claim 25, wherein the request comprises at least one content identifier and instructions corresponding to the at least one content identifier, the instructions being directed to combine the first and second media shots.
  • 27. The system of claim 25, wherein the instructions further comprise a content transformation instruction.
  • 28. The system of claim 25, further comprising means for generating a header and a footer for the combined media shot.
  • 29. The system of claim 25, wherein the client and the server reside on a single device.
Provisional Applications (1)
Number Date Country
60756787 Jan 2006 US
Continuation in Parts (1)
Number Date Country
Parent 11428319 Jun 2006 US
Child 11620346 US