Using Microsoft Producer
Last Update: March 24,2006
I thought I would take some time and document my experience and learnings using Microsoft Producer to create some e-Learning lessons that I have been working on lately.
What is Microsoft Producer?
Microsoft Producer is a free multimedia authoring product that takes digital audio, video, PowerPoint slides, html pages, pictures or graphics and stitches them together using an author directed time line and author created templates, producing output intended for viewing via a browser in a HTML page with embedded Windows Media player. It allows media output in various Windows Media delivery formats (depending on the intended viewing scenarios).
Generally the only platform viable as a viewing platform is Internet Explorer on a PC though there is some lip service paid to Macs and Netscape.
As a bonus a SCORM package is created for use of the material on SCORM compliant LMS's. My experience has been with externally created video but Producer has facilities built in for capturing both audio and video from devices on the authoring machine.
Presentation Templates
Producer comes with templates that provide examples of use scenarios for most of the possibilities that information can be displayed in. The templates tend to be somewhat ugly though -- so using them as examples only is probably the most reasonable approach. It is probably useful to familiarize yourself with the product examining and using the standard templates though.
To create a quality product (both visually and functionally) it is necessary to create custom templates. The process of creating templates is somewhat clunky but functional. The process:
- Copy an existing template directory in the supplied directory of templates to a new directory (..Program Files/Microsoft Producer 2/1033/Templates for the English version) -- giving the new template directory an appropriate name. I would suggest using a basic template that has all possible elements somewhere on the page -- the .css will allow you to hide them if you don't want them to appear. If your basic template doesn't work quite the way you want you can use other template's .css files for reference.
- Modify the ....css and ..._simple.css files to have names that are the same as the template directory name (not strictly necessary but for sanity's sake important)
- Edit the .css file to use the new names for your template. I would test the template now to make sure the structure is correct. I found testing the templates worked best with a test production with all types of content. It is best to assemble before you start a set of test digital assets(at least one of each type -- video (.mpg or .wmv), audio (any digital audio), PowerPoint ( and small ppt presentation), a simple html file, a few simple graphics) to be used as part of your test production.
- Now the hard parts -- creating the template buttons, backgrounds and ppt template for your production.
- This is best done by somebody with eyes and skill in digital graphic production(not me!) in conjunction with the technical production person(that is me) who knows how Microsoft Producer uses the pieces and the .css used to manage them.
- The buttons and graphics created should be placed in the template directory(it is easiest if they use the same names as the ones there as that simplifies the .css file editing).
- The PowerPoint production should be created using a template that matches the design of the final production. You should choose whether or not you will be using in slide animation. It is easier if you don't for a number of reasons but if you need to use animations stick to animations such as appear, fly in or change colour -- ones like dissolve, blinds, etc seem not to work correctly
- The .css files need now to be modified to use the graphics and place the functional pieces( media player, media controls, table of contents, html, power point slides and background pictures) on the page in the appropriate places. I used Front Page as the .css editor (and DevGuru as my reference).
- For me it was important that each change be tested before proceeding(as I was trying to bring my css up to speed) -- so I constantly saved the .css and tested it in Producer using my test production.
- It is important to realize that templates in the production are saved with the production so that changes to the template are not reflected in the production until you add the template to the time line again. Until I realized this I had productions with many generations of template on the time line ( and in the template list). Deleting all templates from the time line before adding the new generation is good practice(and once I realized what was happening helped save my sanity).
- Most of my effort was concentrated on the main .css file -- that is what is used to view productions with Internet Explorer. The _simple.css file though(which is used to view the production in other browsers) should be examined as well and modified to keep up ( I found that leaving references to non existent files in that css file cause weird publishing and production opening issues -- make sure it doesn't have any background files named from the base template that you have since deleted)
Learnings from the template production process:
- Internet Explorer has a useful .css extension - "expression" -- it can be useful in centering and other placement functions allowing access to run time attributes of the document and other elements:
WIDTH: expression(document.body.clientWidth-879);
- Producer has a number of useful tags that are generally used on the launch page that can incorporated into the templates:
#LoadingWaitDiv_TitleDiv { VISIBILITY:visible; POSITION: absolute; TOP: 361px; WIDTH:330px; LEFT: -6px; HEIGHT: 24 px; COLOR: white; FONT-FAMILY: Georgia; FONT-SIZE: 20pt; FONT-WEIGHT: normal; Z-INDEX:9999; PADDING-TOP: 0px; PADDING-LEFT: 0px; BACKGROUND-COLOR: transparent; TEXT-ALIGN: left ; LETTER-SPACING: 0.1em; }
- LoadingWaitDiv_TitleDiv is the production title (there are similar tags for the presenter and production description). Using them in the templates makes them not visibile on the launch page but as I was not using the page anyway for me it didn't make any difference. It might be possible to use it there correctly and within the templates as well but I haven't really investigated.
Creating the Production and Managing the Time line
The general process I use to create a production is to first assemble and import all the assets (for me this was a reasonably small number per "lesson" or production --two or three videos, one or two short PowerPoint presentations, one or two separate audio productions, one html "page"). I am using 4 or 5 separate templates(with a common look, feel but different elements on the page). If you are doing video production it is best to have your supplier supply video in the size and bandwidth that you need. If you can't determine this before they supply the video obtain at the highest bandwidth and size that is feasible. Note that Producer does not support importing of Quicktime video and as most video production houses are Mac based getting the video in the correct format may require some "negotiations".
Once the assets are assembled, I start moving them to the appropriate spots on the time line. I start with the video and audio. I try to keep the trimming and manipulation to a minimum but for what I was doing I had video being provided from two different sources and it was expedient to edit and splice the two sources at production time rather than have two producers deal with each other. Producer makes this splicing, trimming quite easy actually. You can cut pieces out of video and place other video pieces on the time line in the spot that was cut out.
I then insert the PowerPoint production into the time line(I place it all on the time line and cut out what may not be required later but you can do it a slide at a time). I try to adjust the slide timings at this point (using the synchronization function). I don't pay a lot of attention to internal slide animation timings at this point as I have found that tweaking of stuff on the time line screws them up -- and as they must be done as a unit per slide (there is no adjustment process for individual times within the slide) doing this now is usually a waste of time.
I now add the templates to the time line adjusting them to the beginning and end of the matching audio/video or slides (depending on what the production demands). In order to get as smooth a transition between templates(ones that have media showing at different sizes are the hardest), I find it is necessary to manipulate the media, templates so at the template transition points there is 1 or 2 seconds of dead space (no audio or video), then butt the two templates halfway in the space. I still haven't found the "sweet spot" for this process but this seems to work best. Another strategy I used was to create a blank template (no media, html or ppt elements visible but the standard background in place) and insert it for the minimum time ( it seems to be 2 seconds) at the video transition points. That seems to work as well -- I am not sure which I will end up using but at this point but "blank" template strategy seems to be the best.
After the templates, media time lines are adjusted I go back and recreate the slide timings and individual slide animations. Usually because of Murphy this process is done more than once.
The final step is to add HTML elements (if necessary adjusting their start and end points to the templates). One thing I do is "hide" media control functions in the HTML page so occasionally I have HTML pages that look the same but perform different functions using the onload method. It is also possible to have these functions even if the html is hidden. Samples of what I have used:
<body onLoad="if (parent.MediaPlayer.playState == 3){ parent.MediaPlayer.fullScreen='true';}">
<body onLoad="if (parent.MediaPlayer.playState == 3){ parent.MediaPlayer.fullScreen='false';}">
<body onLoad="parent.MediaPlayer_Pause()">
<body onload="parent.MediaPlayer_Stop();parent.MediaPlayer_SetCurrentPosition( 0,true);parent.MediaPlayer_Play()">
The most convenient way to use this is to create separate .htm files ( I call them pause.htm, fullscreen.htm, normalscreen.htm, restart.htm) with the appropriate code in them that can be placed at the appropriate points on the time line. I also have an "noaction.htm" file which does nothing on body load that I as a spacer. How exactly you implement this depends on whether you have other .htm files (with real content) in the production.
I found it was relatively easy to create a different volume slider/thumb visual by changing the volume.gif/slider.gif graphics in the "..Program Files/Microsoft Producer 2/Shared/default.htm" file but it is difficult to find a way to change the way it operates ( it pops up the slider and thumb to the left of the volume button by default). It seems all that is handled by the gogoprod.js file (in the shared directory) and trying to read or modify that ( it is compressed and somewhat obfuscated) makes your eyes bleed (a situation I try to avoid so it isn't high on my list of priorities to explore this).
If it is necessary to include external files in the production ( like those that might be accessed from a PowerPoint hyperlink), I found the best way was to add the files to the PowerPoint output directory in the published presentation and use a relative link in the presentation. This cannot be tested in preview mode though. To maintain SCORM integrity it will also be necessary to modify the "imsmanifest.xml" file ( the SCORM manifest) to include that added files.
Publishing the Presentation
The last step is publishing the presentation. This is where Producer using the elements that you have created, and Windows Media production components to export the production so it can be viewed in a browser. There are a number of choices that have to be made here. You have to choose to create the production for Windows Media 9 or 8 players(you can do both). You also have to choose the delivery mechanism ( this basically determines the bandwidth parameters that the production is expected to be limited by). Producer will allow you to choose multiple bandwidth scenarios to render to. I found it was relatively easy to create "custom" profiles(experience outlined below) to optimize the delivery to my needs (quality, bandwidth and storage size).
One disconcerting peculiarity is that republishing a presentation does not necessarily delete all the files from the last publishing effort. This means that unless you are careful there are lots of old, unneeded ( and sometimes very large) files left over. It is a good plan to regularly purge the published folders during development. Another annoying issue -- Producer seems to "lock" the directories in the file system -- even after it exits -- so that directories cannot be deleted until after a reboot. I am not sure what the issue is (whether it is a fault in Producer itself or something peculiar about my XPSP2 authoring system).
Choosing more than one set of codecs, or bandwidth scenario or choosing a bandwidth scenario too large will create problems for eventual delivery. Fortunately it is relatively easy to experiment. The rendering process though can be long and cpu intensive though so a dedicated fast machine is a help here.
I also spent some time trying various profile options for publishing the audio/video from presentations using the information discussed in this white paper. You need the Windows Encoder tools (available for download here) to create and edit custom profiles. I found the guidgen.exe mentioned in the paper(and required) for download here. I found the article "Encoding with CBR, MBR, and VBR" useful in explaining what the various options mean. Using VBR options I was able to get outstanding looking video (and almost doubled the size of the .wmv in the process but since my production will be viewed from CD and there was unused space on the CD it was a good trade off). This depended though on my earlier requirement -- that the video suppliers supply a very high quality in the beginning(even though that increased the problems in transferring videos to me). With everybody on high bandwidth connections though and establishing a web based collaboration portal based on Plone(which I did for this project) it wasn't all that much of a problem(something like SharePoint or maybe just an ftp server would probably fill the bill depending on who the players are).
Sample Production
A sample of the output of the process that is discussed in this article can be found here (in the "Enhanced Presentation Broadcast" sub title).
Runtime Issues
Producer will automatically create the appropriate run-time and autorun facilities to allow a whole series of productions to autorun from a CD. It creates a menu on the fly to choose the production and the appropriate bandwidth/codec choice if you published more than one (production, codec or bandwidth).
Whether or not the production contains PowerPoint slide animations an attempt to download and install the "msorun.exe" - PowerPoint/Office animation package will be made on running the result on systems without Office 2002/2003 already installed. Apparently this attempt(which is not desirable in some corporate situations where installs are not possible due to security restrictions or on productions that are distributed on CD) can be thwarted by editing out the object request in the production html. I have not investigated what happens when the package is not installed or the attempt to download aborted if there are included animations.
The EULA for msorun.exe indicates that it can be redistributed (useful if your production is distributed to users potentially without internet access -- on CD for example).
SCORM issues
Producer automatically creates the appropriate files to allow multiple presentations to be published so creating a copy of the published directory on a CD will allow the CD to autorun and the user to select one of many published presentations from the CD. This multiple presentation feature though does not extend to creating the correct contents in the imsmanifest.xml SCORM manifest file for multiple presentations. The manifest file is made for only the most recently published presentation. It is critical that presentations be published to different directories if you want to use them as SCOs.
It seems that despite claiming SCORM compliance Producer output does not calculate and set "cmi.core.session_time" as required for SCORM 1.2. I had a look at the code in gogoprod.js where the SCORM stuff is done and made a stab at changing it so that it is compliant (at least in this case). At the same time I formatted the obfuscated gogoprod.js code in case others want to make modifications.
Information on downloading the new gogoprod.js is here.
Product Wishes
Things I would like to see in Producer but aren't there:
-
Ability to import Quicktime (.mov) video
-
Ability to force template reads from the template directory instead of those with the production.
-
Ability to replace templates on the time line in place.
-
Ability to adjust slide animation times on an individual trigger basis (rather than having to redo completely)
-
Ability to automatically optimize template changes to avoid video player artifacts.
-
A template editor and creator.
-
Ability to establish separate directories of template, default.htm et al on a production by production basis (separate from installed templates).
-
More information and ability to modify the default.htm file allowing inclusion of html elements.
-
Ability to specify inclusion of non Producer generated files in the final production, maintaining SCORM manifest integrity in the process.
-
Ability to choose different rendering profiles for audio/video per template.
You can contact me here if you have questions or suggestions.
|
|
© Copyright
2008
Brian Sullivan.
Last update:
29/06/2008; 11:43:35 PM. |
|