TECHNICAL FIELD

The present disclosure generally relates to a system and method management and distribution of media content, and, more particularly, to a system and method of dynamic web streaming of media content without restore and batch processing.

BACKGROUND

With the ever increasing amount of media content that is being generated and stored for later recall, entities and individuals are constantly searching for techniques to minimize resource consumption and reduce costs for such media storage. Currently, content consumers typically archive monolithic files that containing hours of media content from an event, e.g., a live sporting event, for example. More specifically, such users archive these files in object stores in services, such as the Google Cloud Platform, while the keep a proxy (i.e., a much smaller/lower quality) version of this content online or even locally so they can allow staff access to review the archived footage.

However, using conventional systems, if a content consumer wishes to obtain a targeted or desired subsection of this content, the system will restore the whole file from an object store to a Cloud compute instance. Then, tooling such as ffMpeg can be run to process the file to produce the predetermined subrange as a new file. This new file can then be delivered to the user. However, this process is tedious and resource consuming. For example, depending on the size of the file, the process may require one hour or more to perform this preprocessing of the whole file before the predetermined subrange can be made available to the end user in the required high quality version of the content.

SUMMARY

According to an exemplary aspect, a system and method is provided for dynamic (or “just-in-time”) web streaming of media content without restore and batch processing. Specifically, the system and method disclosed herein provide for a partial restore of media content, where a small sub-section of the archived media is requested by a user, for inclusion in an edit. This system addresses the conventional system problems of being resource intensive and expensive where the whole of the original piece must be restored. As such, the exemplary system provides a web server that is configured to offer grains for any part of an archived monolithic file to be made available just-in-time, instead of the batch processing. Because grains are available over HTTP, any part of the customer's archive is available to them instantly and dynamically with no restore process being required at all.

According to one exemplary embodiment, a system is provided for of dynamic web streaming of media content without full restore of the media file. In this aspect, the system includes a file store configured to store at least one linear file comprising a plurality of chunks of media content; a media file parser configured to parse the at least one linear file of media content to identify a file format of the at least one linear file; a file structure analyzer configured to generate file access metadata based on the identified file format, with the generated file access metadata providing indexing access information for the plurality of chunks of the media content; a media access provider configured to generate an index file based on the generated file access metadata, the generated index file configured to provide access to a web browser for access only a portion of the at least one linear file based on a streaming protocol associated with the web browser; and a media content streaming provider configured to receive a media access request from the web browser, access the respective chunks of media content corresponding to the portion of the at least one linear file, and stream the accessed chunks of media content to the web browser, with the accessed chunks of media content configured to be consumed by the web browser based on the streaming protocol associated with the web browser. Moreover, according to the exemplary aspect, the web browser is configured to generate the media access request based on the generated index file, such that the generated media access request includes a plurality of frame offsets configured to be interpreted by the media content streaming provider to access respective chunks of media content. Yet further, the system further comprises a web server that includes each of the media file parser, the file structure analyzer, the media access provider, and the media content streaming provider, with the web server communicatively coupled to the file store and the web browser.

In another exemplary aspect, the media content streaming provider is configured to stream the accessed chunks of media content to the web browser without restore or batch processing the entirety of the at least one linear file stored in the file store.

In another exemplary aspect, the web server is configured to provide source, flow, and grain abstractions of the media content of the at least one linear file to the web browser, such that the web browser is configured to dynamically access a video timeline of the media content to requests grains of the media content of the at least one linear file.

In another exemplary aspect, the grains comprise encapsulated chunks of the media content corresponding to the portion of the at least one linear file.

In another exemplary aspect, the web browser is configured to provide a graphical user interface to present a proxy file of the at least one linear file, and to receive a user input that targets a selected subset of the media content of the at least one linear file based on a corresponding selected portion of the proxy file.

In another exemplary aspect, the web server further comprises a format transformation module configured to dynamically transform the format of the accessed chunks of media content to a video consumption format for the web browser before the media content streaming provider transmits the accessed chunks of media content to the web browser.

In yet another embodiment, a system is provided for real-time web streaming of media content without full restore of the media file. The system includes a media file parser configured to parse at least one linear file of media content to identify a file format of the at least one linear file, wherein the at least one linear file comprises a plurality of chunks of media content; a file structure analyzer configured to generate file access metadata based on the identified file format, with the generated file access metadata providing indexing access information for the plurality of chunks of the media content; a media access provider configured to generate an index file based on the generated file access metadata, the generated index file configured to provide access to a web browser for accessing only a portion of the at least one linear file based on a streaming protocol associated with the web browser; and a media content streaming provider configured to receive a media access request from the web browser, access the respective chunks of media content corresponding to the portion of the at least one linear file, and stream the accessed chunks of media content to the web browser, with the accessed chunks of media content configured to be consumed by the web browser based on the streaming protocol associated with the web browser. Moreover, the system further comprises a web server that includes each of the media file parser, the file structure analyzer, the media access provider, and the media content streaming provider, with the web server communicatively coupled to the web browser and a file store hosting the at least one linear file.

In yet another embodiment, a system is provided for real-time web streaming of media content without full restore of the media file. In this aspect, the system includes a media file parser configured to parse at least one linear file of media content to identify a file format of the at least one linear file, wherein the at least one linear file comprises a plurality of chunks of media content; a file structure analyzer configured to generate file access metadata based on the identified file format; a media access provider configured to generate an index file based on the generated file access metadata, the generated index file configured to provide access to a web browser for accessing only a portion of the at least one linear file based on a streaming protocol associated with the web browser; a media content streaming provider configured to receive a media access request from the web browser, access the respective chunks of media content corresponding to the portion of the at least one linear file, and stream the accessed chunks of media content to the web browser, with the accessed chunks of media content configured to be consumed by the web browser based on the streaming protocol associated with the web browser.

The above simplified summary of example aspects serves to provide a basic understanding of the present disclosure. This summary is not an extensive overview of all contemplated aspects, and is intended to neither identify key or critical elements of all aspects nor delineate the scope of any or all aspects of the present disclosure. Its sole purpose is to present one or more aspects in a simplified form as a prelude to the more detailed description of the disclosure that follows. To the accomplishment of the foregoing, the one or more aspects of the present disclosure include the features described and exemplary pointed out in the claims.

