Jump to content

Media Transfer Protocol

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Sloper (talk | contribs) at 13:50, 9 July 2007 (PlaysForSure and PlaysForSure II: Typo corrected). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Media Transfer Protocol is a set of custom extensions to the Picture Transfer Protocol (PTP) devised by Microsoft, to allow the protocol to be used for devices other than digital cameras, for example digital audio players such as MP3 players, and other portable media devices, for example portable video players.

Media Transfer Protocol (commonly referred to as MTP) is part of the "Windows Media" framework and thus closely related to Windows Media Player. Support for Media Transfer Protocol in Windows XP requires the installation of Windows Media Player 10 or Windows Media Player 11. Windows Vista, however, offers support for MTP natively – putting this protocol on a par with other protocols such as USB MSC.

The USB Implementers Forum device working group is presently working on standardizing MTP as a fully fledged Universal Serial Bus (USB) device class. When that process is complete, MTP will be a USB device class peer to USB mass storage device class, USB Video Class, and so on.

General

The protocol is implemented for use across USB. The host connecting to an MTP device is called an MTP Initiator whereas the device itself is an MTP Responder.

The main purpose of the protocol is to transfer media files and associated metadata to/from devices, with optional additional support for remote control of the device, reading and setting of device parameters such as special DRM-related device parameters for restricted content. The device can also send events to the host.

A main reason for using MTP rather than for example the USB mass storage device class is that it operates at the granularity of a mass storage device block (usually in practise a FAT block), rather than at the logical file level. In other words, the USB mass storage class is designed to give a host computer undifferentiated access to bulk mass storage, such as compact flash, rather than to a file system, which might be safely shared with the target device (except for specific files which the host might be modifying/accessing). In practise, therefore, when a USB host computer has mounted an MSC partition, it assumes absolute control of the storage, which then may not be safely modified without risk of data corruption until the host computer has severed the connection.

MTP and PTP specifically overcome this issue by making the unit of managed storage a local file rather than an entire (possibly very large) unit of mass storage at the block level.

Additionally, the MTP allows MTP Initiators to identify the specific capabilities of device(s) with respect to file formats and functionality. In particular, MTP Initiators may have to provide passwords and other information to unlock files, or otherwise enable restricted capabilities. Nothing specific of this nature is in the core standard but the possibility is allowed via Vendor extensions.

Drawbacks

By design, MTP devices cannot be "mounted" as a mass storage drive on Windows or Macintosh. An MTP device (like a PTP device) is not to be considered a file system in the traditional sense. However, this is not visible to the end user since newer Windows represent a devices as a drive letter, and on GNU/Linux platform it is possible to mount an MTP device using MTPFS with limited capabilities.

Windows MTP support

On Microsoft Windows MTP is supported in Microsoft Windows XP if and only if Windows Media Player is installed, or natively in Microsoft Windows Vista and onward. All MTP-compatible devices appear through drive letter assignment in Windows Explorer for easy configuration. Additionally, on Windows, MTP-compatible devices support a feature called AutoSync, which lets users configure Windows Media Player to automatically transfer all newly acquired or ripped content to a device whenever it's connected. AutoSync is customizable so that the player will transfer only content that meets certain criteria (songs rated four stars or higher, for instance). Changes made to file properties (such as a user rating) on a device can be propagated back to the computer when the device is reconnected.

Synchronization

The protocol itself does not implement synchronization, but with it synchronization of a device to a host computer using mechanisms similar to SyncML, Apple's iSync or Windows Media Player's AutoSync can be implemented.

Market acceptance

One of the more important Microsoft allies in popularizing this protocol were the companies that manufactured devices based on Microsoft's "Portable Media Center specification", including Creative Technology, Intel, iriver and Samsung. These devices were lined up at the 2004 Consumer Electronics Show.

After an initial period of uncertain reactions several large media player producers such as Creative Technology and iriver have opted to embrace the MTP protocol and drop their own custom device protocols. The general perception is that these companies are happy that they no longer have to develop their own protocols and device drivers for their products. The current device makers and device lines supporting MTP are:

The Microsoft certification mark PlaysForSure is commonly used to distinguish devices that support MTP or USB mass storage device class or both, Windows Media Audio, and the Janus DRM.

PlaysForSure and PlaysForSure II

PlaysForSure is the certification for MTP devices. This cert. states among other things that the device is by default MTP, with user selectable MSC mode.

PlaysForSure II is the next step in certification. Totally eliminating the MSC mode for portable devices (ex SanDisk's Sansa Connect)

Implementations

MTP Basic has been proposed for standardization and shall become available on multiple platforms.

  • Windows XP supports MTP if Windows Media Player 10 or later is installed. Windows Vista natively implements MTP.
  • The Xbox 360 can connect to MTP devices.
  • Linux MTP interoperability can be achieved by using:
    • libgphoto2 a shared library which supports PTP with some MTP extensions and was originally designed to support PTP cameras
      • The gphoto2 commandline tool for scripted uploading.
      • gPhotofs is able to mount any MTP or PTP device using FUSE and libgphoto2
      • Banshee has MTP support through libgphoto2
      • F-Spot has MTP support through libgphoto2
    • libmtp a shared library implementing the MTP protocol which also includes some command-line example tools
      • MTPFS can mount an MTP device through FUSE and libmtp
      • gnomad2 has MTP support through libmtp
      • MTPdude has MTP support through libmtp (Does not appear to be maintained any more.)
      • Amarok has MTP support through libmtp
  • Mac OS X has MTP support by way of XNJB. (XNJB also use the libmtp implementation of the protocol.)
  • Symbian OS v9.5 includes MTP support for music, videos and images.