|
|
||||||||||||||||||
|
|
||||||||||||||||||
![]() |
![]() |
Issue 4 - Revision 9 / July 9, 2003
|
|||
|
Working with My Media Manager - Streaming Media with Zope - - - - - - - - - - - - By Erik Lange | April 27, 2003 Abstract A streaming media system delivers streaming media files to their clients in realtime, corresponding to the implicit timing of the streaming media file. My Media Manager is a free set of online management and publishing tools which enables you to manage streaming media content on one or several media servers, through your standard Web browser. Why stream media ?To understand streaming media, we must first take a look at the nature of moving pictures and sound recordings. What makes a moving picture different from a still image is that you can?t get the full experience of a moving picture from looking at still images. You have to view the whole movie before you can say that you have actually "seen it" - a moving picture, in other words, has an implicit timeline for its presentation. It would make no sense to cut out the individual images in a movie and put them on a wall for display to the viewer at the same time - for the viewer to experience "the movie" the images have to follow each other in a carefully defined order and be presented with an implicit time structure (just presenting the images in a defined sequence wouldn't do it). In a digital world where the movie's individual pictures have been digitized, this means it makes no sense to present the viewer with the complete digitized file all at once: the digital images and sound have to be served to the viewer over time. This presentation over time is what it called "streaming". Streaming media components A complete streaming media system must include at least three components:
Basically, a streaming server works like an ordinary file server, delivering a requested file to the requesting user(s). But where an ordinary file- or Web-server - delivers the complete file to a user on request, a streaming server delivers the file in small packages, ordered according to the file's implicit timeline. The streaming server continuously "chucks up" the file and keeps track of where the user is in the file, assuring that the media content is played back in the right order by the end-user's client and with the appropriate timeline. This technique ensures that the end-user's bandwidth is used only to transfer data that is immediately needed, and not blocked by the transfer of data that isn't needed yet, at any given moment during a presentation. By handling the data packages transmitted at a given time individually, the server can optimize the size and thereby the quality of the packages being chopped out of the original file and delivered to the individual users. Since conditions may change during presentation the streaming server compensates for this, raising or lowering quality as needed. This ensures that the images and sound in the data packages are of an overall higher quality than if they were streamed at the lowest available rate for the entire presentation. BufferingIn practice a user's bandwidth will always be variable during reception, which means that server and client must continuously negotiate to find the best possible transfer rate. To ensure continuous playback the client therefore temporarily loads all incoming data to a local storage medium, from which the data is taken for final rendering before being displayed on the client machine. This local storage is known as a "buffer" and it works like a buffer. The buffering technique is also known from portable CompactDisc-players with an "anti-shock" feature, where the first 10-15 seconds of sound are loaded into memory before playback begins, ensuring that the player can fill up the memory if transfer is temporarily interrupted, so unaffected playback can continue from memory. Typical buffering times in streaming media systems are 15-30 seconds with today?s techniques over the Internet. Today shorter buffer times are only possible on local networks. Media Content Management FrameworkMy Media Manager is a set of online tools that enables the administrator to logically define sequences in media files on a media server, and to store these "clips" as metadata in a database. These "logical clips" can then be arranged in a desired order, in one or more "shows". Shows are presented and played back for the end-user on the Internet in a "cinema" - a Web-page generated by the system, according to file format specifications, in a desired layout and design, controlled through skins by the administrator. This makes it possible for the administrator to concentrate on editing the stored content, regardless of various streaming media formats, internal commands and scripting languages, because the system dynamically generates the necessary scripts from the logical clip data that the administrator defines. Multi-format publishing and version publishingBy separating the logical administration in My Media Manager from the specific media formats, and only dynamically regenerating the corresponding control commands on an end-user's request, it is possible to administer media content across specific streaming media formats. The system administrator would then only have to decide which formats the end-users could choose between and establish a set of rules by which the system would select formats depending on determination of an end-user's display capabilities and end-user communication of his perceptive capabilities ? in the latter case, for example, a hearing-impaired end-user could choose a subtitled format. The system administrator would then only have to decide which formats the end-users could choose between and establish a set of rules by which the system would select formats depending on determination of an end-user's display capabilities and end-user communication of his perceptive capabilities ? in the latter case, for example, a hearing-impaired end-user could choose a subtitled format. ZopeUsing Zope as the application server for our media-production and media-publishing tools, we have designed these tools as a comprehensive collection of modules based on universal media-navigating and media-manipulating meta-commands which are equivalent to the specific control-commands for various proprietary media-formats. Dynamic translation of these meta-commands according to user interaction, on the one hand, and detected environmental conditions. on the other, ensures that our media management solutions can be set up to work both cross-platform and cross-format. This allows content publishers to distribute content to end-users in a variety of media formats ranging from Web-standard to full-motion broadcast quality, in one single process. My Media ManagerMy Media Manager is a collection of objects for logical representation of streaming media components. My Media Manager relies on the CMF - Content Management Framework of Zope. The basic components are: Media Server, Media Event, Masterfile, Media Clip. Media ServerThis object contains information on the server from which the portal members stream their media. Using this information, the system can build URL's for the playback of media-files on the server. The Media Server is most often used portal-wise. Media EventThis object is a folderish object which contains a Masterfile and Media Clips. Since the object is an extended calendar-object it can also be used to announce live streaming events in a portal-calendar. The view of the Media Event serves as the "cinema" for the end-users, embedding a media-player in the Webpage and presenting the "playlist" of clips in the Media Event for archived on-demand events. MasterfileThis object is an "external object" which contains information for the physical masterfiles on the Media Server. This information is used to build the correct playback URL and for generating the Webpage with a correctly sized embedded media-player. Media ClipThis object contains information on a sequence in a Masterfile. By defining Media Clips the author can choose which sections of a Masterfile should be accessible for the end-users. Several clips can be defined for each Masterfile. Note: All the objects are workflow-aware and need to be published before they can be accessed by end-users. Make sure you have published your Media Servers before you publish any Media Events! SkinsFor viewing and editing streaming media, My Media Manager comes with a basic set of skins for manipulation of data for the various objects. However, the user will often access all objects through a Media Event and its skins, i.e. the Edit Suite for editing Masterfiles and creating Media Clips. Media Server has a simple form for editing the server properties. Masterfiles and Media Clips have a simple View, which is manipulated through the skins of the Media Event (Edit Suite). Media Event has View, Edit and Edit Suite skins. View is the "cinema" for the end users. Edit is for editing of metadata for the event (title, description, etc.). Edit Suite is for the creation and manipulation of Masterfiles and Media Clips. Because Media Event is folderish, it also has a folder contents view showing objects contained (Illustration image), Masterfiles and Media Clips in the Media Event. The Media Net toolMy Media Manager comes with a Media Net tool which is used to create and manage Media Servers. Before a portal users can start creating Media Events and upload their content, the administrator must set up Media Servers in a Media Net. To do this, the managers of a portal with My Media Manager installed have access to a global action named "Set up media net". To create a new Media Server in the Media net, click "Set up media net" and click "Start server Wizard". After creation of at least one logical Media Server, the portal users can start using My Media Manager. Note: To enable users to upload streaming material through the Web, an account on a running FTP-server on the Media Server must be defined. The Media EventWhen a Media Event is created, a logical Masterfile is automatically created within the Media Event. The content of this object is updated through the Edit Suite of the Media Event. When a user creates Media Clips, these are created as objects in the Media Event. ViewThe Media Event view has 3 components: Media-player, Playlist and Illustration. The layout of these components on the page can be changed by the site manager (administrator). The manager can provide several layouts to choose from for the users. There are no plans at present for a WYSIWYG cinema editor. The components of the view shown below are: 1) Media-player, 2) Illustration, 3) Playlist.
In the default skin distributed with My Media Manager, all components of the Media Event view are placed in the main_templates main slot. EditThe Media Event edit page consists of several forms for creation and editing of metadata for the event. The edit page also contains a form for uploading an illustration and giving the illustration a title and a description. The illustration is displayed on the view page, and can be processed and used as a thumbnail-icon for the event in a list of events. Edit SuiteThe Media Event edit page consists of several forms for creation and editing of metadata for the event. The edit page also contains a form for uploading an illustration and giving the illustration a title and a description. The illustration is displayed on the view page, and can be processed and used as a thumbnail-icon for the event in a list of events.
Under the hood
So how does this work? As mentioned above, when a user creates a Media Event, a logical Masterfile-object is created within the Media Event. The logical file doesn't contain any file-data until it is entered by a user. In the Edit Suite the user can select the Media Server to be used for storing the physical media file. The user chooses from the Media Servers available in the portal's Media Net. If only one Media Server is available, no choice is given. When the user has selected a Media Server, a click on "Edit file" accesses a pop-up screen for editing the media file (x-size, y-size, etc.) if these values are different from the default settings of the Media Server. From this pop-up screen the user can browse the local harddrive to select a media file and upload it to the Media Server. All the data needed for this are given by a look-up with the Media Net tool in the media net, so the user is not aware that what is actually taking place is an FTP-transfer of the file to a Media Server which might not be located on the same physical machine as the Zope server. This allows the portal administrator to rent disk-space on a streaming media network (which consists of several streaming media servers or units) and let the portal users take advantage of the streaming media network capacity. The administrator doesn't have to build his own streaming media unit. The administrator can also choose to use his own Media Servers, as he sees fit. If the user chooses to use more than one Media Server for an event, he can place different files representing the same content on the different Media Servers (or on the same physical Media Server, but in different directories, as defined by the administrator). This is handy when publishing 2 or more formats of the same media file, i.e. a lowband-file sized at 240x180 encoded at 20-150kbs and a highband-file sized at 320x240 encoded at 150-300kbs, or a RealMedia-file and a Windows media-file encoded from the same source-file.
Media Clips are defined in the Edit Suite by browsing (i.e., playing, fast-forwarding or rewinding) the Masterfile in one of the formats available (for example, RealMedia or Windowsmedia). Marks made in one format must correspond to the same point in another format: this doesn't mean both formats have the same timecode, as one format could have started before the other at the time of encoding. The Media Net tool adjusts for any off-set in time for the start of encoding between the physical files. This means that the user can edit the Masterfile in one format and present the clips to the end-user in another. When the end-user accesses a Media Event containing a "multi-format" file, he is requested to select a preferred bandwidth/format. Based upon this selection, the Media Net tool looks up the correct server and generates the cinema with a correctly sized, embedded media-player, determining the correct URL's to be displayed in the Media Events playlist (the Media Clips). The user's format selection is stored in a cookie.
Advanced
Format-selection
By customizing the selection-scripts, the choice of media-player can be made for the end-user by the system, based on what resources the system detects are at the end-user's disposal, e.g. if RealPlayer or Windows media-player is installed the end-user will automatically be presented the cinema-format defined as "first-choice" by the administrator. If only one type of media-player is installed, the content will be presented using this format, and if no media-player is detected, the end-user will be asked to install one before continuing. This can also be used for serving content to closed-circuit TV in full MPEG2 over set-top boxes that identify themselves as end-users to the system, or for serving audio-only versions for handheld devices over a G3-network (when available). Live WebcastAs with logical servers, it is also possible to define logical encoders and to control encoding on physical encoders for automated creation of live Webcasts. The tools for this have not yet been included in My Media Manager, due to licensing issues with the encoder manufacturers. Contact MM Manager if you're interested in receiving a personal test-copy of our basic encoding tools. MultimediaIt is possible to synchronize streaming video with slides to create SMIL presentations using an SMIL plugin. (Optional). PluginsBy creating your own plugins you can expand My Media Manager with any functionality you might wish to, producing a Media Server in a new format (your own, perhaps) or a new way of manipulating and assembling the material. We will, of course, develop new plugins along the way, and we hope that developers of plugins for My Media Manager will share theirs with the community. What's next?After a total rewrite of My Media Manager to its most recent form (1.2), we're confident that we now have a complete but flexible framework for managing streaming media in the CMF. But we won't stop here. SyndicationOne of the powerful features of the CMF is the syndication tool, which allows for import and export of metadata between sites. The challenge of syndicated media is that, in contrast with text-based content, there aren't any standardized namespaces yet, and those namespaces that are candidates for becoming a standard haven't yet been implemented in content management systems. For media-data the candidates are MPEG7 and MPEG21. Our current challenge, therefore, is to implement these namespaces so that they can be used to generate the syndicated metadata out of Zope and can also be used to import media-data from other sites. This will truly be a breakthrough - which we hope to accomplish within the next year - for the "semantic web" (see Timm Berners-Lee, the inventor of the World Wide Web: The semantic web: A road map for the future, an architectural plan untested by anything except thought experiments. http;//www.w3.org/DesignIssues/Semantic.html DRM - Digital Rights ManagementBeing able to manage rights associated with media is becoming more and more important for content-holders who wish to explore the potential of online distribution. For syndicated content it's clear that rights can be described in a standardized manner, along with the syndicated data. Open Digital Rights Language (ODRL) is an open standard that handles all sorts of models for digital rights management. We?re planning to implement ODRL in My Media Manager, to extend the options for describing associated rights to content. Compound contentA hot topic for Zope/CMF and Zope3 is the handling of "compound documents". This means a content type that contains other content objects, and which handles the relations between the content and its "sub-content". In the media world such a "document" could be a "movie" containing clips taken from one or more master-files, the master-files for the clips, and perhaps additional media content (e.g., slides for illustration). Description of such content is the goal of MPEG21 .We will follow closely the work being done here, and hopefully will be able to contribute with working examples of such content, generated by Zope. Links:(Download) My Media Manager: MPEG7: MPEG21: ODRL:: Zope:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ZopeMag is committed to bringing you the best in Zope Documentation. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Reproduction of material from any of ZopeMag's pages without prior written permission is strictly prohibited. Copyright 2003 - 2005 ZopeMag |
|