US20230388607A1 - Media packaging - Google Patents

Media packaging Download PDF

Info

Publication number
US20230388607A1
US20230388607A1 US18/449,262 US202318449262A US2023388607A1 US 20230388607 A1 US20230388607 A1 US 20230388607A1 US 202318449262 A US202318449262 A US 202318449262A US 2023388607 A1 US2023388607 A1 US 2023388607A1
Authority
US
United States
Prior art keywords
media
packaging
delivery package
format
template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
US18/449,262
Inventor
Stewart Alan Frey
Vitaliy Vaysberg
Francis Henry Dillon, IV
Matthew Joseph Wood
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Viacom International Inc
Original Assignee
Viacom International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Viacom International Inc filed Critical Viacom International Inc
Priority to US18/449,262 priority Critical patent/US20230388607A1/en
Assigned to VIACOM INTERNATIONAL INC. reassignment VIACOM INTERNATIONAL INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DILLON, FRANCIS HENRY, IV, FREY, STEWART ALAN, VAYSBERG, VITALIY, WOOD, MATTHEW JOSEPH
Publication of US20230388607A1 publication Critical patent/US20230388607A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2223Secondary servers, e.g. proxy server, cable television Head-end being a public access point, e.g. for downloading to or uploading from clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/232Content retrieval operation locally within server, e.g. reading video streams from disk arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • H04N21/23895Multiplex stream processing, e.g. multiplex stream encrypting involving multiplex stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6338Control signals issued by server directed to the network components or client directed to network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination

Definitions

  • the present technology relates generally to media packaging and delivery, and, more specifically, to packaging digital media and related files in accordance with a template for delivery.
  • Content producers such as producers of movies, television shows, and other media content, often produce media content that is licensed by content customers such as cable television providers, Video-on-Demand services, streaming services, etc.
  • the content producers can provide digital versions of media titles (e.g., movies, television show episodes, etc.) to these customers. These customers commonly request multiple media titles at a time (e.g., lists of several movies, seasons of television shows, etc.) from the content producers.
  • an online video streaming service might wish to obtain 100 media titles (e.g., movies) from a movie studio.
  • the online video streaming service might want 100 specifically-identified media titles (e.g., specific movies), or any 100 of the movie studio's media titles, or a mixture of the two.
  • the movie studio can then collect digital versions of the media titles and provide them to the online video streaming service.
  • Digital versions of media titles can include multiple media files.
  • a digital version of a movie can include one or more video files, one or more audio files (e.g., dialog tracks, background audio, etc.), subtitle files, and metadata files containing information about the movie (e.g., listings of the cast, credits, runtime, etc.).
  • audio files e.g., dialog tracks, background audio, etc.
  • subtitle files e.g., subtitle files
  • metadata files containing information about the movie e.g., listings of the cast, credits, runtime, etc.
  • individual customers can have separate requirements for the formats of the digital versions, the language of the dialog tracks and/or subtitle tracks, how the digital versions are packaged, and how the digital versions are delivered.
  • Past approaches involved manually collecting the files for the digital versions of the requested media titles pursuant to the individual customer's requirements, which is time consuming and inefficient.
  • the present technology can provide efficient media packaging and delivery.
  • the method can include receiving, by a media packaging server, a list of one or more media asset IDs.
  • the method can include receiving, by the media packaging server, a packaging template.
  • the method can include retrieving, by the media packaging server, one or more media files based on a media asset ID in the list of the one or more media asset IDs and the packaging template.
  • the method can include retrieving, by the media packaging server, metadata associated with the media asset ID based on the packaging template.
  • the method can include packaging, by the media packaging server, the one or more media files and the metadata into a delivery package in a packaging format indicated by the packaging template.
  • the method can include retrieving, by the media packaging server, a second one or more media files based on a second media asset ID in the list of the one or more media asset IDs.
  • the method can include retrieving, by the media packaging server, second metadata associated with the second media asset ID based on the packaging template.
  • the method can include packaging, by the media packaging server, the second one or more media files and the second metadata into the delivery package in the packaging format indicated by the packaging template.
  • the method can include reformatting at least one of the media files based on the packaging template. Reformatting at least one of the media files based on the packaging template can include transcoding the at least one of the media files into a format indicated by the packaging template.
  • the method can include transmitting, by the media packaging server, the delivery package via a network specified by the template.
  • the method can include storing, by the media packaging server, the delivery package to a non-transient storage medium specified by the template.
  • the method includes generating, by the media packaging server, a manifest identifying the one or more media files and the metadata in the delivery package; and packaging, by the media packaging server, the manifest into the delivery package.
  • the metadata can include one or more of format information, runtime information, subtitle information, or closed-caption information related to the one or more media files.
  • the one or more media files can include at least one video file and at least one audio file that relate to the same audio-visual presentation.
  • the method can include compressing the delivery package in a compression format specified in the packaging template.
  • the method can include encrypting the delivery package in an encryption format specified in the packaging template.
  • a computer program product tangibly embodied in a non-volatile computer-readable storage medium, for packaging media files.
  • the computer program product can include instructions being operable to cause a data processing apparatus to: receive a list of one or more media asset IDs; receive a packaging template; retrieve one or more media files based on a media asset ID in the list of the one or more media asset IDs and the packaging template; retrieve metadata associated with the media asset ID based on the packaging template; and package the one or more media files and the metadata into a delivery package in a packaging format indicated by the packaging template.
  • the computer program includes instructions being operable to cause the data processing apparatus to: retrieve a second one or more media files based on a second media asset ID in the list of the one or more media asset IDs; retrieve second metadata associated with the second media asset ID based on the packaging template; package the second one or more media files and the second metadata into the delivery package in the packaging format indicated by the packaging template.
  • the computer program product includes instructions being operable to cause the data processing apparatus to reformat at least one of the media files based on the packaging template.
  • the instructions being operable to cause the data processing apparatus to reformat at least one of the media files based on the packaging template can include instructions being operable to cause the data processing apparatus to transcode the at least one of the media files into a format indicated by the packaging template.
  • the computer program product can include instructions being operable to cause the data processing apparatus to transmit the delivery package via a network specified by the template.
  • the computer program product can include instructions being operable to cause the data processing apparatus to store the delivery package to a non-transient storage medium specified by the template.
  • the computer program product can include instructions being operable to cause the data processing apparatus to: generate a manifest identifying the one or more media files and the metadata in the delivery package; and package the manifest into the delivery package.
  • the metadata can include one or more of format information, runtime information, subtitle information, or closed-caption information related to the one or more media files.
  • the one or more media files can include at least one video file and at least one audio file that relate to the same audio-visual presentation.
  • the computer program product can include instructions being operable to cause the data processing apparatus to compress the delivery package in a compression format specified in the packaging template.
  • the computer program product can include instructions being operable to cause the data processing apparatus to encrypt the delivery package in an encryption format specified in the packaging template.
  • the method can include receiving, by a media packaging server, a list of one or more media asset IDs.
  • the method can include receiving, by the media packaging server, a packaging template.
  • the method can include determining, by the media packaging server, whether one or more media files associated with a media asset ID in the list of the one or more media asset IDs are available based on the packaging template.
  • the method can include retrieving, by the media packaging server, the one or more media files if the one or more media files are available.
  • the method can include retrieving, by the media packaging server, metadata associated with the media asset ID based on the packaging template if the one or more media files are available.
  • the method can include packaging, by the media packaging server, the one or more media files and the metadata into a delivery package in a packaging format indicated by the packaging template if the one or more media files are available.
  • the method can include displaying on a display device the media asset ID if the one or more media files are not available.
  • the method can include receiving, by the media packaging server, a second media asset ID via a user interface to replace the first media asset ID.
  • FIG. 1 depicts an exemplary system for packaging media files
  • FIG. 2 is a flow chart illustrating an exemplary computer implemented method of packaging media files
  • FIG. 3 illustrates a portion of a packaging template 300 written in XML
  • FIG. 4 A - FIG. 4 D are a flow chart illustrating an exemplary computer-implemented method of packaging media files.
  • the technology provides computer-implemented methods and systems that can collect, package, and/or deliver digital media content based on a customer's specified requirements.
  • the technology can allow a content producer to programmatically collect, assemble, package, and deliver a package of media files and metadata associated with the desired media titles to a customer based on the customer's list of desired media titles and a template indicating how the media are to be assembled, packaged, and delivered.
  • a media title can be a specific movie.
  • the movie can have one or more media files or media files associated with it.
  • a digital version of a movie can include one or more video files, one or more audio files (e.g., dialog tracks, background audio, etc.), subtitle files, pictures, promotional materials, stills, and metadata files containing information about the movie (e.g., listings of the cast, credits, runtime, etc.).
  • the video portion of the movie can be stored in one media file in 1080p resolution and in a different media file in 720p resolution.
  • an English dialog track for the movie can be stored in one media file and a French dialog track for the movie can be stored in a different media file.
  • the technology can facilitate packaging and delivering media files associated with media titles.
  • a user can provide to a media packaging server a list identifying media titles or assets (e.g., a list of movies) desired by a customer.
  • the user can also provide to the media packaging server a template identifying various requirements of the customer.
  • the template can specify that the customer wants digital versions of the media titles in MPEG 4 format and 1080p resolution, with an English dialogue track and Spanish and French subtitles.
  • the template can also specify that the customer wants the digital versions of the media titles encrypted and uploaded to the customer's file server.
  • the media packaging server can collect one or more media files associated with each media title or asset that conforms with the client's requirements (e.g., one or more files with the video portion of the movie in the proper format and resolution, one or more files with the audio portion of the movie in the proper language, and one or more files with the subtitles in the proper languages).
  • the media server can package the files for all of the media titles, encrypt them, and upload the package to the client's file server.
  • FIG. 1 depicts an exemplary system 100 for packaging media files.
  • System 100 includes client 110 , media packaging server 120 , media repository 130 , and recipient 140 .
  • Client 110 , media packaging server 120 , media repository 130 , and recipient 140 of system 100 can be connected via network 150 .
  • Examples of networks include a bus, a local area network (LAN), a wide area network (WAN), the Internet, wired networks, wireless networks, a packet-based network, and/or a circuit-based network.
  • network 150 can include one or more sub-networks (not shown).
  • client 110 can be connected to a private network along with media packaging server 120 and media repository 130 .
  • Media packaging server 120 can be connected to a public network along with recipient 140 .
  • media packaging server 120 can provide the packaged media to recipient 140 without recipient 140 being on the same network as client 110 and media repository 130 . It should be appreciated that other network topologies can be used in accordance with the technology disclosed herein.
  • Client 110 , media packaging server 120 , media repository 130 , and client 140 can each be any computing device, including, for example, a server, personal computer, smart phone, PDA, or tablet. While the illustrated embodiment depicts Client 110 , media packaging server 120 , media repository 130 , and client 140 as separate computing devices, in some embodiments two or more of client 110 , media packaging server 120 , and media repository 130 can be modules executing on the same computing device.
  • media packaging server 120 can package and deliver media files in accordance with the methods described herein.
  • Media packaging server 120 can retrieve medial files from media repository 130 , package the media files, and deliver the media files to recipient 140 .
  • Media repository 130 can store and access media files associated with media titles.
  • media files can be digital files or computer files representing portions of media titles.
  • each media title e.g., specific movie, tv episode, etc.
  • Media files for a particular title can be associated with the media asset ID for that media title.
  • the various media files e.g., high resolution video file, low resolution video file, English dialog track, etc.
  • specific files for a media title can be requested from media repository 130 based on a media asset ID.
  • a media asset ID can be an alphanumeric string.
  • the characters of a media asset ID relate to the media content of the associated media title, such as including indicia of the show, season, and episode.
  • a media asset ID can uniquely identify a media title within system 100 . For example, a particular movie is associated with a media asset ID, along with the various media files containing portions of that movie.
  • FIG. 2 is a flow chart 200 illustrating an exemplary computer implemented method of packaging media files.
  • system 100 of FIG. 1 can be used to implement the method illustrated in flow chart 200 .
  • a list of one or more media asset IDs is received.
  • media packaging server 120 can receive a list of one or more media asset IDs from client 110 via network 150 .
  • media packaging server 120 can receive the list of one or more media asset IDs from a local disk drive, network storage, or a database.
  • the list of media asset IDs can indicate media titles for which media files should be collected.
  • each media title e.g., specific movie, tv episode, etc.
  • the list of one or more media asset IDs can be in any format readable by media packaging server 120 .
  • the list of one or more media asset IDs can be in XML, plain text, or binary.
  • a packaging template is received.
  • media packaging server 120 can receive a packaging template from client 110 via network 150 .
  • media packaging server 120 can receive the packaging template from a local disk drive, network storage, or a database.
  • a packaging template can specify one or more aspects of how media files should be packaged for a customer.
  • a packaging template can specify the video format in which media files should be delivered, such as MPEG 2 or MPEG 4.
  • a packaging template can specify the resolution for the video media files, such as 720p or 1080p.
  • a packaging template can specify the dialogue track language or languages that should be delivered, such as English, French, and/or Spanish.
  • a packaging template can specify the subtitle language or languages that should be delivered, such as English, French, and/or Spanish.
  • a packaging template can specify whether the packaged files should be compressed, encrypted, and/or packaged as a TAR file.
  • a packaging template can specify how the packaged files should be delivered, such as on a disk or uploaded to a file server.
  • the packaging template can be in any format readable by media packaging server 120 .
  • the packaging template can be in XML, plain text, or binary.
  • FIG. 3 illustrates a portion of a packaging template 300 written in XML.
  • packaging template 300 specifies the video format in which media files should be delivered is MPEG 2 (line 310 ).
  • Packaging template 300 specifies the resolution for the video media files is 720p (line 315 ).
  • Packaging template 300 specifies the dialogue track language that should be delivered is English (line 320 ).
  • Packaging template 300 specifies the subtitle languages that should be delivered include French and Spanish (lines 325 and 330 ).
  • Packaging template 300 specifies the packaged files should be packaged as a TAR file (line 335 ).
  • Packaging template 300 specifies the packaged files should be delivered to a server (line 340 ).
  • the sever information can include the server's IP address, protocol, and authentication information.
  • media files are retrieved based on a media asset ID in the list of the one or more media asset IDs and the packaging template.
  • media packaging server 120 can retrieve media files from media repository 130 based on the media asset ID and the packaging template.
  • Media packaging server 120 can request from media repository 130 the media files associated with the media asset that satisfy the requirements specified in the template (e.g., media file format, resolution, language, etc.).
  • the media asset ID can correspond to a specific movie and the template can specify that video media files should be in MPEG 4 format and 1080P resolution; the dialogue track should be in English; and French subtitles should be included.
  • Media packaging server 120 can request from media repository 130 the media files for the specific movie (using its corresponding media asset ID) that are in the MPEG 4 format and encoded in 1080P; the media files for the English dialog track; and the media file for the French subtitles.
  • metadata associated with the media asset ID are retrieved based on the packaging template.
  • media packaging server 120 can retrieve metadata associated with the media asset ID from media repository 130 based on the packaging template.
  • the template can specify metadata that should be included with the packaged media files.
  • the template can specify that each media asset's run time, producer, cast, production studio, release date, etc. should be packaged with the media files.
  • the one or more media files and the metadata are packaged into a delivery package in a packaging format indicated by the packaging template.
  • media packaging server 120 can package the one or more media files and the metadata into a delivery package in a packaging format indicated by the packaging template.
  • the template can specify the packaged media files should be encrypted and put in a TAR file.
  • Media packaging server 120 can package the media files retrieved in step 230 and the metadata retrieved in step 240 into an encrypted TAR file.
  • the delivery package can be delivered to a location specified in the template.
  • the packaging template can specify the delivery package should be sent to a server (e.g., recipient 140 ).
  • Media packaging server 120 can send the delivery package to recipient 140 , which can be, for example, an FTP server.
  • media packaging server 120 can store the delivery package to a storage medium, such as a hard drive or optical medium.
  • FIG. 4 A - FIG. 4 D are a flow chart 400 illustrating an exemplary computer-implemented method of packaging media files.
  • the method illustrated in FIG. 4 A - FIG. 4 D can be performed by media packaging server 120 of FIG. 1 .
  • a package and delivery request is received (e.g., a list of one or more media asset IDs).
  • a customer e.g., a cable provider, video-on-demand provider, etc.
  • the customer can be selected based on the package and delivery request (e.g., the package and delivery request can include an identification of the customer).
  • the customer can be selected based on human input through a graphical user interface.
  • a record for the customer is created at step 410 .
  • the customer record can be created based on the package and delivery request (e.g., the package and delivery request can include customer information).
  • the customer record can be created based on human input through a graphical user interface.
  • a packaging template is received.
  • the packaging template can be received from a local disk drive, network storage, or a database.
  • the packaging template can be received based on human input or selection through a graphical user interface.
  • media files are retrieved for each media asset ID in the list of media asset IDs in the packaging and delivery request according to the rules specified in the packaging template.
  • the correct media file is selected at step 420 .
  • the correct media asset can be selected based on human input through a graphical user interface. After the correct medial file is selected, the method proceeds to step 416 .
  • step 422 a media file conforming to the template is generated. For example, if the template specifies that video media files should be in low resolution, a low resolution video media file can be generated from a high resolution video media file associated with the same media asset ID. After the correct media file is generated, the method proceeds to step 416 .
  • step 416 metadata is retrieved.
  • step 424 it is determined whether all of the metadata is available. If all of the metadata is available, the method proceeds to step 426 . If all of the metadata is not available, the method proceeds to step 428 .
  • step 428 additional metadata is received.
  • the additional metadata can be received from an external source, such as a website or database containing metadata.
  • the additional metadata can be received as a result of human input through a graphical user interface.
  • metadata files are generated for the media titles (e.g., for each media asset ID).
  • the metadata files can be generated in a format specified by the packaging template.
  • the sequence of fields e.g., title, release, runtime
  • the packaging template can specify whether the metadata is in XML and/or the XML, schema.
  • a manifest file is generated.
  • the manifest can provide a list of all the files being packaged (e.g., media files, metadata files, etc.).
  • a delivery package is assembled.
  • the delivery package includes the collected media files, metadata files, and manifest file.
  • the delivery package (e.g., media files, metadata files, and manifest file) should be packaged into a container file.
  • the packaging template can specify the delivery package should be placed in a TAR file. If the delivery package should not be placed into a container file, the method proceeds to step 434 . If the delivery package should be placed into a container file, the delivery package is placed into a container file, as specified in the packaging template, at step 436 .
  • step 434 it is determined whether encryption is required. If encryption is not required by the packaging template, the method proceeds to step 436 . If encryption is required, the delivery package is encrypted at step 438 .
  • the delivery package is delivered.
  • the delivery package is delivered as specified in the template.
  • the delivery package can be delivered to a server specified in the template.
  • the delivery package can be delivered to a location specified in the template (e.g., uploaded to an file server specified in the template, published in a shared directory, etc.).
  • the delivery package can be sent to a storage medium, such as a hard drive or optical medium.
  • the above-described techniques can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
  • the implementation can be as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers.
  • a computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
  • a computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
  • Method steps can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). Modules can refer to portions of the computer program and/or the processor/special circuitry that implements that functionality.
  • FPGA field programmable gate array
  • ASIC application-specific integrated circuit
  • processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
  • a processor receives instructions and data from a read-only memory or a random access memory or both.
  • the essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data.
  • a computer also includes, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Data transmission and instructions can also occur over a communications network.
  • Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
  • magnetic disks e.g., internal hard disks or removable disks
  • magneto-optical disks e.g., CD-ROM and DVD-ROM disks.
  • the processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry.
  • the above described techniques can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer (e.g., interact with a user interface element).
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • a keyboard and a pointing device e.g., a mouse or a trackball
  • Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • the above described techniques can be implemented in a distributed computing system that includes a back-end component, e.g., as a data server, and/or a middleware component, e.g., an application server, and/or a front-end component, e.g., a client computer having a graphical user interface and/or a Web browser through which a user can interact with an example implementation, or any combination of such back-end, middleware, or front-end components.
  • the components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet, and include both wired and wireless networks.
  • LAN local area network
  • WAN wide area network
  • the computing system can include clients and servers.
  • a client and server are generally remote from each other and typically interact through a communication network.
  • the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

Abstract

Described are methods, systems, and apparatus, including computer program products for packaging media. In some embodiments, the technology relates to a computer-implemented method of packaging media files. A list of one or more media asset IDs is received by a media packaging server. A packaging template is received by the media packaging server. One or more media files based on a media asset ID in the list of the one or more media asset IDs and the packaging template are retrieved, by the media packaging server. Metadata associated with the media asset ID based on the packaging template is retrieved by the media packaging server. The one or more media files and the metadata are packaged by the media packaging server into a delivery package in a packaging format indicated by the packaging template.

Description

    PRIORITY CLAIM
  • The present application is a Continuation application of U.S. patent application Ser. No. 15/786,121 filed on Oct. 17, 2017; which is a Continuation of U.S. patent application Ser. No. 14/621,080 filed on Feb. 12, 2015; which is a Continuation of U.S. patent application Ser. No. 13/622,881 filed on Sep. 19, 2012, now U.S. Pat. No. 8,984,575. The entire disclosure of these prior applications/patents is considered as being part of the disclosure of the accompanying application and hereby expressly incorporated by reference herein.
  • FIELD OF THE TECHNOLOGY
  • The present technology relates generally to media packaging and delivery, and, more specifically, to packaging digital media and related files in accordance with a template for delivery.
  • BACKGROUND
  • Content producers, such as producers of movies, television shows, and other media content, often produce media content that is licensed by content customers such as cable television providers, Video-on-Demand services, streaming services, etc. The content producers can provide digital versions of media titles (e.g., movies, television show episodes, etc.) to these customers. These customers commonly request multiple media titles at a time (e.g., lists of several movies, seasons of television shows, etc.) from the content producers. For example, an online video streaming service might wish to obtain 100 media titles (e.g., movies) from a movie studio. The online video streaming service might want 100 specifically-identified media titles (e.g., specific movies), or any 100 of the movie studio's media titles, or a mixture of the two. The movie studio can then collect digital versions of the media titles and provide them to the online video streaming service.
  • Providing digital versions of the media titles to the customer can create challenges for the content producer. Digital versions of media titles can include multiple media files. For example, a digital version of a movie can include one or more video files, one or more audio files (e.g., dialog tracks, background audio, etc.), subtitle files, and metadata files containing information about the movie (e.g., listings of the cast, credits, runtime, etc.). In addition to the challenges presented by providing a large number of media titles, individual customers can have separate requirements for the formats of the digital versions, the language of the dialog tracks and/or subtitle tracks, how the digital versions are packaged, and how the digital versions are delivered. Past approaches involved manually collecting the files for the digital versions of the requested media titles pursuant to the individual customer's requirements, which is time consuming and inefficient.
  • SUMMARY OF THE INVENTION
  • With the content customers' increased demand for digital media content, there is a need for an efficient way to collect, package, and deliver digital versions of media titles in a manner specified by the customer. The present technology can provide efficient media packaging and delivery.
  • In one aspect, there is a computer-implemented method of packaging media files. The method can include receiving, by a media packaging server, a list of one or more media asset IDs. The method can include receiving, by the media packaging server, a packaging template. The method can include retrieving, by the media packaging server, one or more media files based on a media asset ID in the list of the one or more media asset IDs and the packaging template. The method can include retrieving, by the media packaging server, metadata associated with the media asset ID based on the packaging template. The method can include packaging, by the media packaging server, the one or more media files and the metadata into a delivery package in a packaging format indicated by the packaging template.
  • In some embodiments, the method can include retrieving, by the media packaging server, a second one or more media files based on a second media asset ID in the list of the one or more media asset IDs. The method can include retrieving, by the media packaging server, second metadata associated with the second media asset ID based on the packaging template. The method can include packaging, by the media packaging server, the second one or more media files and the second metadata into the delivery package in the packaging format indicated by the packaging template.
  • In some embodiments, the method can include reformatting at least one of the media files based on the packaging template. Reformatting at least one of the media files based on the packaging template can include transcoding the at least one of the media files into a format indicated by the packaging template. The method can include transmitting, by the media packaging server, the delivery package via a network specified by the template. The method can include storing, by the media packaging server, the delivery package to a non-transient storage medium specified by the template.
  • In some embodiments, the method includes generating, by the media packaging server, a manifest identifying the one or more media files and the metadata in the delivery package; and packaging, by the media packaging server, the manifest into the delivery package.
  • In some embodiments, the metadata can include one or more of format information, runtime information, subtitle information, or closed-caption information related to the one or more media files. The one or more media files can include at least one video file and at least one audio file that relate to the same audio-visual presentation.
  • In some embodiments, the method can include compressing the delivery package in a compression format specified in the packaging template. The method can include encrypting the delivery package in an encryption format specified in the packaging template.
  • In another aspect, there is a computer program product, tangibly embodied in a non-volatile computer-readable storage medium, for packaging media files. The computer program product can include instructions being operable to cause a data processing apparatus to: receive a list of one or more media asset IDs; receive a packaging template; retrieve one or more media files based on a media asset ID in the list of the one or more media asset IDs and the packaging template; retrieve metadata associated with the media asset ID based on the packaging template; and package the one or more media files and the metadata into a delivery package in a packaging format indicated by the packaging template.
  • In some embodiments, the computer program includes instructions being operable to cause the data processing apparatus to: retrieve a second one or more media files based on a second media asset ID in the list of the one or more media asset IDs; retrieve second metadata associated with the second media asset ID based on the packaging template; package the second one or more media files and the second metadata into the delivery package in the packaging format indicated by the packaging template.
  • In some embodiments, the computer program product includes instructions being operable to cause the data processing apparatus to reformat at least one of the media files based on the packaging template. The instructions being operable to cause the data processing apparatus to reformat at least one of the media files based on the packaging template can include instructions being operable to cause the data processing apparatus to transcode the at least one of the media files into a format indicated by the packaging template. The computer program product can include instructions being operable to cause the data processing apparatus to transmit the delivery package via a network specified by the template. The computer program product can include instructions being operable to cause the data processing apparatus to store the delivery package to a non-transient storage medium specified by the template.
  • In some embodiments, the computer program product can include instructions being operable to cause the data processing apparatus to: generate a manifest identifying the one or more media files and the metadata in the delivery package; and package the manifest into the delivery package.
  • In some embodiments, the metadata can include one or more of format information, runtime information, subtitle information, or closed-caption information related to the one or more media files. The one or more media files can include at least one video file and at least one audio file that relate to the same audio-visual presentation.
  • In some embodiments, the computer program product can include instructions being operable to cause the data processing apparatus to compress the delivery package in a compression format specified in the packaging template. The computer program product can include instructions being operable to cause the data processing apparatus to encrypt the delivery package in an encryption format specified in the packaging template.
  • In another aspect, there is a computer-implemented method of packaging media files. The method can include receiving, by a media packaging server, a list of one or more media asset IDs. The method can include receiving, by the media packaging server, a packaging template. The method can include determining, by the media packaging server, whether one or more media files associated with a media asset ID in the list of the one or more media asset IDs are available based on the packaging template. The method can include retrieving, by the media packaging server, the one or more media files if the one or more media files are available. The method can include retrieving, by the media packaging server, metadata associated with the media asset ID based on the packaging template if the one or more media files are available. The method can include packaging, by the media packaging server, the one or more media files and the metadata into a delivery package in a packaging format indicated by the packaging template if the one or more media files are available.
  • In some embodiments, the method can include displaying on a display device the media asset ID if the one or more media files are not available. The method can include receiving, by the media packaging server, a second media asset ID via a user interface to replace the first media asset ID.
  • Other aspects and advantages of the present technology will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating the principles of the technology by way of example only.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The foregoing and other objects, features, and advantages of the present technology, as well as the technology itself, will be more fully understood from the following description of various embodiments, when read together with the accompanying drawings, in which:
  • FIG. 1 depicts an exemplary system for packaging media files;
  • FIG. 2 is a flow chart illustrating an exemplary computer implemented method of packaging media files;
  • FIG. 3 illustrates a portion of a packaging template 300 written in XML; and
  • FIG. 4A-FIG. 4D are a flow chart illustrating an exemplary computer-implemented method of packaging media files.
  • DETAILED DESCRIPTION
  • In some embodiments, the technology provides computer-implemented methods and systems that can collect, package, and/or deliver digital media content based on a customer's specified requirements. The technology can allow a content producer to programmatically collect, assemble, package, and deliver a package of media files and metadata associated with the desired media titles to a customer based on the customer's list of desired media titles and a template indicating how the media are to be assembled, packaged, and delivered.
  • As an example, a media title can be a specific movie. The movie can have one or more media files or media files associated with it. For example, a digital version of a movie can include one or more video files, one or more audio files (e.g., dialog tracks, background audio, etc.), subtitle files, pictures, promotional materials, stills, and metadata files containing information about the movie (e.g., listings of the cast, credits, runtime, etc.). For example, the video portion of the movie can be stored in one media file in 1080p resolution and in a different media file in 720p resolution. As another example, an English dialog track for the movie can be stored in one media file and a French dialog track for the movie can be stored in a different media file.
  • The technology can facilitate packaging and delivering media files associated with media titles. As an example of the technology, a user can provide to a media packaging server a list identifying media titles or assets (e.g., a list of movies) desired by a customer. The user can also provide to the media packaging server a template identifying various requirements of the customer. For example, the template can specify that the customer wants digital versions of the media titles in MPEG 4 format and 1080p resolution, with an English dialogue track and Spanish and French subtitles. The template can also specify that the customer wants the digital versions of the media titles encrypted and uploaded to the customer's file server. With this information, the media packaging server can collect one or more media files associated with each media title or asset that conforms with the client's requirements (e.g., one or more files with the video portion of the movie in the proper format and resolution, one or more files with the audio portion of the movie in the proper language, and one or more files with the subtitles in the proper languages). The media server can package the files for all of the media titles, encrypt them, and upload the package to the client's file server.
  • Turning to the illustrated embodiments, FIG. 1 depicts an exemplary system 100 for packaging media files. System 100 includes client 110, media packaging server 120, media repository 130, and recipient 140. Client 110, media packaging server 120, media repository 130, and recipient 140 of system 100 can be connected via network 150. Examples of networks include a bus, a local area network (LAN), a wide area network (WAN), the Internet, wired networks, wireless networks, a packet-based network, and/or a circuit-based network.
  • In some embodiments, network 150 can include one or more sub-networks (not shown). For example, client 110 can be connected to a private network along with media packaging server 120 and media repository 130. Media packaging server 120 can be connected to a public network along with recipient 140. In such an embodiment, media packaging server 120 can provide the packaged media to recipient 140 without recipient 140 being on the same network as client 110 and media repository 130. It should be appreciated that other network topologies can be used in accordance with the technology disclosed herein.
  • Client 110, media packaging server 120, media repository 130, and client 140 can each be any computing device, including, for example, a server, personal computer, smart phone, PDA, or tablet. While the illustrated embodiment depicts Client 110, media packaging server 120, media repository 130, and client 140 as separate computing devices, in some embodiments two or more of client 110, media packaging server 120, and media repository 130 can be modules executing on the same computing device.
  • In some embodiments, media packaging server 120 can package and deliver media files in accordance with the methods described herein. For example, Media packaging server 120 can retrieve medial files from media repository 130, package the media files, and deliver the media files to recipient 140.
  • Media repository 130 can store and access media files associated with media titles. As described above, media files can be digital files or computer files representing portions of media titles. In some embodiments, each media title (e.g., specific movie, tv episode, etc.) is assigned a media asset ID. Media files for a particular title can be associated with the media asset ID for that media title. The various media files (e.g., high resolution video file, low resolution video file, English dialog track, etc.) for a particular title can be located based on the title's media asset ID. Beneficially, specific files for a media title can be requested from media repository 130 based on a media asset ID.
  • A media asset ID can be an alphanumeric string. In some embodiments, the characters of a media asset ID relate to the media content of the associated media title, such as including indicia of the show, season, and episode. A media asset ID can uniquely identify a media title within system 100. For example, a particular movie is associated with a media asset ID, along with the various media files containing portions of that movie.
  • FIG. 2 is a flow chart 200 illustrating an exemplary computer implemented method of packaging media files. In some embodiments, system 100 of FIG. 1 can be used to implement the method illustrated in flow chart 200.
  • At step 210, a list of one or more media asset IDs is received. For example, media packaging server 120 can receive a list of one or more media asset IDs from client 110 via network 150. In other embodiments, media packaging server 120 can receive the list of one or more media asset IDs from a local disk drive, network storage, or a database. In the exemplary embodiment, the list of media asset IDs can indicate media titles for which media files should be collected. As discussed above, each media title (e.g., specific movie, tv episode, etc.) can be assigned a media asset ID and the media files for each title can be associated with the media asset ID for that media title. The list of one or more media asset IDs can be in any format readable by media packaging server 120. For example, the list of one or more media asset IDs can be in XML, plain text, or binary.
  • At step 220, a packaging template is received. In some embodiments, media packaging server 120 can receive a packaging template from client 110 via network 150. In some embodiments, media packaging server 120 can receive the packaging template from a local disk drive, network storage, or a database.
  • A packaging template can specify one or more aspects of how media files should be packaged for a customer. For example, a packaging template can specify the video format in which media files should be delivered, such as MPEG 2 or MPEG 4. A packaging template can specify the resolution for the video media files, such as 720p or 1080p. A packaging template can specify the dialogue track language or languages that should be delivered, such as English, French, and/or Spanish. A packaging template can specify the subtitle language or languages that should be delivered, such as English, French, and/or Spanish. A packaging template can specify whether the packaged files should be compressed, encrypted, and/or packaged as a TAR file. A packaging template can specify how the packaged files should be delivered, such as on a disk or uploaded to a file server.
  • The packaging template can be in any format readable by media packaging server 120. For example, the packaging template can be in XML, plain text, or binary. FIG. 3 illustrates a portion of a packaging template 300 written in XML. In the illustrated example, packaging template 300 specifies the video format in which media files should be delivered is MPEG 2 (line 310). Packaging template 300 specifies the resolution for the video media files is 720p (line 315). Packaging template 300 specifies the dialogue track language that should be delivered is English (line 320). Packaging template 300 specifies the subtitle languages that should be delivered include French and Spanish (lines 325 and 330). Packaging template 300 specifies the packaged files should be packaged as a TAR file (line 335). Packaging template 300 specifies the packaged files should be delivered to a server (line 340). The sever information can include the server's IP address, protocol, and authentication information.
  • Returning to FIG. 2 , at step 230, media files are retrieved based on a media asset ID in the list of the one or more media asset IDs and the packaging template. For example, media packaging server 120 can retrieve media files from media repository 130 based on the media asset ID and the packaging template. Media packaging server 120 can request from media repository 130 the media files associated with the media asset that satisfy the requirements specified in the template (e.g., media file format, resolution, language, etc.). As an example, the media asset ID can correspond to a specific movie and the template can specify that video media files should be in MPEG 4 format and 1080P resolution; the dialogue track should be in English; and French subtitles should be included. Media packaging server 120 can request from media repository 130 the media files for the specific movie (using its corresponding media asset ID) that are in the MPEG 4 format and encoded in 1080P; the media files for the English dialog track; and the media file for the French subtitles.
  • At step 240, metadata associated with the media asset ID are retrieved based on the packaging template. For example, media packaging server 120 can retrieve metadata associated with the media asset ID from media repository 130 based on the packaging template. The template can specify metadata that should be included with the packaged media files. For example, the template can specify that each media asset's run time, producer, cast, production studio, release date, etc. should be packaged with the media files.
  • At step 250, the one or more media files and the metadata are packaged into a delivery package in a packaging format indicated by the packaging template. For example, media packaging server 120 can package the one or more media files and the metadata into a delivery package in a packaging format indicated by the packaging template. In some embodiments, the template can specify the packaged media files should be encrypted and put in a TAR file. Media packaging server 120 can package the media files retrieved in step 230 and the metadata retrieved in step 240 into an encrypted TAR file.
  • In some embodiments, the delivery package can be delivered to a location specified in the template. In some embodiments, the packaging template can specify the delivery package should be sent to a server (e.g., recipient 140). Media packaging server 120 can send the delivery package to recipient 140, which can be, for example, an FTP server. In some embodiments, media packaging server 120 can store the delivery package to a storage medium, such as a hard drive or optical medium.
  • FIG. 4A-FIG. 4D are a flow chart 400 illustrating an exemplary computer-implemented method of packaging media files. In some embodiments, the method illustrated in FIG. 4A-FIG. 4D can be performed by media packaging server 120 of FIG. 1 .
  • At step 402, a package and delivery request is received (e.g., a list of one or more media asset IDs). At step 404, a customer (e.g., a cable provider, video-on-demand provider, etc.) is selected. In some embodiments, the customer can be selected based on the package and delivery request (e.g., the package and delivery request can include an identification of the customer). In some embodiments, the customer can be selected based on human input through a graphical user interface.
  • At step 406, it is determined whether a record for the customer is found. If a record for the customer is found, the method proceeds to step 408. If a record for the customer is not found, a record for the customer is created at step 410. In some embodiments, the customer record can be created based on the package and delivery request (e.g., the package and delivery request can include customer information). In some embodiments, the customer record can be created based on human input through a graphical user interface.
  • At step 408, a packaging template is received. In some embodiments, the packaging template can be received from a local disk drive, network storage, or a database. In some embodiments, the packaging template can be received based on human input or selection through a graphical user interface.
  • At step 412, media files are retrieved for each media asset ID in the list of media asset IDs in the packaging and delivery request according to the rules specified in the packaging template. At step 414, it is determined if a single media file is found for each component specified in the template (e.g., video, English dialogue track, etc.) of each media title. If a single media file is found for each component, the method proceeds to step 416. If a single media file is not found for each component, the number of media files found is determined at step 418.
  • If multiple media files for a component are found, the correct media file is selected at step 420. In some embodiments, the correct media asset can be selected based on human input through a graphical user interface. After the correct medial file is selected, the method proceeds to step 416.
  • If no media files are found for a component, the method proceeds to step 422. At step 422, a media file conforming to the template is generated. For example, if the template specifies that video media files should be in low resolution, a low resolution video media file can be generated from a high resolution video media file associated with the same media asset ID. After the correct media file is generated, the method proceeds to step 416.
  • At step 416, metadata is retrieved. At step 424, it is determined whether all of the metadata is available. If all of the metadata is available, the method proceeds to step 426. If all of the metadata is not available, the method proceeds to step 428. At step 428, additional metadata is received. In some embodiments, the additional metadata can be received from an external source, such as a website or database containing metadata. In some embodiments, the additional metadata can be received as a result of human input through a graphical user interface.
  • At step 426, metadata files are generated for the media titles (e.g., for each media asset ID). The metadata files can be generated in a format specified by the packaging template. In some embodiments, the sequence of fields (e.g., title, release, runtime) can be specified. In some embodiments, the packaging template can specify whether the metadata is in XML and/or the XML, schema.
  • At step 430, a manifest file is generated. The manifest can provide a list of all the files being packaged (e.g., media files, metadata files, etc.).
  • At step 431, a delivery package is assembled. In some embodiments, the delivery package includes the collected media files, metadata files, and manifest file.
  • At step 432, it is determined whether the delivery package (e.g., media files, metadata files, and manifest file) should be packaged into a container file. For example, the packaging template can specify the delivery package should be placed in a TAR file. If the delivery package should not be placed into a container file, the method proceeds to step 434. If the delivery package should be placed into a container file, the delivery package is placed into a container file, as specified in the packaging template, at step 436.
  • At step 434, it is determined whether encryption is required. If encryption is not required by the packaging template, the method proceeds to step 436. If encryption is required, the delivery package is encrypted at step 438.
  • At step 436, the delivery package is delivered. The delivery package is delivered as specified in the template. In some embodiments, the delivery package can be delivered to a server specified in the template. For example, the delivery package can be delivered to a location specified in the template (e.g., uploaded to an file server specified in the template, published in a shared directory, etc.). In some embodiments, the delivery package can be sent to a storage medium, such as a hard drive or optical medium.
  • The above-described techniques can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The implementation can be as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
  • Method steps can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). Modules can refer to portions of the computer program and/or the processor/special circuitry that implements that functionality.
  • Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also includes, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Data transmission and instructions can also occur over a communications network. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry.
  • To provide for interaction with a user, the above described techniques can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer (e.g., interact with a user interface element). Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • The above described techniques can be implemented in a distributed computing system that includes a back-end component, e.g., as a data server, and/or a middleware component, e.g., an application server, and/or a front-end component, e.g., a client computer having a graphical user interface and/or a Web browser through which a user can interact with an example implementation, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet, and include both wired and wireless networks.
  • The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
  • The technology has been described in terms of particular embodiments. The embodiments described herein are examples for illustration only and not to limit the technology in any way. The steps of the technology can be performed in a different order and still achieve desirable results. Other embodiments are within the scope of the following claims.

Claims (16)

1-25. (canceled)
26. A computer-implemented method of packaging media files, comprising:
assembling, by a media packaging server, a first delivery package in response to a first request for delivery to a client device, wherein the first request includes a first media asset ID identifying a first requested media file to be included in the first delivery package and a first packaging template identifying for inclusion in the first delivery package metadata associated with the first media asset ID and a desired format for the first media file and the metadata associated therewith; and
transmitting the first delivery package to the client device.
27. The method of claim 26, further comprising:
assembling, by a media packaging server, a second delivery package in response to a second request for delivery to the client device, wherein the second request includes a second media asset ID identifying a second requested media file to be included in the second delivery package and a second packaging template identifying for inclusion in the second delivery package metadata associated with the second media asset ID and a desired format for the second media file and the metadata associated therewith; and
transmitting the second delivery package to the client device.
28. The method of claim 26, further comprising:
reformatting the first media file from a first format to a second format, the second format being the desired format indicated in the first packaging template.
29. The method of claim 28, wherein the first media file is reformatted by transcoding the first media file into the desired format indicated by the first packaging template.
30. The method of claim 26, wherein the first packaging template indicates a requested network for the transmission of the delivery package, the method further comprising transmitting, by the media packaging server, the first delivery package to the client device via the requested network.
31. The method of claim 26, wherein the first packaging template indicates a requested non-transient storage medium for storing the first delivery package, the method further comprising storing, by the media packaging server, the first delivery package to the requested non-transient storage medium.
32. The method of claim 26, further comprising:
generating, by the media packaging server, a manifest identifying the first media file and the metadata in the first delivery package; and
including, by the media packaging server, the manifest into the first delivery package.
33. The method of claim 26, wherein the metadata identified in the first packaging template comprises at least one of format information, runtime information, subtitle information, and closed-caption information associated with the first media file.
34. The method of claim 26, wherein the first packaging template identifies a requested compression format for compressing the first delivery package, the method further comprising: compressing the first delivery package in the requested compression format.
35. The method of claim 26, wherein the first media file comprises at least one video file and at least one audio file that relate to the same audio-visual presentation.
36. The method of claim 26, wherein the first packaging template indicates a requested encryption format for encrypting the first delivery package, the method further comprising encrypting the first delivery package in the requested encryption format.
37. A computer program product, tangibly embodied in a non-volatile computer-readable storage medium, for packaging media files, the computer program product including instructions being operable to cause a data processing apparatus to:
assemble a first delivery package in response to a first request for delivery to a client device, wherein the first request includes a first media asset ID identifying a first requested media file to be included in the first delivery package and a first packaging template identifying for inclusion in the first delivery package metadata associated with the first media asset ID and a desired format for the first media file and the metadata associated therewith; and
transmit the first delivery package to the client device.
38. The computer program product of claim 37, further including instructions being operable to cause the data processing apparatus to:
assemble a second delivery package in response to a second request for delivery to the client device, wherein the second request includes a second media asset ID identifying a second requested media file to be included in the second delivery package and a second packaging template identifying for inclusion in the second delivery package metadata associated with the second media asset ID and a desired format for the second media file and the metadata associated therewith; and
transmit the second delivery package to the client device.
39. The computer program product of claim 37, further including instructions operable to cause the data processing apparatus to reformat the first media file from a first format to a second format, the second format being the desired format indicated in the first packaging template.
40. The computer program product of claim 39, wherein the instructions are operable to cause the data processing apparatus to reformat the media file by transcoding the first media file into the desired format indicated by the first packaging template.
US18/449,262 2012-09-19 2023-08-14 Media packaging Pending US20230388607A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/449,262 US20230388607A1 (en) 2012-09-19 2023-08-14 Media packaging

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/622,881 US8984575B2 (en) 2012-09-19 2012-09-19 Media packaging
US14/621,080 US20150156518A1 (en) 2012-09-19 2015-02-12 Media packaging
US15/786,121 US11765436B2 (en) 2012-09-19 2017-10-17 Media packaging
US18/449,262 US20230388607A1 (en) 2012-09-19 2023-08-14 Media packaging

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US15/786,121 Continuation US11765436B2 (en) 2012-09-19 2017-10-17 Media packaging

Publications (1)

Publication Number Publication Date
US20230388607A1 true US20230388607A1 (en) 2023-11-30

Family

ID=50275906

Family Applications (4)

Application Number Title Priority Date Filing Date
US13/622,881 Active 2032-11-22 US8984575B2 (en) 2012-09-19 2012-09-19 Media packaging
US14/621,080 Abandoned US20150156518A1 (en) 2012-09-19 2015-02-12 Media packaging
US15/786,121 Active 2035-08-22 US11765436B2 (en) 2012-09-19 2017-10-17 Media packaging
US18/449,262 Pending US20230388607A1 (en) 2012-09-19 2023-08-14 Media packaging

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US13/622,881 Active 2032-11-22 US8984575B2 (en) 2012-09-19 2012-09-19 Media packaging
US14/621,080 Abandoned US20150156518A1 (en) 2012-09-19 2015-02-12 Media packaging
US15/786,121 Active 2035-08-22 US11765436B2 (en) 2012-09-19 2017-10-17 Media packaging

Country Status (1)

Country Link
US (4) US8984575B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5591702B2 (en) * 2007-09-20 2014-09-17 ヴィジブル ワールド インコーポレイテッド System and method for media packaging
US20150074129A1 (en) * 2013-09-12 2015-03-12 Cisco Technology, Inc. Augmenting media presentation description and index for metadata in a network environment
US10516917B2 (en) 2015-03-10 2019-12-24 Turner Broadcasting System, Inc. Providing a personalized entertainment network
US10333875B2 (en) * 2016-11-28 2019-06-25 Snap Inc. Processing media content in a messaging system
US20240028208A1 (en) * 2022-07-25 2024-01-25 Samsung Electronics Co., Ltd. Memory-interface converter chip

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60038982D1 (en) * 1999-12-02 2008-07-03 Western Digital Tech Inc SYSTEM FOR REMOVING TELEVISION PROGRAMS
JP2002108827A (en) * 2000-10-03 2002-04-12 Ntt Docomo Inc Method for providing contents, equipment on providing side and equipment on using side
US7395261B1 (en) * 2000-11-21 2008-07-01 Amy Hobbs Atzel System and method for ordering items
US8424041B2 (en) * 2005-09-07 2013-04-16 Sony Corporation Method and system for downloading content to a content downloader
US7814525B2 (en) * 2006-02-09 2010-10-12 Sony Corporation Navigation within switched digital streamed content
US8280982B2 (en) * 2006-05-24 2012-10-02 Time Warner Cable Inc. Personal content server apparatus and methods
US8024762B2 (en) * 2006-06-13 2011-09-20 Time Warner Cable Inc. Methods and apparatus for providing virtual content over a network
JP4997979B2 (en) * 2007-01-12 2012-08-15 ソニー株式会社 NETWORK SYSTEM, TERMINAL DEVICE, RECORDING DEVICE, RECORDING RESERVATION STATUS DISPLAY METHOD, TERMINAL DEVICE PROGRAM, AND RECORDING DEVICE PROGRAM
US8087047B2 (en) * 2007-04-20 2011-12-27 United Video Properties, Inc. Systems and methods for providing remote access to interactive media guidance applications
JP5591702B2 (en) * 2007-09-20 2014-09-17 ヴィジブル ワールド インコーポレイテッド System and method for media packaging
US8756429B2 (en) * 2008-10-10 2014-06-17 International Business Machines Corporation Tunable encryption system
WO2010101959A2 (en) * 2009-03-02 2010-09-10 Realnetworks, Inc. Re-headerer system and method
WO2011009205A1 (en) * 2009-07-22 2011-01-27 Jigsee Inc. Method of streaming media to heterogeneous client devices
US20120036365A1 (en) * 2010-08-06 2012-02-09 Microsoft Corporation Combining request-dependent metadata with media content

Also Published As

Publication number Publication date
US11765436B2 (en) 2023-09-19
US20150156518A1 (en) 2015-06-04
US20140082684A1 (en) 2014-03-20
US8984575B2 (en) 2015-03-17
US20180041816A1 (en) 2018-02-08

Similar Documents

Publication Publication Date Title
US20230388607A1 (en) Media packaging
US9992537B2 (en) Real-time tracking collection for video experiences
AU2018200443B2 (en) Serving a live stream as an advertisement
US8695054B2 (en) Ingesting heterogeneous video content to provide a unified video provisioning service
US10264314B2 (en) Multimedia content management system
US8966371B2 (en) Metadata for providing media content
US9641323B2 (en) Security processing system and method for HTTP live streaming
US20130332971A1 (en) Targeted high-value content in http streaming video on demand
US8996589B2 (en) Digital asset management data model
US20120123992A1 (en) System and method for generating multimedia recommendations by using artificial intelligence concept matching and latent semantic analysis
US9124671B2 (en) Media service and method for delivery of stored media
US20130212342A1 (en) Storage format for media streams
US20140096162A1 (en) Automated Social Media and Event Driven Multimedia Channels
US20160212501A1 (en) Enabling Delivery and Synchronization of Auxiliary Content Associated with Multimedia Data
KR20110056476A (en) Multimedia distribution and playback systems and methods using enhanced metadata structures
US20120128334A1 (en) Apparatus and method for mashup of multimedia content
US20220215072A1 (en) Media content feed format for management of content in a content hosting website
US7302437B2 (en) Methods, systems, and computer-readable media for a global video format schema defining metadata relating to video media
US9607084B2 (en) Assigning a single master identifier to all related content assets
US9288526B2 (en) Method and system for delivery of content over communication networks
EP1923797A1 (en) Digital asset management data model
CN105992022A (en) On-line recording and downloading method and system
US10176257B2 (en) Interactive video distribution system with content similarity matching
US10136188B1 (en) Display of content in a program guide based on immediate availability of the content
US11657851B2 (en) System and device for remote automatic editor

Legal Events

Date Code Title Description
AS Assignment

Owner name: VIACOM INTERNATIONAL INC., NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FREY, STEWART ALAN;VAYSBERG, VITALIY;DILLON, FRANCIS HENRY, IV;AND OTHERS;SIGNING DATES FROM 20130108 TO 20130128;REEL/FRAME:064579/0500

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION