The present disclosure relates in general to the field of content publishing. In particular, the present disclosure relates to a system and method for multimedia content publishing on multiple platforms.
Multimedia content publishing has evolved in many ways and still continues to evolve. The television is significantly the first platform to enable content providers (e.g., content owners, creators, aggregators and advertisers) to publish and deliver multimedia content to households en masse. The personal computer and the Internet are other significant platforms that publish and deliver multimedia content. Recently, the emergence of consumer electronic devices with Internet access have created an explosion in the number of new platforms that are available to content providers. For example, these platforms include GOOGLE TV®, GOOGLE® ANDROID®, ROKU®, MICROSOFT® XBOX 360®, SONY® PLAYSTATION 3®, APPLE® IOS®, AMAZON KINDLE FIRE®, and the NINTENDO® WII®.
Multimedia content is typically delivered to these platforms as applications that are purchased (or provided for free) and downloaded via an online application store or market (e.g., iTunes and Google Play) by users (herein referred to as viewers). Applications refer to software programs that are designed to run on a particular platform. Applications include, but are not limited to, games as well as software for accessing video/audio clips and streams. Applications that provide access to video/audio content from a content provider are herein referred to as custom channels. For example, NETFLIX®, a content provider, provides a custom channel for the GOGGLE® ANDROID® platform and allows subscribers to access on-demand video streams on their ANDROID® devices. NETFLIX® also provides a custom channel for various devices such as APPLE® IOS® devices, ROKU® devices, MICROSOFT® XBOX 360®, SONY® PLAYSTATION 3®, and NINTENDO® WII®.
Applications, including custom channels are typically platform-specific. Therefore, content providers are required to develop these applications specific to each platform. Custom application development may require content providers to internally develop each application for target platforms or work with third-party programmers if the content providers do not have the programming expertise. Thus, the process of launching a custom channel on multiple platforms becomes costly and time consuming.
A system and method for multimedia content publishing on multiple platforms are herein disclosed. According to one embodiment, the computer-implemented method includes receiving specified settings from a plurality of configurable template settings for a custom channel application, receiving specified platforms from a plurality of platforms for the custom channel application; publishing the custom channel application to each of the specified platforms, and providing a user interface of the custom channel application that is customized based on each of the specified platforms.
The above and other preferred features, including various novel details of implementation and combination of events, will now be more particularly described with reference to the accompanying figures and pointed out in the claims. It will be understood that the particular systems and methods described herein are shown by way of illustration only and not as limitations. As will be understood by those skilled in the art, the principles and features described herein may be employed in various and numerous embodiments without departing from the scope of the invention.
The accompanying figures, which are included as part of the present specification, illustrate the presently preferred embodiments of the present invention and together with the general description given above and the detailed description of the preferred embodiments given below serve to explain and teach the principles of the present invention.
The figures are not necessarily drawn to scale and elements of similar structures or functions are generally represented by like reference numerals for illustrative purposes throughout the figures. The figures are only intended to facilitate the description of the various embodiments described herein. The figures do not describe every aspect of the teachings disclosed herein and do not limit the scope of the claims.
A system and method for multimedia content publishing on multiple platforms are herein disclosed. According to one embodiment, the computer-implemented method includes receiving specified settings from a plurality of configurable template settings for a custom channel application, receiving specified platforms from a plurality of platforms for the custom channel application; publishing the custom channel application to each of the specified platforms, and providing a user interface of the custom channel application that is customized based on each of the specified platforms.
Each of the features and teachings disclosed herein can be utilized separately or in conjunction with other features and teachings to provide a method for reducing the order of system models exploiting sparsity. Representative examples utilizing many of these additional features and teachings, both separately and in combination, are described in further detail with reference to the attached figures. This detailed description is merely intended to teach a person of skill in the art further details for practicing preferred aspects of the present teachings and is not intended to limit the scope of the claims. Therefore, combinations of features disclosed above in the detailed description may not be necessary to practice the teachings in the broadest sense, and are instead taught merely to describe particularly representative examples of the present teachings.
In the description below, for purposes of explanation only, specific nomenclature is set forth to provide a thorough understanding of the present disclosure. However, it will be apparent to one skilled in the art that these specific details are not required to practice the teachings of the present disclosure.
Some portions of the detailed descriptions herein are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the below discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk, including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The methods or algorithms presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems, computer servers, or personal computers may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. It will be appreciated that a variety of programming languages may be used to implement the teachings of the disclosure as described herein.
Moreover, the various features of the representative examples and the dependent claims may be combined in ways that are not specifically and explicitly enumerated in order to provide additional useful embodiments of the present teachings. It is also expressly noted that all value ranges or indications of groups of entities disclose every possible intermediate value or intermediate entity for the purpose of original disclosure, as well as for the purpose of restricting the claimed subject matter. It is also expressly noted that the dimensions and the shapes of the components shown in the figures are designed to help to understand how the present teachings are practiced, but not intended to limit the dimensions and the shapes shown in the examples.
According to one embodiment, the present system provides automated building of native applications for streaming devices that are supported by various platforms. The present system provides an automated generation of artwork (e.g., icons, logos, backgrounds and other graphics) on the user interface of the custom channel application for a variety of video streaming devices from a single configuration of templates and settings. The single configuration of templates and settings are discussed in detail below. For example, the present system provides a web user interface to apply this single configuration of templates and settings.
After the content provider selects a setup option 201 or an add new application option 202, he/she can configure channel information for the custom channel as illustrated in
Referring to
In another embodiment, after the content provider selects the content option 205, he/she may choose to configure the mode of adding content and DRM as illustrated in
The content provider further selects an encryption setting 506 (e.g., digital rights management (DRM)) to enable content protection features such as disabling offline playback, high-bandwidth digital content protection (HDCP), and analog copy protection on uploaded media content files. The encryption settings include, but not limited to, selectable fields for disabling encryption, and enabling encryption for devices (e.g., desktop and web clients).
In another embodiment, after the content provider selects the content option 205, he/she may choose to configure the category settings that categorizes the content files, as illustrated in
In another embodiment, after the content provider selects the content option 205, he/she may choose to configure live events and live playlists as illustrated in
Referring to
In one embodiment, after the content provider selects the appearance option 203, he/she may configure a title bar, as illustrated in
In another embodiment, after the content provider selects the appearance option 203, he/she may configure a background screen and welcome screen, as illustrated in
Referring to
Referring to
The content provider may further select the feature option 204 in
According to one embodiment, the present system includes a database of viewers with associated authentication information (e.g., user ID and password) for user authentication. In another embodiment, the content provider selects the authentication option utilize authentication information from the content provider's own viewer database for user authentication. The present system allows the content provider to provide a login URL and validation URL to grant access to viewers from the content provider's own viewer database. The login URL and validation URL may contain macros to replace information regarding the custom channel from the present system. For example, the login URL and validation URL contains a username macro to replace a user ID on a device. Other macros include a password, a device ID, an operating system (e.g., APPLE® IOS®, and GOOGLE® ANDROID®), a version of the operating system, a platform (e.g., APPLETV®, IPAD®, tablet and a device that may share an operating system with different hardware (e.g., IPHONE® and IPAD® share the IOS® operating system)). The values of these macros replaces the original information stored on the system at the time the present system sends an external authentication API during authentication. This allows the present system to gain access to an existing viewer database of the content provider. In another embodiment, the present system provides user authentication for a third party verification (e.g., a social network) by sending a device activation API as described in further detail below.
Referring to
Referring to
According to one embodiment, the publishing system allows the content provider to specify an order of content by category so that content in a top category is highlighted on the user interface (e.g., displayed at the top of the user interface) of the custom channel.
According to another embodiment, the publishing system allows the content provider to tag a content as a featured content. The publishing system provides a spotlight image for the featured content, that highlights the featured content on the user interface of the custom channel. According to another embodiment, the content provider selects features, as illustrated in
The web interface component 1601 provides the web interface that allows the content provider to interact with the publishing system. The web interface component 1601 provides various template settings of the custom channel for the content provider to configure. The template settings directory 1602 is a directory of various template settings that the content provider may configure, such as content settings, appearance settings, pricing settings, feature settings, and report settings. The content file storage 1603 provides a database for storing content files uploaded by the content provider to the publishing system. According to one embodiment, the content file storage 1603 stores content files that are downloaded from a content feed provided by the content provider.
The encoding logic component 1604 includes logic for encoding content files based on the platforms and settings specified by the content provider. The encrypting logic component 1605 includes logic for encrypting content files based on digital rights management (DRM) settings and platforms specified by the content provider. The logic component 1605 includes logic for customizing template settings to provide a customized user interface that is adapted to each platform specified by the content provider.
According to one embodiment, the published custom channel allows a user to pause playback (e.g., watch a movie, listen to music) on one device and resume at a later time on a different device. The two devices providing the published custom channel may be of the same or a different platform type.
According to one embodiment, the published custom channel supports 240-1080p adaptive bit rate (ABR) streaming (e.g., HTML Live Streaming) which modifies the resolution of the streaming media depending on the speed/quality of the data connection. The published custom channel supports content queuing, RSS/XML/API content synching, content promotion via a closed viral loop, and a third-party single sign-on feature (e.g., FACEBOOK° for viewers.
The upload server 1710 evaluates video assets from the content file 1701 that require encoding. According to one embodiment, the content file 1701 requires encoding into a target encoded video format that is suitable for playback on a platform specified by the content provider. The content file 1701 may be encoded into one or more target encoded video formats based on a number of platforms specified by the content provider. In another embodiment, the content file 1701 requires encoding into a target encoded video format based on the application display template (e.g., TV template, movie template and magazine template) illustrated in
The transcode cluster 1730 reads the transcode message 1721 from the transcode queue 1720 and downloads the content file 1701 from the upload server 1710. According to one embodiment, transcode cluster 1730 downloads the content file 1701 via a hypertext transfer protocol (HTTP) GET request or stores it on a storage server (e.g., AMAZON® Simple Storage Service (S3)). For example, the upload server 1710 stores a content file 1701 that is manually uploaded by a content provider on a storage server and transfers the content file 1701 to the transcode cluster 1730 using a download software development kit (SDK) (e.g., AMAZON®) The download SDK provides a HTTP GET with user authentication of the content provider. If the content file 1701 is from a content feed, the content provider provides the upload server 1710 with access to the content feed by a proxy through the upload server 1710 so that the content provider only allows download access for the upload server 1710. The proxy access provides security in the form of user authentication or client certificates, according to one embodiment. The transcode cluster 1730 encodes the video in the content file 1701 into the target encoded video format 1702. According to one embodiment, the content file 1701 is encoded up to a maximum of 1080p resolution, 29.97 fps with H264 and advanced audio coding (AAC) codecs. The target encoded video format 1702 is encoded up to the maximum resolution of the content file 1701. During encoding, the aspect ratio of the content file 1701 is preserved. The transcode cluster 1730 may transcode the video in the content file 1701 into one or more target encoded video formats. According to one embodiment, the transcode cluster 1730 is based on an online web service (e.g., AMAZON® Elastic Compute Cloud (EC2) provided by AMAZON WEB SERVICES®) that provides resizable compute capacity in the cloud. The transcode cluster 1730 deletes the content file 1701 after transcoding is complete so that the transcode cluster 1730 is de-provisioned, according to one embodiment.
The transcode cluster 1730 posts a encrypt message 1741 to an encryption queue 1740 (e.g., AMAZON® Simple Queue Service (SQS) provided by AMAZON WEB SERVICES″). The encrypt message 1741 includes a pointer to the encoded video format 1702 and to a target encrypted video stream 1703. According to one embodiment, the target encrypted video stream 1703 is based on the specified platform and encrypted settings provided by the content provider. The transcode cluster 1730 allows the encryption cluster 1750 to synchronize (e.g., via rsync) or copy (e.g., via secure copy (SCP)) files from the transcode cluster 1730. Rsync and SCP are common (and public) Linux/Unix utilities to securely copy files using secure shell (SSH) keys between the transcode cluster 1730 and the encryption cluster 1750.
The encryption cluster 1750 reads the encrypt message 1741 from the encryption queue 1740 and securely downloads the encoded video format 1702 from the transcode cluster 1730. The encrypt message 1741 includes the IP address of the transcode cluster 1730 and the encoded video format 1702 (e.g., a file code). After the encryption cluster 1750 downloads the encoded video format 1702, the transcode cluster 1730 deletes the encoded video format 1702. The encryption cluster 1750 packages the encoded video format 1702 into an encrypted video stream 1703 using an encryption packaging tool based on the specified platform. The encryption packaging tool includes, but are not limited to, PLAYREADY® for MICROSOFT° platform, WIDEVINE® for ANDROID° platform and FAIRPLAY° for APPLE° IOS® platform. According to one embodiment, the DRM cluster 1750 is based on an online web service (e.g., AMAZON® Elastic Compute Cloud provided by AMAZON WEB SERVICES®) that provides resizable compute capacity on the Internet. The encryption cluster 1750 deletes the encoded video format 1702 after packaging.
The encrypted video stream 1703 from the encryption cluster 1750 is stored in a storage server 1760 (e.g., AMAZON® Simple Storage Service (S3)) provided by AMAZON WEB SERVICES®). According to one embodiment, the encryption cluster 1750 determines whether to package the encoded video format 1702 based on the encryption setting provided by the content provider. If encryption is not required, the storage server 1760 stores the encoded video format 1702 directly from the transcode cluster 1730. The encryption cluster 1750 deletes the encrypted video stream 1703 after the storage server 1760 stores the encrypted video stream 1703.
When a viewer selects a video in the custom channel on his/her device 1780 of a particular platform type, the content delivery network 1770 delivers the encrypted video stream 1703 (or the encoded video format 1702) to the viewer's device 1780 with the specified platform. According to one embodiment, the content delivery network 1770 is an edge delivery network (e.g., AMAZON® CloudFront provided by AMAZON WEB SERVICES®) that distributes content to end-users using a network of edge locations.
A media encoder 1802 streams audio and video in real-time from a video camera 1801 to a media server cluster 1804 using real time messaging protocol (RTMP), according to one embodiment. The media encoder 1802 includes, but is not limited to, third party encoders (e.g., ADOBE® FLASH® media live encoder).
The media server cluster 1804 encodes the live stream into a target encoded live stream that is suitable for playback on the specified platform. The media server cluster 1804 further provides dynamic encryption of the encoded live stream into an encrypted live stream based on the specified platform. The media server cluster 1804 is based on, but not limited to, media servers (e.g., ADOBE® FLASH® media server).
The content delivery network 1805 receives the encrypted live stream from the media server cluster 1804. When a viewer selects the live event for viewing in the custom channel on his/her device 1806 with the specified platform at the date and time specified by the content provider, the content delivery network 1805 delivers the encrypted live stream to the viewer's device 1806.
According to one embodiment, the content provider provides a content feed to the present publishing system via a web interface in the form of a content feed (e.g., MRSS feed). The content feed has a feed URL (e.g., http://search.yahoo.com/mrss/) which includes tags that are used to control the behavior, and user experience of the application, including restricting content access to certain countries (geo-filtering), specifying up to two levels of categories for each item, specifying poster art for each item, featuring items, and control the order of featured items, and creating episodic content.
For example, an exemplary feed URL is defined as follows:
The feed URL includes a content tag (e.g., media:content) that defines attributes of the content. For example, the content tag is defined as follows:
Other additional tags that define the attributes of the content include a rating tag, a title tag, a description tag, a thumbnail tag, a category tag, a restriction tag, a community tag, and a price tag. The rating tag (e.g., media:rating) displays age appropriateness for the content. The title tag (e.g., media:title) displays a title of the content. The description tag (e.g., media:description) displays a description for the content. The thumbnail tag (e.g., media:thumbnail) displays poster art for the content, The category tag (e.g., media:category) displays categories for various levels (e.g., up to two levels). The restriction tag (e.g., media:restriction) displays countries that are restricted from playing the content. According to one embodiment, the restriction tag displays countries that are allowed to play the content. The restriction tag includes a relationship attribute that can be either configured as allow or deny. A content provider may configure the relationship attribute of the restriction tag as allow to indicate countries listed that are allowed to play the content. Alternatively, the content provider may configure the relationship attribute as deny to indicate countries that are restricted from playing the content. The community tag (e.g., media:community) displays ratings for the content. The price tag (media:price) displays a price for viewing the content.
According to one embodiment, a scheme attribute is added to the category tag to specify a categorization scheme. The category tag is used in combination with a scheme attribute to control the order of display of contents. For example, a category tag that specifies an item as the first featured item to display to a viewer is defined as follows:
<media:category scheme=“urn:skychnl:featured”>1</media:category>
According to another embodiment, the category tag is used in combination with a scheme attribute to specify episodic content. Typically, episodic content includes two parts: series and episodes. A label attribute may be added to the category tag for a human-readable label. The label attribute associates episodes with a series. The scheme attribute identifies a video as a series or episode. A series represents a group of episodes while each episode is associated with a particular series. In one embodiment, the order of the episode is specified by specifying the series and episode number separated by a “.”. For example, an episode number 1 of series number 1 with a series label s01 is specified as 1.1 as the category value. The category tag for series label s01 is defined as follows:
media:category scheme=“urm.skychnl.series”label=“s01”> </media:category>
For episode number 1 of series number 1, the category tag is defined as follows:
media:category scheme=“urn.skychnl:episode”label=“s01”>1.1</media:category>
In this way, the user interface of the custom channel provides a view to select a specific episode from a specific series.
According to one embodiment, the present system provides a device activation API request to activate a viewer's device with a social network (e.g., FACEBOOK®). The API request may be sent via hypertext transfer protocol secure (HTTPS) for secure communication or other types of communications protocol known to one ordinary skilled in the art.
According to one embodiment, the present system provides a user API request to a viewer's device after a viewer downloads the custom channel from an online application store and logs into the custom channel on his/her device. The present system provides the user API request to receive user details (e.g., IP address, external facing IP, billing status, expiry date), and user subscription status (e.g., IP address, external facing IP, subscription expiry and country code). The user API request determines if an external user ID (e.g., FACEBOOK® ID) of the viewer used for logging in is associated with an existing user ID of the present system. If there is an association, the external user ID is merged with the existing user ID of the present system and deleted. If the external user ID is new, then an association to a user ID of the present system is made.
According to one embodiment, the present system provides a watch list API request to the device to receive video details (e.g., video ID, thumbnail, video size, video array) that a viewer has placed into a queue for viewing.
According to one embodiment, the present system provides a video API request to retrieve video details from a viewer's device, The video API request may determine if a video can be played in a country of the viewer by comparing an excluded list of countries for a video with the country code returned by the user API request. The video API request may further determine a current playing position of a video and adds the video to a progress queue (e.g., based on >25% watched but <99% watched). The video API request may determine a current playing position of a video and prompts the viewer to continue watching (e.g., based on >25% watched).
According to one embodiment, the present system provisions to the content provider's advertisement server in order to display clickable banner advertisements and video advertisements in the custom channel. As discussed earlier, the present system allows a content provider to configure the type of advertisements as illustrated in
A data storage device 2105 such as a magnetic disk or optical disc and its corresponding drive may also be coupled to architecture 2100 for storing information and instructions. Architecture 2100 can also be coupled to a second I/O bus 2106 via an I/O interface 2107. A plurality of I/O devices may be coupled to I/O bus 2106, including a display device 2108, an input device (e.g., an alphanumeric input device 2109 and/or a cursor control device 2110).
The communication device 2111 allows for access to other computers (e.g., servers or clients) via a network. The communication device 2111 may include one or more modems, network interface cards, wireless network interfaces or other interface devices, such as those used for coupling to Ethernet, token ring, or other types of networks.
The above example embodiments have been described hereinabove to illustrate various embodiments of implementing a system and method for multimedia content publishing on multiple platforms. Various modifications and departures from the disclosed example embodiments will occur to those having ordinary skill in the art. The subject matter that is intended to be within the scope of the invention is set forth in the following claims.
The present application claims the benefit of and priority to U.S. Provisional Patent Application No. 61/641,841 entitled “SYSTEM AND METHOD FOR MULTIMEDIA CONTENT PUBLISHING ON MULTIPLE PLATFORMS” filed on May 2, 2012, the disclosure of which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61641841 | May 2012 | US |