Engineering Windows 7

Welcome to our blog dedicated to the engineering of Microsoft Windows 7

Media Streaming with Windows 7

Media Streaming with Windows 7

We’ve blogged about a number of features related to home networking and media in Windows 7.  A scenario which brings all these together in a pretty cool way is Media Streaming.  This scenario allows you to use a Windows 7 PC as a hub for media sharing—where you can share media with other PCs and devices on your home network via streaming, and even stream this information securely over the internet.  Scott Manchester on the Devices & Media program management team coordinated this post, but as you will see it represents work across the Core User Experience, Media Center, Networking, and even Windows Live chose to take advantage of the new APIs in this scenario.  This is a pretty detailed post and there’s a lot to try out.  Those of you using the RC to test things out, you can always install on another PC and use it for the 30-day period without requiring a new PID key.  Have fun!  --Steven

Windows 7 includes a number of exciting new media streaming features that enable you to enjoy your media collection on other PCs and devices in the home and while on the road from across the internet. We’ve created a networked media experience that is more friendly to use and simpler to set up. Now enjoying music, pictures, and video on your network connected PC or media device “just works” without concern for media formats, transports, or protocols.

There are a growing number of Network Media Devices (NMDs) certified to interoperate using an open and widely embraced industry standard called the Digital Living Network Alliance (DLNA). Windows 7 implements this open standard, which means that sharing media between NMDs, Windows PCs, Windows Home Server, and Extenders for Windows Media Center (including Xbox 360) is easier and more natural. Supporting this standard also means that the myriad of NMDs such as electronic picture frames, network radios, televisions, and others are companions to Windows 7 PCs and may seamlessly participate in the whole-home media experience.

Not Just for the Techie

We made it much simpler to configure media streaming. Before Windows 7, media streaming features were focused on media enthusiasts. To improve the setup experience, media streaming has been integrated with the new HomeGroup feature so in a typical home network configuration, media streaming is enabled and works by default. There is also a new “Stream” menu prominently displayed in the Window Media Player user interface (see figure below) that exposes simple scenario-based configuration options. These options allow you to:

  1. Set up your home PC so you can access your media libraries while away from home
  2. Allow other Windows 7 PCs and devices to push media to your Player and control it
  3. Quickly authorize all home PCs and devices to access your media collection

Each of these scenarios will be discussed throughout this post.

Configuring the stream options in Windows Media Player

HomeGroup introduces the concept of “shared libraries” for music, pictures, and video. As described in a previous blog post, these shared libraries are accessible from within the navigation pane of Windows Explorer and Windows Media Player, and from the “shared” view of each media category within Windows Media Center (see figures below). The scope of these libraries is the same from each of these views.

Libraries shared between Media Player and Media Center

Media Center

Windows Explorer will automatically discover and provide access to shared media libraries on other HomeGroup PCs. In addition, Windows Media Player and Windows Media Center will automatically discover shared libraries from:

  1. Windows Media Player 11 and 12
  2. Windows Home Server
  3. All DLNA compliant media servers (e.g. network attached storage)

Who Can Access My Shared Media Libraries?

A HomeGroup is a secured set of Windows 7 PCs that can view and consume each other’s media seamlessly. Sharing is automatically set up among HomeGroup PCs and HomeGroup settings allow you to choose what types of media you would like to share; for example, you may choose to only share your music library and not your video or pictures.

Changing homegroup settings

In addition to all HomeGroup PCs being able to access your media, we made it easy to allow devices to access shared media libraries on Windows 7 PCs. This can be done conveniently from either HomeGroup settings or within Windows Media Player:

Enable streaming.

Allowing devices to share media from Media Player

You can also choose to restrict which specific PCs or devices have access to your media by choosing “more streaming options…” from the Windows Media Player “Stream” menu.

Restricting sharing to specific devices.

Play To: Windows 7 as a Universal Remote Control for your Media Collection

In addition to playing media streamed from other shared media libraries within Windows Media Player, Windows 7 can now send media to be played on other Windows 7 PCs and DLNA-certified digital media renderers. We call this feature “Play To.” With “Play To,” you can browse or search from within Windows Media Player or Windows Explorer to find your desired media, and then choose where you want it to be played. A versatile remote control window is presented for each “Play To” session, providing you with the ability to control the entire experience.

Choosing the Play To device in Media Player

Choosing the Play To device from Explorer

It does not matter where media collections are stored. “Play To” is available for both local media libraries and for shared media libraries. If you would like to send media from one Windows 7 PC to another, choose “Allow remote control of my Player” from the Windows Media Player “Stream” menu on the receiving PC. This will cause Windows Media Player to be discovered in the “Play To” menu of other Windows 7 PCs on the same network.

Allowing remove control of the player

When media streaming is enabled on your Windows 7 PC, “Play To” will be available in Windows Media Player and Windows Explorer via the right click menu for media items. If Windows 7 has not discovered a “Play To” capable PC or device on the network, this context menu will not be available. DLNA provides guidelines to certify different device categories and roles. Not every DLNA-certified device supports the “Play To” feature. Look for DLNA-certified Digital Media Renderers (DMR), and for the best performance, look for DMR devices that carry the “Compatible with Windows 7” logo.

Compatible with Windows 7 logo

Once you’ve selected media items to play on another PC or device, a “Play To” remote control window will launch providing standard controls like play, pause, stop, skip forward and backward, seek forward and backward, volume, and mute. Not every device will support all of the control features and some media types may not support seek. Once the “Play To” remote control window is launched, you can reorder or delete items, add to the queue, or toggle repeat. It’s even possible to add new media items from Windows Media Player or Windows Explorer by dragging them into this window.

Play To remote control window.

There is no artificial limit to the number of “Play To” sessions you can launch. You may send pictures to a picture frame, video clips to a TV, and music to another Windows 7 laptop all at the same time. Furthermore, different types of media can be sent to a single destination, as shown in the example above.

What About the Xbox 360 and Extenders for Windows Media Center?

Xbox 360 has two ways to receive media streams from other Windows 7 PCs, which we refer to casually as “dashboard” mode and “extender” mode.

In dashboard mode, Xbox 360 functions in the role of a simple media player. While it’s not officially a DLNA-certified device, you can use Xbox 360 to browse the shared media libraries from Windows 7 PCs (there is also support for this in Windows Media Player 11) and pull content from those libraries for playback within the dashboard.

Using Xbox 360 for media playback

Using Xbox 360 for media playback

In extender mode, Xbox 360 (and other Extenders for Windows Media Center) is seen by Windows 7 PC’s on the network as both a Digital Media Player (DMP) and a Digital Media Renderer (DMR) device. Using the Extender for Windows Media Center on the Xbox 360, you can browse media libraries on other computers and pull that content for local playback, similar to the process of using Xbox 360 in dashboard mode. However, in extender mode Xbox 360 will also support “Play To” so that users of Windows 7 PC’s on the network can push content to it. All extenders, when associated with a Windows 7 PC, will be discovered in the “Play To” menu of other Windows 7 PCs.

Internet Access to Home Media

With Windows 7 we’ve also extended the media streaming experience outside the home and allow you to access your home media from anywhere in the world via the internet. We’ve made media streaming over the internet a natural extension of the experience within the home. For the experience to be seamless we needed to solve some significant technical challenges, such as:

  1. Discovery – Resolving the computer name at home to a routable IP address
  2. Privacy – Ensuring the home media is only accessible by authorized users
  3. Security – Encrypting browsing and streaming of media to prevent eavesdropping
  4. Reliability – Network connection speeds, media formats and bit rates, and router firewalls all create potential reliability issues for a seamless experience

To overcome these technical hurdles, we designed a model that uses an Online ID Provider to help facilitate discovery, privacy, and security. The new Online ID Provider infrastructure in Windows 7 allows you to link your Online ID (e.g. you@live.com) with your Windows user account. This enables an authentication/authorization server to provide the necessary privacy to establish a protected link between two Windows 7 PCs (e.g. your laptop on the road and your PC at home). Internet access to home media is enabled from the “Stream” menu in Windows Media Player.

Enabling internet access to home media.

The setup process walks you through linking an online ID with your Windows user account, which must be performed on both the home PC and remote PC. The same online ID must be used on both PCs in order to establish the connection between them. In order for remote PCs to access the home media collection, the PC at home (acting as a server) must be on a “Home” network location. Remote PCs (acting as clients) can browse and receive content streamed from the home PC from any network location (Public, Work, or Home). The network location is chosen when first connecting to any network and can be changed later from the Network and Sharing Center.

Specify the network to be a home network

Reliability - Network Connection Requirements

Streaming media over the internet from home works best with an “always on” broadband connection. Broadband uplink speeds vary from a modest 200Kbps to 10Mbps or more. Downlink connection speeds will also vary from crowded hotspots, hotel rooms, and wireless network connections in friends’ homes. Regardless of the uplink or downlink speeds, we wanted to ensure that even high bit rate content (e.g. high definition recorded TV) could be streamed with a good experience. The internet media streaming feature uses advanced bandwidth detection algorithms and end-to-end network heuristics to determine how to stream content that is at a higher bit rate than the smallest link in the network path.

Another challenge with internet access to home media is creating a peer-to-peer connection between the remote client PC and the home PC serving the media. A typical home network will get a single unique IP address from an internet service provider, and this IP address is shared by all the devices and PCs in the home using Network Address Translation (NAT), a function of an Internet Gateway Device (IGD) or Wireless Router. This creates a challenge for a remote PC or device to make an unsolicited connection inside the home, both in terms of resolving the home’s unique IP address and traversing the NAT to communicate directly to a unique PC or device on the home network.

Windows 7 employs some advanced NAT traversal technologies to establish the peer-to-peer connection and, with most IGDs, will allow a reliable connection to the home PC from any remote PC. For best results you should use a wireless router or IGD that has been certified by the Windows Logo program.

Media Formats

In Windows 7 we let you enjoy the media you want and don’t trouble you with the need to know about file types or codecs in most cases. (For more details, see Table 1 below). In addition to supporting local playback of new formats, we can also ensure that the content will play on devices that may not support the codec, bit rate, container, or format of that content. We accomplish this by using the new transcoding support in Windows 7.

Let’s say for instance you have a DivX movie you want to watch on your new DLNA certified television which only supports WMV and MPEG2. Windows 7 will determine the capability of the TV (codec, bit rate, etc.) and dynamically convert the DivX video to a format the TV can play. The general rule of thumb is: if Windows Media Player can play the content on the PC then the content will almost always play back on the network connected device. Bandwidth estimation techniques are used for media streaming within the home and over the internet, which enables Windows 7 to transcode using the most optimal format and bit rate.

Table of media format support.

 Table 1: New Decoders in Windows 7

The format and bit rate chosen for transcoding, especially for video, is highly dependent on the CPU performance of the transcoding PC as identified by its Windows Experience Index:

Windows Experience Index

We also created a flexible model for silicon partners to provide hardware accelerators that automatically work with media streaming and other Windows 7 features. This new acceleration model allows hardware developers to build media foundation proxies for media format encoders and decoders that are fully implemented in their hardware (perhaps in a GPU or additional hardware device). With hardware supported encoding and decoding, Windows 7 can offload the computationally demanding transcoding to dedicated hardware as a background task without affecting the CPU performance of the PC.

Digital Living Network Support in Windows 7

The Digital Living Network Alliance (DLNA) is a consortium of more than 200 companies interested in specifying technologies for exchanging media in home networks. The DLNA architecture is based on the UPnP specification, but in addition, DLNA specifies transport protocols (based on HTTP and RTP) and sets of media formats.

DLNA defines device roles (e.g. servers, players, renderers, etc.) and the protocols that these devices use to discover each other and communicate with each other (e.g. UPnP, HTTP, RTP, etc.). Windows 7 implements several of the DLNA device roles (see table 2 below) and it also implements the DLNA protocols required for communications and media exchange. With Windows 7, your PC will be able to interoperate with a broad variety of DLNA certified devices like TVs, stereo systems, cell phones, DVRs, game consoles, etc.

DLNA acronym table

Table 2: DLNA Device Profiles Supported by Windows 7

Because Windows 7 implements several device roles, there are different ways in which you could choose to use a Windows 7 PC at home. The remainder of this section explains the different scenarios.

Scenario 1: You store your music, video, and pictures on a Windows 7 PC. You’ve recently acquired a TV with a DLNA logo. Using the TV, you can browse the media library available on the Windows 7 PC. You can use the TV to watch the video and pictures, and listen to music stored on the PC. Figure 1 illustrates this scenario. In this case, the Windows 7 PC behaves as a DMS. Notice that this scenario was already available in Windows Vista and in Windows XP using Windows Media Player 11.

Figure 1: The TV unit browses and plays content stored in a PC

Figure 1: The TV unit browses and plays content stored in a PC

Scenario 2: You have a Network Attached Storage (NAS) device where you store your music, video, and pictures. The NAS device implements a DMS. You open Windows Media Player on a Windows 7 PC. You can find the NAS device using Windows Media Player, and you can browse the media library available on the NAS device. You can watch the video or pictures, and listen to music stored on the NAS device. Figure 2 illustrates this scenario. In this case, the Windows 7 PC behaves as a DMP.

Figure 2: A Windows 7 PC browses and plays content stored on a NAS device

Figure 2: A Windows 7 PC browses and plays content stored on a NAS device

Scenario 3: You have a cell phone that not only takes pictures but can push the pictures to a Windows 7 PC. You can show the pictures to your friends using the large-screen display of the PC without the need to physically transfer the files to the PC with a USB thumb drive, for example. Figure 3 illustrates this scenario. In this case, the cell phone acts as a DMS and a DMC and the Windows 7 PC behaves as a DMR.

Figure 3: A cell phone pushes pictures for display on a Windows7 PC

Figure 3: A cell phone pushes pictures for display on a Windows7 PC

Scenario 4: You’ve acquired a stereo system with the DLNA logo. On his Windows 7 PC, you’ve accumulated a vast collection of music with thousands of songs. Because your collection is large, you prefer to search, organize, and select songs using the rich capabilities of the Windows Media Player. Once you select the songs, you simply push the songs to your stereo system using “Play To.” You also have a NAS device containing an additional collection of music and video. You can use the Windows 7 PC to browse the content on the NAS device and push it to the stereo system. Figure 4 illustrates this scenario. In this case, the Windows 7 PC behaves as a DMS and a DMC.

Figure 4: A Windows 7 PC browses local content or shared content on the network. The PC then pushes the content for playback in a TV unit (DMR).

Figure 4: A Windows 7 PC browses local content or shared content on the network. The PC then pushes the content for playback in a TV unit (DMR).

There's definitely a lot to enjoy here.  Have fun!! 

-- Scott, Tim and the Devices & Media team

Leave a Comment
  • Please add 4 and 5 and type the answer here:
  • Post
  • Is this a Windows feature, available to any software or a Media Player only feature?  For instance, can I use the Zune software and play to a DLNA device?

  • I didn't read the whole blog yet, but i can i tell you now as a European citizen:

    Make the MediaCenter go supporting: DVB-C+ TV

    (Digital Video Broadcast - Cable+)

    Or else there is NO use of using the MediaCenter as the analogue cable is going to be phasing out rapidly!

    Recently I moved from analogue TV to DVB-C TV. And soon again they will move on to DVB-C.

    In Europe we are using DVB-C for a while now and until recently i was using WMC2005.

    Now that i moved to DVB-C, my WMC2005 is a dead peace of metal and upgrading to Windows 7 will not help me, because it wont support DVB-C.

    Makes no sense to me..... (while it supports DVB-T & DVB-S).

  • I was very excited to see this in the Windows 7 Beta that I was running.  The UI looked great.  I used it with Vista and it worked fine, but the setup was somewhat complex.

    But it did not work at all for me.  Streaming was extremely unreliable.  Ended up switching to using Vuze as a streaming server to the 360...it will transcode for you too.

  • I cant help but to ask..are you guys updating

    the WMP Skinning APIs with all the features?

    As a maker of one of the most tricky js filled WMP Skin, I faced a lot of limitations.

    The main WMP Skin can access a lot of things that skins can not. what are you doing about this so that skinners can truly make great skins with full WMP potentials?

  • Well, I'm liking the windows 7 RC, but I've had a few issues with the upgrade from a two year old Vista x64 installation.

    Firstly AVG antivirus did not upgrade cleanly. It would not start properly after the upgrade, and no repair option did the trick. I had to uninstall it and reinstall to get it to work.

    Secondly Napster would not start after the upgrade, and none of the protected WMAs would play. Again, removing and reinstalling the app resolved the issue.

    The upgrade took several hours to copy everything across, and for several hours afterwards windows was very slow, with the hard disk grinding away doing God only knows what.

    Lastly, I can no longer play Call of Duty 4 online, as Even Balance, makers of Punkbuster, put in a check which throws people off servers because there are "Unknown APIs". They and Activision simply don't want to know because they "don't support beta operating systems".

    On the plus side, I visited MS UK in Reading yesterday for a Win7 compatibility workshop and discovered no problems in my app. (Nice offices by the way. Can I have a job?)

  • I have been using Tversity to stream video to my PS3. I recently used WMP12 to stream video to my PS3 and it was slower than Tversity.

    I tried this with Xvid and H.264 format movies, which the PS3 supports playback of.

    You guys really need to speed this up to compare with Tversity. Since you both use DLNA, there should be no speed difference.

    This is on the Windows 7 RC. So you still have time before the final to fix this.

    Also, Windows 7 RC does not play all my Xvid/Divx files. But the Xvid Codec from official site play all these files. You guys should consider fixing this, because my PS3 plays all the Xvid files.

  • Pertaining to CvP's comment about skinning... What about a windows media player built with WPF ?

  • Please fix..

    When adding a drive (IE d:\) to WMP's library it doesn't use the drive's label when it is shared across the network and displayed on the xbox.

    That is extremely annoying because then I have to create a folder in each drive and move all the files in it and then add that to the library in order to get the name of the folder to show on the xbox.

  • Having just spent over an hour trying to get two computers to see each others on a Homegroup, I'm left wondering why it has to be so hard. I can set up a FTP server and it *just works*. Every time. But two Windows PC's trying to share files on a LAN is as sketchy and unreliable as ever. What is it that makes it so difficult to replicate the functionality of a 25-year old protocol? Aiming for the stars with magic zero-configuration homegroups and media streaming is fine, but it seemingly still has a huge amount of difficulty with the simplest of all usecases: Two PC's directly connected to the same local network, with no firewalls or routers between them, trying to share files.

    *sigh*

  • I'm happy to see even aacPlus/HE-AAC is supported. Only disappointments are no "Play To" support on Vista and XP PCs. I can understand if Windows 7 is required to use Play To (Controller role is Windows 7 only) however XP and Vista PCs should be supported devices for playing to (Media Renderer role in WMP11). Also, HomeGroup honestly isn't of much use to me without Windows Vista and XP support since I *WON'T* be upgrading all my PCs to Windows 7.

    Also, linking to online ID for remote PC is news to me. Again, it means that remote/client PC must also be running Windows 7? Not OK.

    Lastly, why not give users the thing they're missing for ages in Windows, the ability to transcode files from one format to another from Windows Explorer or some tool like Windows Live Movie Maker? WMP can transcode when transferring files to a portable media device, it can transcode for remote streaming yet it can't transcode for local scenarios?!!?

    Remember you are in competition with TwonkyMedia Manager and TVersity for media streaming. TwonkyMedia Manager especially runs well on XP and Vista and costs only $40.

  • It sounds great in theory, but in practice I've come across some caveats and gotchas that will confuse many people. They certainly confused me.

    For example, using the "Play to" feature will trigger proper negotiation with the DMR and turn on transcoding if required if the audio files are accessed via the main Library tree in WMP12. However, if the file is sitting on a server, this can be also accessed via the "Other Libraries" tree in WMP12. Using "Play to" here will NOT provide proper negotiation with the DMR, and incorrect formats can be streamed to the DMR.

    More work seems to be needed with your "man in the middle" scenarios of DMS-DMC-DMR setups. see here for more info:

    http://gcoupe.spaces.live.com/blog/cns!6AA39937A982345B!8218.entry

  • The capabilities described here sound impressive, but it's doubtful that I'll be able to take much advantage of them for quite a while.

    1.  My music is mostly in Apple Lossless (is transcoding that supported?).  My preference is FLAC, but my wife's iPod makes that a more difficult choice.  I would consider moving from iTunes to WMP, but our library is highly organized/optimized right now, and I'd have to have a really, really good reason to spend the time needed to migrate it.

    2.  My home server runs Linux.  It functions as a web server and NAS.  I am definitely a Windows guy at heart, but have very well considered reasons for using Linux here that go beyond my media requirements, and would be tough to overcome.  Moving my server to a Windows platform would be daunting to say the least.

    3.  All our current PCs run Vista and XP, but I can't update them all to Win7 immediately.  This is an issue of cost, compatibility, and time.

    4.  All our music is currently streamed to our audio systems and Internet by Slimserver/Squeezeboxes (not DLNA compliant).  There is a lot of $$ invested here, and the sound/capabilities are really hard to beat.  I can't justify moving to a different platform anytime soon without huge justification.

    5.  Our DirecTV DVRs have some sort of beta DLNA support, but are so slow for showing pictures and video that it is unusable for that purpose.  I have instead setup a HTPC connected directly to the TV to deal with that.  After considerable time setting this up, changing the OS on the HTPC is NOT something I want to deal with in the near future.

    6.  Nice as all this sounds, it seems that all your devices need to meet DLNA specs.  This puts the people who are most media savvy at the largest disadvantage since will likely already have a high investment in non-compliant equipment (like me).

    7.  There has been a large effort spent here to make things "just work".  The problem that I've always experienced with this technique is that when things don't work, the simplified user interfaces make problems really hard to solve.

    8.  I don't know if its just me, but if solution 'A' is challenging to setup but is stable, fast, high quality, under my strict control, and cheap, I will prefer it over 'B' which is magically easy to setup, but slower, subject to mysterious behind-the-scenes behavior, is of any reduced quality/stability, or substantially more expensive.  I am truly open to all this new media streaming capability in Win7/DLNA, but am not likely accept any solution in the 'B' category.

    9.  Here's my forecast.  It will take at least 5 years before the majority of my equipment will be upgraded--one piece at a time.  By then, I'm sure new standards will be making their way into the market and MS will be migrating away from all this to that next great standard.  I, like most extensive users of media technology, will once again be in possession of a mix of old and new standards and in "desperate need" of being upgraded.  I really wish MS would have a better strategy for users like me, such as making the tech more migratory and less watershed.

    10.  Everything I have right now actually works really, really good--minus some of the CSI-style magic.  But this magic is only fully available for folks who can manage to migrate their whole menagerie of existing equipment into the Win7/DLNA club before the next standard arrives.  I will definitely start trying out this new technology as it becomes available (I'm typically an early adopter), but will only maintain it where it adds real value.

    So am I typical or somewhere out in left field with all this?

    Dave      

  • I've put up a new entry on my blog that I think gets to the bottom of why DMS-DMC-DMR negotiations sometimes fail:

    http://gcoupe.spaces.live.com/blog/cns!6AA39937A982345B!8242.entry

  • Greater support for media streaming in Windows is probably the quickest way to get this technology popular in the mainstream. This is good news, but this blog post still contained several disappointments. No MKV is the biggest bummer.

  • Tried this for around an hour, but sorry to say I got none of it to work.  The "play to" button is not visible.  The laptop can't share it's media (maybe because it's in a domain.)  The home group doesn't seem to like my photo's from a Vista machine.

    Hopefully it's just me...

Page 2 of 10 (141 items) 12345»