Video Contents

Audio
Cameras
Capture Cards
Check List
FAQ
Firewire
Flash Cards
Indexed Powerpoint
Mice
Monitors
MP3
NetMeeting
NetShow
Links
Real
PCMCIA
Powerpoint
Premiere
Projectors
Setup Guide
Tape to ASF
Telephones
To do
Tripods
USB
Vendors
Video decks

December

Remote

  • GSRC Ptolemy workgroup XML and XSL pages
  • Saxon
  • Summary

    The idea is that we use the Windows Media Player 9 Windows Media File Editor to generate an XML file that describes the events in a Windows Streaming Media File.

    We then perform the following transformations on the XML file

    1. Convert from UTF-16 to UTF-8 so that we can use regular unix tools
    2. Convert absolute slide flip pathnames to relative pathnames
    3. Add markers for each slide flip so that we can navigate
    4. Adjust the markers so that the title of each marker will be the title of the slide
    We then take the resulting file and update the file

    Setup

    The instructions below are Windows Specific

    Windows Media Player 9 Windows Media File Editor

    The Windows Media File Editor is used to generate a file that describes the events in the media stream
    1. Install the Windows Media Player 9 Windows Media File Editor, which is part of the Windows Media Encoder: http://www.microsoft.com/windows/windowsmedia/9series/encoder/default.asp

    Saxon

    Saxon is used to transform the output of the Windows Media File Editor.
    1. Download Instant Saxon from http://sourceforge.net/projects/saxon/
    2. Unzip it in c:/cygwin/usr/local/bin
    3. Add c:\cygwin\usr\local\bin to your PATH environment variable.
      Under Windows XP, you add to the PATH environment variable by going to the Environment tab of the System control panel (Start Menu -> Settings -> Control Panels -> System -> Advanced -> Environment Variables)
      Note that we use backslashes here, and that Windows uses a semicolon as a separate, so we would add
      ;c:\cygwin\usr\local\bin
      
      to the end of the PATH
    4. Start up Cygwin bash and verify that saxon is in your path
      bash-2.05a$ type saxon
      saxon is hashed (/usr/local/bin/saxon)
      bash-2.05a$ saxon
      No source file name
      SAXON 6.5.2 from Michael Kay
      Usage: saxon [options] source-doc style-doc {param=value}...
      Options: 
        -a              Use xml-stylesheet PI, not style-doc argument 
        -ds             Use standard tree data structure 
        -dt             Use tinytree data structure (default)
        -o filename     Send output to named file or directory 
        -m classname    Use specified Emitter class for xsl:message output 
        -r classname    Use specified URIResolver class 
        -t              Display version and timing information 
        -T              Set standard TraceListener
        -TL classname   Set a specific TraceListener
        -u              Names are URLs not filenames 
        -w0             Recover silently from recoverable errors 
        -w1             Report recoverable errors and continue (default)
        -w2             Treat recoverable errors as fatal
        -x classname    Use specified SAX parser for source file 
        -y classname    Use specified SAX parser for stylesheet 
        -?              Display this message 
      bash-2.05a$ 
      

    Generate a XML description of the events in a stream

    In this step, we use Windows Media File Editor to read in a .asf file and generate a .xml file that describes the script events
    1. For performance reasons, copy the media file to the local disk,
    2. Start up Windows Media File Editor, usually found under Start-> All Programs-> Windows Media-> Utilities
    3. Open the file with Windows Media File Editor
    4. Move the script events to the header. This will require that you save the file under a different name. For example, our input file was 01.asf, so we save the file as 01_a.asf File-> Move Scripts to Header . . .-> Note that moving script events to the header was not always available.
    5. Export the header: File -> Export header file. name the exported file talkname.txt
      For example, if we were working with 01.asf, then the output file would be 01.txt
      Note that the resulting header file has double wide characters, so don't open it with Emacs, open it with Notepad.

    Generate a an html file that will be used to map Powerpoint titles to gifs

  • Generate html versions of the Powerpoint presentation. by using Save As HTML. See Save As HTML. If the presentation is called 01.ppt, then Save As HTML will create a directory called 01/ that will contain 01/index.htm that lists the slides and their titles.

    updateheaders

    updateheaders uses Saxon to create headers
    1. Download the video cvs repository:
      cvs -d :ext:gigasource.eecs.berkeley.edu:/home/cvs
      
      CVS access requires having a CVS account on gigasource
      or Download pptindex.tar.gz and uncompress it.
    2. Add the directory that contains the updateheaders script to your path

      Under Windows with Cygwin Bash, you can use:

      PATH=/cygdrive/c/yourname/src/video/web/ppt/pptindex:${PATH}
      export PATH
      
      To permanently set your PATH environment variables in Windows, do Start -> Settings -> Control Panel -> System. Click the Advanced tab and then the Environment Variables button.
      Note that we use backslashes here, and that Windows uses a semicolon as a separate, so we would add
      ;c:\yourname\src\video\web\ppt\pptindex;c:\cygwin\usr\local\bin
      
      to the end of the PATH
    3. Start up Cygwin bash and verify that updateheader is in your path:
      cxh@DOPLAP03 ~
      $ PATH=/cygdrive/c/cxh/src/video/web/ppt/pptindex:${PATH}
      
      cxh@DOPLAP03 ~
      $ export PATH
      
      cxh@DOPLAP03 ~
      $ type updateheader
      updateheader is
      /cygdrive/c/cxh/src/video/web/ppt/pptindex/updateheader
      
      

    Create a new xml file that merges the script events and the slide titles

    In this step, we merge the file generated by Windows Media File Editor and the file that contains the slides and their titles.
    These steps work for single talks that are not part of a combined talk. If the talk is part of a combined, talk, then see the Combined presentations section below.
    1. Change to the directory where the file generated by the Windows Media File Editor was generated and the HTML version of the Powerpoint file is located
      cd  year/talkname/01
      
      for example
      cd 2002/berkeley/01
      
    2. Run the updateheader script
      updateheader
      
      updateheader takes optional arguments, see the updateheader file.
    3. Use Windows Media File Editor to import talkname_marker.txt into talkname.asf
    for example, use Windows Media File Editor to import 01_marker.txt into 01.asf

    Combined presentations

    Sometimes multiple presentations are combined into a single presentation so as to decrease the time between presentations. If this is the case, then the slide urls in the asf file of the second and succeeding presentations will not start at Slide1.gif and the locations of the gifs for each presentation will be in a single directory instead of separate directories.

    For example, talks 01, 02, 03 and 04 may be combined into 11.ppt
    The url flips for talk 01 will be 11/Slide1.gif ... 11/SlideN.gif
    11/SlideN+1.gif will be blank
    The url flips for talk 02 will be 11/SlideN+2.gif ... 11/SlideM.gif
    11/SlideM+1.gif will be blank

    Obviously, this makes things more complicated.

    For each individual talk, we need to map the slide flip urls to the title. The way we get the title is by converting the Powerpoint file to html and then looking in the index.htm file that was created that contains the titles of each slide.
    The problem is that the index.htm file will start the slide count from 1 for each individual talk, yet the slide flips in the asf file are ever increasing.

    If all the index.htm files generated by converted ppt to html are concatenated into one file, then ppttitles will properly handle the titles by looking for jumps in the slide number in the concatenated file. The updateheader file calls ppttitles for us.

    updateheader has been extended to take an optional third argument which is the talk name. In the case of combined ppt files, the third argument should be set to the name of the directory that contains the combined talk and that is the base directory of that appears in the slide flips in the asf file. In this case, the third argument would be 11

    1. Download the video cvs repository or tar file.
    2. Add the directory that contains the updateheaders script to your path
    3. Change to the directory that contains the talks. Usually this directory will have a name like 2001/santaclara
      cd 2001/santaclara
      
    4. To generate an index file that has all of the slides in it and then use that file to update one of the the slide titles, do:
      cat 0[1-4]/0[1-4]/index.htm > all.htm
      
      Here, the first four talks 01, 02, 03, 04 were combined into one large talk called 11.
    5. Generate the 01/01.txt file by using Windows Media File Editor on 01/01.asf
    6. Generate the adjusted header file, which will be 11_markers.txt
      updateheader 01/01.txt all.htm 11
      
    7. Use Windows Media File Editor to import 01/01_marker.txt into 01.asf Note that you may need to delete the preexisting script events from the file first.
    Then for the next file, do
    1. Generate the 02/02.txt file by using Windows Media File Editor on 02/02.asf
    2. Generate the adjusted header file, which will be 11_markers.txt
      updateheader 02/02.txt all.htm 11
      
    3. Use Windows Media File Editor to import 02/02_marker.txt into 02.asf Note that you may need to delete the preexisting script events from the file first.

    How updateheader works

    The updateheader script does these steps for you.
    1. Convert the file from UTF-16 to UTF 8
      copy.xsl
    2. Truncate the urls so that they are relative urls
      fixLinks.xsl
    3. Add a <Markers> section
      addMarkers.xsl
    4. Read in the NN/index.htm created by saving a Powerpoint file as a set of html file and generate a second xml file that maps filenames to titles.
      ppttitles
    5. Adjust the filename/title map xml file
      insertBaseIntoHref.xsl
    6. Substitute in titles into the Markers in the first xml file
      mergeTitles.xsl

    Adding index links to the page

    This has not yet been implemented The Windows Media Player SDK has an example of how to write HTML that will jump to different markers.

    Unfortunately, as of 1/1/03, the jar file that is to be used with Navigator/Mozilla will not work under Java 1.4, it requires Java 1.3.1.

    See markers.htm for a start at an example. This file requires that an asf file named 01_markers.asf be present.

  • Contact 
    ©2002-2018 U.C. Regents