US20150156518A1 - Media packaging - Google Patents
Media packaging Download PDFInfo
- Publication number
- US20150156518A1 US20150156518A1 US14/621,080 US201514621080A US2015156518A1 US 20150156518 A1 US20150156518 A1 US 20150156518A1 US 201514621080 A US201514621080 A US 201514621080A US 2015156518 A1 US2015156518 A1 US 2015156518A1
- Authority
- US
- United States
- Prior art keywords
- media
- packaging
- metadata
- format
- delivery package
- 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.)
- Abandoned
Links
- 238000004806 packaging method and process Methods 0.000 title claims abstract description 181
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000004590 computer program Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 17
- 230000006835 compression Effects 0.000 claims description 4
- 238000007906 compression Methods 0.000 claims description 4
- 230000001052 transient effect Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 16
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
- H04N21/2223—Secondary servers, e.g. proxy server, cable television Head-end being a public access point, e.g. for downloading to or uploading from clients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/232—Content retrieval operation locally within server, e.g. reading video streams from disk arrays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling 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/23614—Multiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing 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/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing 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/2389—Multiplex stream processing, e.g. multiplex stream encrypting
- H04N21/23895—Multiplex stream processing, e.g. multiplex stream encrypting involving multiplex stream encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management 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/462—Content 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/633—Control signals issued by server directed to the network components or client
- H04N21/6338—Control signals issued by server directed to the network components or client directed to network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network 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 in efficient.
- 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. 4A-FIG . 4 D arc 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 TDs 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. 4A-FIG . 4 D are a flow chart 400 illustrating an exemplary computer-implemented method of packaging media files.
- the method illustrated in FIG. 4A-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.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
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
- 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. 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 in efficient.
- 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.
- 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 apackaging template 300 written in XML; and -
FIG. 4A-FIG . 4D arc a flow chart illustrating an exemplary computer-implemented method of packaging media files. - 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 anexemplary system 100 for packaging media files.System 100 includesclient 110,media packaging server 120,media repository 130, andrecipient 140.Client 110,media packaging server 120,media repository 130, andrecipient 140 ofsystem 100 can be connected vianetwork 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 withmedia packaging server 120 andmedia repository 130.Media packaging server 120 can be connected to a public network along withrecipient 140. In such an embodiment,media packaging server 120 can provide the packaged media torecipient 140 withoutrecipient 140 being on the same network asclient 110 andmedia 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, andclient 140 can each be any computing device, including, for example, a server, personal computer, smart phone, PDA, or tablet. While the illustrated embodiment depictsClient 110,media packaging server 120,media repository 130, andclient 140 as separate computing devices, in some embodiments two or more ofclient 110,media packaging server 120, andmedia 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 frommedia repository 130, package the media files, and deliver the media files torecipient 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 frommedia 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 aflow chart 200 illustrating an exemplary computer implemented method of packaging media files. In some embodiments,system 100 ofFIG. 1 can be used to implement the method illustrated inflow 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 fromclient 110 vianetwork 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 bymedia 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 fromclient 110 vianetwork 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 apackaging 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 , atstep 230, media files are retrieved based on a media asset ID in the list of the one or more media asset TDs and the packaging template. For example,media packaging server 120 can retrieve media files frommedia repository 130 based on the media asset ID and the packaging template.Media packaging server 120 can request frommedia 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 frommedia 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 frommedia 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 instep 230 and the metadata retrieved instep 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 torecipient 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 aflow chart 400 illustrating an exemplary computer-implemented method of packaging media files. In some embodiments, the method illustrated inFIG. 4A-FIG . 4D can be performed bymedia packaging server 120 ofFIG. 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 atstep 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. Atstep 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 atstep 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. Atstep 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. Atstep 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, atstep 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 atstep 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 arc 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 (20)
1-25. (canceled)
26. A computer-implemented method of packaging media files comprising:
transmitting, by a client device, a request from a user to a media packaging server, the request including a packaging template and a media asset ID identifying a media file requested by the user of the client device, the packaging template identifying requested metadata associated with the media asset ID and a format for the media file and metadata requested by the user of the client device;
receiving, by the client device, a delivery package from the media packaging server, the delivery package including a media file and metadata matching the media asset ID and metadata in the request in the format indicated in the packaging template; and
extracting, by the client device, the media file and metadata from the delivery package based upon the format indicated in the packaging template.
27. The method of claim 26 , further comprising:
transmitting, by the client device, a further request to the media packaging server, the further request including a further packaging template and a further media asset ID identifying a further media file requested by the user of the client device, the further packaging template identifying further requested metadata associated with the further media asset ID and a further format for the further media file and metadata requested by the user of the client device;
further receiving, by the client device, a further delivery package from the media packaging server, the further delivery package including the further media file and metadata matching the further media asset ID and metadata in the request in the further format indicated in the packaging template; and
extracting, by the client device, the further media file and metadata from the further delivery package based upon the further format indicated in the further packaging template.
28. The method of claim 26 , wherein the media file is reformatted by the media packaging server from a first format to a second format, the second format being the format indicated in the packaging template.
29. The method of claim 26 , wherein the media file is reformatted by transcoding the media file into the format indicated by the packaging template.
30. The method of claim 26 , further comprising:
including, by the client device, a requested network for the reception of the delivery package, wherein the delivery package is received via the requested network.
31. The method of claim 26 , wherein the packaging template is generating using one of XML, plain text, and binary.
32. The method of claim 26 , wherein the media file is a video and the packaging template indicates a resolution, a dialogue track language, and a subtitle language.
33. The method of claim 26 , wherein the metadata comprises at least one of format information, runtime information, subtitle information, and closed-caption information associated with the media file.
34. The method of claim 26 , further comprising:
including, by the client device, a requested non-transient storage medium for storing the delivery package prior to receiving the delivery package.
35. The method of claim 26 , further comprising:
including, by the client device, a requested compression format for compressing the delivery package.
36. The method of claim 26 , further comprising:
including, by the client device, a requested encryption format for encrypting the delivery package.
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:
transmit a request from a client device of a user to a media packaging server, the request including a packaging template and a media asset ID identifying a media file requested by the user of the client device, the packaging template identifying requested metadata associated with the media asset ID and a format for the media file and metadata requested by the user of the client device;
receive a delivery package from the media packaging server, the delivery package including a media file and metadata matching the media asset ID and metadata in the request in the format indicated in the packaging template; and
extract the media file and metadata from the delivery package based upon the format indicated in the packaging template.
38. The computer program product of claim 37 , further including instructions being operable to cause the data processing apparatus to:
transmit a further request to the media packaging server, the further request including a further packaging template and a further media asset ID identifying a further media file requested by the user of the client device, the further packaging template identifying further requested metadata associated with the further media asset ID and a further format for the further media file and metadata requested by the user of the client device;
further receive a further delivery package from the media packaging server, the further delivery package including the further media file and metadata matching the further media asset ID and metadata in the request in the further format indicated in the packaging template; and
extract the further media file and metadata from the further delivery package based upon the further format indicated in the further packaging template.
39. The computer program product of claim 37 , wherein the media file is reformatted by the media packaging server from a first format to a second format, the second format being the format indicated in the packaging template.
40. The computer program product of claim 37 , wherein the media file is reformatted by transcoding the media file into the format indicated by the packaging template.
41. The computer program product of claim 37 , further including instructions being operable to cause the data processing apparatus to:
include a requested network for the reception of the delivery package, wherein the delivery package is received via the requested network.
42. The computer program product of claim 37 , further including instructions being operable to cause the data processing apparatus to:
include a requested non-transient storage medium for storing the delivery package prior to receiving the delivery package.
43. The computer program product of claim 37 , further including instructions being operable to cause the data processing apparatus to:
include a requested compression format for compressing the delivery package.
44. The computer program product of claim 37 , further including instructions being operable to cause the data processing apparatus to:
include a requested encryption format for encrypting the delivery package.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
Applications Claiming Priority (2)
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 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/622,881 Continuation US8984575B2 (en) | 2012-09-19 | 2012-09-19 | Media packaging |
Related Child 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 |
---|---|
US20150156518A1 true US20150156518A1 (en) | 2015-06-04 |
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 (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/622,881 Active 2032-11-22 US8984575B2 (en) | 2012-09-19 | 2012-09-19 | Media packaging |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
Country Status (1)
Country | Link |
---|---|
US (4) | US8984575B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10333875B2 (en) * | 2016-11-28 | 2019-06-25 | Snap Inc. | Processing media content in a messaging system |
Families Citing this family (5)
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 |
US20240028208A1 (en) * | 2022-07-25 | 2024-01-25 | Samsung Electronics Co., Ltd. | Memory-interface converter chip |
US20240340326A1 (en) * | 2023-04-06 | 2024-10-10 | Microsoft Technology Licensing, Llc | Playback aware video packaging |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020180782A1 (en) * | 2000-10-03 | 2002-12-05 | Takeshi Natsuno | Content providing method, providing facility, and user facility |
US20100095127A1 (en) * | 2008-10-10 | 2010-04-15 | International Business Machines Corporation | Tunable encryption system |
US8903895B2 (en) * | 2009-07-22 | 2014-12-02 | Xinlab, Inc. | Method of streaming media to heterogeneous client devices |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1309901B1 (en) * | 1999-12-02 | 2008-05-21 | Western Digital Technologies, Inc. | System for remote recording of television programs |
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 |
US8260848B2 (en) * | 2009-03-02 | 2012-09-04 | Intel Corporation | Re-headerer system and method |
US20120036365A1 (en) * | 2010-08-06 | 2012-02-09 | Microsoft Corporation | Combining request-dependent metadata with media content |
US9124671B2 (en) * | 2011-12-07 | 2015-09-01 | Imagine Communicaions Corp. | Media service and method for delivery of stored media |
-
2012
- 2012-09-19 US US13/622,881 patent/US8984575B2/en active Active
-
2015
- 2015-02-12 US US14/621,080 patent/US20150156518A1/en not_active Abandoned
-
2017
- 2017-10-17 US US15/786,121 patent/US11765436B2/en active Active
-
2023
- 2023-08-14 US US18/449,262 patent/US20230388607A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020180782A1 (en) * | 2000-10-03 | 2002-12-05 | Takeshi Natsuno | Content providing method, providing facility, and user facility |
US20100095127A1 (en) * | 2008-10-10 | 2010-04-15 | International Business Machines Corporation | Tunable encryption system |
US8903895B2 (en) * | 2009-07-22 | 2014-12-02 | Xinlab, Inc. | Method of streaming media to heterogeneous client devices |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10333875B2 (en) * | 2016-11-28 | 2019-06-25 | Snap Inc. | Processing media content in a messaging system |
US10630623B2 (en) * | 2016-11-28 | 2020-04-21 | Snap Inc. | Processing media content in a messaging system |
US10992616B2 (en) * | 2016-11-28 | 2021-04-27 | Snap Inc. | Processing media content in a messaging system |
US11228546B2 (en) * | 2016-11-28 | 2022-01-18 | Snap Inc. | Processing media content in a messaging system |
Also Published As
Publication number | Publication date |
---|---|
US20230388607A1 (en) | 2023-11-30 |
US20140082684A1 (en) | 2014-03-20 |
US20180041816A1 (en) | 2018-02-08 |
US11765436B2 (en) | 2023-09-19 |
US8984575B2 (en) | 2015-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230388607A1 (en) | Media packaging | |
US11784898B2 (en) | Monitoring streaming media content | |
EP3010237B1 (en) | Displaying personalized information extracted from a personalized video content stream | |
US8695054B2 (en) | Ingesting heterogeneous video content to provide a unified video provisioning service | |
US8887215B2 (en) | Targeted high-value content in HTTP streaming video on demand | |
US9641323B2 (en) | Security processing system and method for HTTP live streaming | |
US9621963B2 (en) | Enabling delivery and synchronization of auxiliary content associated with multimedia data using essence-and-version identifier | |
US8966371B2 (en) | Metadata for providing media content | |
US20120123992A1 (en) | System and method for generating multimedia recommendations by using artificial intelligence concept matching and latent semantic analysis | |
US20130212342A1 (en) | Storage format for media streams | |
US20140096162A1 (en) | Automated Social Media and Event Driven Multimedia Channels | |
US20150319505A1 (en) | Systems and Methods for Delivering Content to a Media Content Access Device | |
US20120128334A1 (en) | Apparatus and method for mashup of multimedia content | |
US20130151493A1 (en) | Media service and method for delivery of stored media | |
KR20110056476A (en) | Multimedia distribution and playback systems and methods using enhanced metadata structures | |
US20120159549A1 (en) | Sony epg and metadata solution with multiple service sources | |
US20170134810A1 (en) | Systems and methods for user interaction | |
US9607084B2 (en) | Assigning a single master identifier to all related content assets | |
US9773098B1 (en) | Media content feed format for management of content in a content hosting website | |
US20210266614A1 (en) | Systems and methods for modifying date-related references of a media asset to reflect absolute dates | |
US10176257B2 (en) | Interactive video distribution system with content similarity matching | |
US11657851B2 (en) | System and device for remote automatic editor | |
US20240107099A1 (en) | System and Method for Creating Personalized Media Channels | |
Evain et al. | TV‐anytime phase 1 and MPEG‐7 | |
De Vos | Usability improvements on a Metadata Server for Video on Demand based on Free Software |
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:035491/0255 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |