# Media Transfer Protocol

MTP (Media Transfer Protocol) est un protocole inventé par Microsoft pour permettre aux appareils mobiles multimédia (appareil photo, lecteur audio…) de communiquer entre eux. Les spécifications ont été publiées dans le cadre du protocole USB mais MTP est soumis à une licence propriétaire. Un grand nombre de marques l’ont adopté.

## Inconvénients

Les périphériques MTP ne sont pas traités comme des supports de stockage de données. Le véritable système de fichiers est géré par l'appareil, et le système d'exploitation de l'ordinateur auquel le périphérique est connecté n'y a pas accès. En théorie, le système peut cacher le fait qu'il n'ait pas accès aux fichiers directement en présentant les médias proposés par le périphérique dans son navigateur de fichiers habituels, mais ni Mac OS X, ni Windows ne le font. L'inaccessibilité du système de fichiers empêche également la récupération des fichiers dans le cas où la mémoire de l'appareil viendrait à être corrompue.
Contrairement à l’UMS, un certain nombre de systèmes d'exploitation ne reconnaissent pas nativement MTP, et requièrent pour cela l'installation d'un logiciel tiers.
Le protocole MTP ne permet pas non plus la modification des médias, ce qui oblige à transférer entièrement un fichier à chaque fois qu'il est modifié, causant de fortes pertes de performances dans le cas de fichiers volumineux ou d'une faible vitesse de transfert, et ne permet pas de transférer des fichiers de plus de 4,4 Go (avec Android).

## Avantages

Contrairement à l'UMS, l'appareil peut continuer à utiliser les fichiers en même temps que l'ordinateur comme s'ils n'étaient pas connectés l'un à l'autre. L'appareil peut en plus indiquer son niveau de charge de sa batterie (et d'autres informations).

## Mises en œuvre

MTP Basic a été proposé comme standard et devrait être disponible pour de nombreuses plateformes.
* Windows XP supporte MTP si Windows Media Player 10 ou 11 (ou le runtime Windows Media 11) est installé.
* Windows Vista et Windows 7 gèrent nativement MTP (si et seulement si WMP n'est pas désinstallé).
* La Xbox 360 et la PlayStation 3 peuvent se connecter à des appareils MTP.
* GNU/Linux prend en charge MTP au travers de :
** libgphoto2 une bibliothèque gérant PTP et quelques extensions de MTP.
*** Le programme en ligne de commande gphoto2 permettent l'échange de fichiers et le contrôle à distance des appareils photos numériques (APN) via PTP et certains protocoles propriétaires.
*** Les interfaces graphiques GTKam utilisant GTK2 et DigiKam utilisant KDE, fondé sur libgphoto2, permettant le contrôle des APN via PTP et protocoles spécifiques et le transfert des fichiers via PTP et MTP et protocoles spécifiques aux appareils.
*** gphotofs, un système de fichier FUSE, permettant à un utilisateur de monter en ligne de commande et également utilisé entre autres par gvfsd-gphoto2.
*** F-Spot gère MTP à travers gvfsd-gphoto2.
** libmtp une bibliothèque qui implémente le protocole MTP (et qui inclut également quelques utilitaires en ligne de commande). libmtp est notamment utilisée dans :
*** Amarok
*** Audacious
*** Banshee
*** Clementine
*** Gnomad2
*** MTPfs permettant le montage d'appareil MTP.
*** jmtpfs permettant le montage d'appareil MTP comme si c'était une clé USB sur Linux. Plus stable et fiable que MTPfs$^,$. De plus, il fonctionne bien avec les téléphones ou tablettes sous le système d'exploitation Android d'après ses utilisateurs.
*** go-mtpfs, outil développé dans un langage peu répandu, le Go, et permettant le montage d'appareil MTP.
*** Qlix
*** Rhythmbox
* Mac OS X peut utiliser XNJB comme implémentation tiers (XNJB utilise libmtp).
* Symbian OS gère MTP pour la musique, les images et les vidéos.
* AmigaOS, AROS et MorphOS gère MTP avec la pile Poseidon.
* Android gère MTP depuis le niveau d'API 12 (version 3.1).