Cyberspace & Bushido...
Alex Kipman of the Vista Ultimate Team brings these recommendations for authoring good DreamScenes:


03/06/2007

What do we think about when creating content for Windows DreamScene?

Have you ever asked yourself:  What are the attributes of a great piece of content for Windows DreamScene?  I get asked this question a lot, particularly from people who are trying to create their own.  The answer is rather long, so why not blog about it

Turns out we think about many aspects before we deem something DreamScene worthy.  I usually break my answer in three sections: 1) attributes of the content; 2) attributes of the rendering and 3) attributes of the encoding.  What follows is an explanation for each of these sections...

From a content perspective:

  • Keep the camera angle static, so no zooming, panning etc or people will either puke or turn you off after a few seconds
  • Try to bring interest in the top quarter and bottom quarter of the video so that you can get motion coming through the glass surfaces in Vista
  • Keep the loop to about ~30 seconds in length
  • Make sure the content is visually appealing, and the composition of the frame is appealing
  • Beware of the areas of motion.  Make sure that where there is motion, that the motion is not distracting.  Make sure the type of motion doesn't make folks dizzy or lean to one side etc
  • Make sure there is enough motion to warrant the DreamScene content
  • Take a look at how the content looks as a still (paused).  Make sure it looks as good as a static background would look in terms of quality and appeal
  • Make sure the DreamScene content looks great under the glass surface.  Some of the best content I've seen is content that only comes alive when you have about 80% of your real estate taken up by other apps and windows, and all you can see is the DreamScene content sipping through the 10% or less of the glass areas
  • Make sure it is something you can easily loop
  • Consider how the content looks in both 16:9 as well as 4:3.  You don't control the positioning style and your content should behave nicely in either scenario.  In our case we optimize for 16:9 but also test the content on 4:3 to ensure the areas of interest aren't cropped straight out of the video

From a rendering perspective:

  • Render the content natively at 720p
  • Have the content natively rendered at 16:9, but make sure it crops nicely at 4:3
  • Cap the rendering at 30 fps. Bonus points if you can make something interesting at 15 fps. 
  • Make sure the first frame and the last frame of the video go together so you get a sense it keeps going forever. 
  • Output the final results as raw and uncompressed AVI (or other uncompressed and raw format)

From an encoding perspective:

  • Pre-process everything to progressive (don't let the encoder do the de-interlacing)
  • If you need to scale to 1280x720, do so with XScaler
  • At the end of the day the biggest variable will be the bitrate.  I suggest you start with encodes at 1.5, 3 & 5 MBps and then check.  At the end of the day you are looking to find a happy medium between CPU utilization, files size (i.e., download time) and video quality.  This is primarily determined by the bitrate you choose. 
  • I have mixed feelings on what the ideal key frame distance should be.  It is supposed to just repeat the current frame in the buffer but we don't want to wait too long for the next key frame.  Therefore, we go with something between 3-5 seconds. 
  • Lastly you need to decide if you are going to be encoding an MPG or a WMV. 
  • If you choose the WMV route I suggest:
    • 5 Mbps WMV
    • Select video stream WM video Stream 1
    • Width: 1280
    • Height: 720
    • Aspect Ratio: 16:9, Pixel [1:1]
    • Encoder: Windows Media Video 9
    • Framerate: 29.97
    • Bitrate: 4991
    • Bitrate type: CBR
    • Number of passes: 1
    • Seconds / Keyframe: 1
    • Image quality: 97
    • Interlacing: Non-Interlaced
    • Buffer: 5000
    • Video Codec: Complex Auto
    • No Audio
  • If you choose the MPG route I suggest:
    • 15 & 8 Mbps MPEG2
    • Stream Format: Generic ISO MPEG Stream
    • Stream Type: MPEG-2 Elementary Stream
    • Width: 1280
    • Height: 720
    • Frame rate: 29.976
    • Interlacing: Non-Interlaced
    • Aspect Ratio Code: 16:9
    • Quality/Speed: Mastering Quality
    • Bitrate type: CBR
    • Video Bitrate: 15000 (8000)
    • Profile/Level: HP@HL
    • VBV Buffer Size: 1492
    • Max GOP Size: 15
    • Closed GOP: yes
    • Chroma Format: 4:2:0
    • Intra DC Precision: 9
    • Strict GOP bitrate: No
    • No audio used
    • Insert one sequence header before each GOP

And this is about it <phew>!  These are the steps we follow when creating content for DreamScene internally.  If you were curious, or are trying to roll your own, this may be a good starting point. 


[Original Post Here]



Comments
on Mar 11, 2007
Some very helpfull information in the above.

Quote "Render the content natively at 720p"

Still awaiting clarification from wincustomize on the upload guidelines for content as 1280x720 is 720p and not the resolution several of the current dreams are produced in.

00NukE
on May 13, 2008
thanks for the tip.