Transfer Protocol медиа ( MTP) является расширением Picture Transfer Protocol (PTP) протокол связи, что позволяет медиа - файлы, которые будут автоматически передаваться и от портативных устройств. В то время как PTP был разработан для загрузки фотографий с цифровых камер, Media Transfer Protocol позволяет передавать музыкальные файлы на цифровых аудиоплеерах и медиафайлы на портативных медиаплеерах, а также личную информацию на персональных цифровых помощниках. MTP является ключевой частью WMDRM 10-PD, службы управления цифровыми правами (DRM) для платформы Windows Media. В 2011 году это стало стандартным методом передачи файлов с / на Android.
MTP является частью платформы Windows Media и, таким образом, тесно связан с проигрывателем Windows Media. Версии операционной системы Microsoft Windows из Windows XP SP2 поддерживают MTP. Windows XP требует Windows Media Player 10 или выше; более поздние версии Windows имеют встроенную поддержку. Microsoft также сделала доступным комплект переноса MTP для старых версий Windows обратно в Windows 98.
USB реализаторов Форум устройство рабочей группа стандартизирована MTP как полноправный Universal Serial Bus (USB) устройство класса в мае 2008 года С тех пор MTP является официальным дополнением к ПТПУ и разделяет тот же самый код класса.
Основная цель этого протокола - разрешить только передачу мультимедийных файлов и связанных метаданных на портативные устройства и с них, с одной функцией передачи, внутрь или наружу, за раз. Он не поддерживает такие операции, как открытие, редактирование и изменение. Обходной путь, чтобы скопировать на хостинг системы для этих операций, а затем скопировать обратно. Мобильное устройство с батарейным питанием может сообщать об уровне заряда батареи через MTP.
Первоначально протокол был реализован для использования через USB, но расширен для использования через TCP / IP и Bluetooth. Windows Vista поддерживает MTP через TCP / IP. Windows 7 и Windows Vista с обновлением платформы для Windows Vista также поддерживают MTP через Bluetooth. Хост, подключающийся к устройству MTP, называется инициатором MTP, тогда как само устройство является ответчиком MTP.
Основная причина использования MTP, а не, например, класса запоминающих устройств USB (MSC) заключается в том, что последний работает на уровне детализации блока запоминающего устройства (обычно на практике это блок FAT ), а не на уровне логический файловый уровень. Другими словами, класс запоминающих устройств USB предназначен для предоставления главному компьютеру недифференцированного доступа к массовым запоминающим устройствам, таким как компактная флэш-память, а не к файловой системе, которая может безопасно совместно использоваться с целевым устройством (за исключением определенных файлов, которые хост может изменять / получать доступ). Таким образом, на практике, когда хост-компьютер USB смонтировал раздел MSC, он принимает на себя абсолютный контроль над хранилищем, которое затем не может быть безопасно модифицировано устройством без риска повреждения данных, пока хост-компьютер не разорвет соединение. Кроме того, поскольку главный компьютер имеет полный контроль над подключенным запоминающим устройством, существует риск того, что главный компьютер может повредить файловую систему, переформатировать ее в файловую систему, не поддерживаемую устройством USB, или иным образом изменить ее таким образом. что устройство USB не может полностью его понять.
MTP и PTP специально решают эту проблему, делая единицу управляемого хранилища локальным файлом, а не целой (возможно, очень большой) единицей массовой памяти на уровне блоков. Таким образом, MTP работает как транзакционная файловая система - либо записывается / читается весь файл, либо ничего. На носитель данных не влияют неудачные передачи.
Если устройство поддерживает базу данных / индекс содержимого диска, MTP экономит затраты на повторное сканирование всего диска при каждом изменении содержимого.
Кроме того, MTP позволяет инициаторам MTP определять конкретные возможности устройства (устройств) в отношении форматов файлов и функциональности. В частности, инициаторам MTP может потребоваться предоставить пароли и другую информацию для разблокировки файлов или иным образом включить управление цифровыми правами. Ничего подобного не содержится в основном стандарте, но функции доступны через расширения поставщика. MTPZ, расширение Zune для MTP, в частности, запрещает доступ к файлам до тех пор, пока не будет обработана аутентификация, что возможно только при использовании Windows Media Player 10 или более поздней версии.
Преимущества MTP отмечены знаком « (+) », а недостатки отмечены « (-) ».
При не подвергая в файловой системе индекс и метаданных, целостность них полный контроль над устройством.
(-) Windows не назначает буквы дисков или UNC- пути устройствам MTP, поскольку изначально не предоставляет их как виртуальные файловые системы. Без букв дисков или путей UNC программное обеспечение, не поддерживающее MTP, не может получить доступ к каталогам или файлам на этих устройствах. Пользователь должен переключиться на приложение с поддержкой MTP или обойти эту проблему, используя приложение с поддержкой MTP, такое как Windows Explorer, чтобы скопировать или переместить файл в файловую систему, к которой приложение может получить доступ.
Одна особая проблема заключается в том, что антивирусное программное обеспечение на главном компьютере может не знать об устройствах MTP, что делает их потенциально менее безопасными, чем устройства массового хранения (хотя, если файлы на устройствах MTP копируются или перемещаются на хост перед использованием, антивирусное программное обеспечение, не поддерживающее MTP будет возможность их сканировать). Антивирусное сканирование также может оказаться непрактичным из-за блокировки регулярного использования устройства.
(-) Несмотря на идентифицируемость по классу USB-устройств PTP / MTP, документация libmtp указывает, что комбинация идентификатора поставщика и идентификатора продукта играет функциональную роль в идентификации устройства MTP, в том числе и драйверами Windows. Libmtp включает обширные списки поставщиков и идентификаторов продуктов для устройств, которые он поддерживает, а также обходные пути для ошибок. Эта неуниверсальная методология препятствует прямой совместимости драйверов MTP с новыми устройствами.
Спецификация MTP включает перечисление форматов файлов, называемых объектным форматом. Это перечисление используется для передачи поддерживаемых форматов файлов и форматов передаваемых файлов. Помимо некоторых некатегоризованных форматов в начале, список форматов сгруппирован по категориям форматов изображений, аудио, видео и документов, причем каждая категория имеет один «Неопределенный» формат, за которым следуют определенные форматы. Также существует универсальный формат «Неопределенный объект».
Jolla сослалась на отсутствие поддержки WebM в MTP как на одну из причин не поддерживать видеоформат в своей мобильной операционной системе Sailfish OS. Неясно, есть ли ограничение в инструментах или спецификации, кроме того, что WebM не определен спецификацией MTP 1.1.
Эти функции можно использовать как более эффективные альтернативы передаче и повторной загрузке файлов целиком:
Из спецификации MTP 1.1:
Код операции | Название операции | Объяснение |
---|---|---|
0x9805 | GetObjectPropList | Передача метаданных |
0x9806 | SetObjectPropList | |
0x1019 | MoveObject | Переименовать файл или каталог |
0x101B | GetPartialObject | Запросить байтовый диапазон файла |
Согласно go-mtpfs:
Код операции | Название операции | Объяснение |
---|---|---|
0x95C1 | GetPartialObject64 | То же, что и GetPartialObject, но с 64-битным смещением |
0x95C2 | SendPartialObject | То же, что GetPartialObject64, но копирование хоста на устройство |
0x95C3 | TruncateObject | Обрезает файл до 64-битной длины |
0x95C4 | BeginEditObject | Должен быть вызван перед использованием SendPartialObject и TruncateObject |
0x95C5 | EndEditObject | Вызывается для фиксации изменений, внесенных SendPartialObject и TruncateObject |
MTP поддерживается в Windows XP, если установлен Windows Media Player 10 или более поздней версии. Windows Vista и более поздние версии имеют встроенную поддержку MTP. Для более старых версий Windows, в частности Windows 2000, Windows 98 и Windows Me, Microsoft выпустила MTP Porting Kit. который содержит драйвер устройства MTP. Некоторые производители, такие как Creative Technology, также предоставляют устаревшие драйверы MTP для некоторых своих плееров; они обычно состоят из файлов MTP Porting Kit с настраиваемым файлом INF, описывающим их конкретные проигрыватели.
Windows не назначает буквы дисков или пути UNC устройствам, подключенным через MTP; вместо этого они отображаются как именованные устройства только в приложениях с поддержкой MTP, таких как проводник Windows. По сравнению с устройствами, в которых реализовано запоминающее устройство USB, к таким устройствам нельзя получить программный доступ с помощью сценариев или обычных программ Windows, которые зависят от букв дисков или UNC-путей. Вместо этого файлы должны управляться с помощью проводника Windows или приложений со специально написанной поддержкой MTP.
Под Windows MTP-совместимые устройства поддерживают функцию Auto Sync, которая позволяет пользователям настраивать проигрыватель Windows Media для автоматической передачи всего скопированного или вновь полученного содержимого на устройства, когда они подключены, при условии, что содержимое совместимо с проигрывателем Windows Media. Автосинхронизация настраивается таким образом, чтобы проигрыватель передавал только контент, который соответствует определенным критериям (например, песни с рейтингом четыре звезды или выше). Изменения, внесенные в свойства файла (например, рейтинг пользователя и количество воспроизведений файлов) на устройстве, могут быть переданы обратно на компьютер при повторном подключении устройства.
Копии файлов, к которым осуществляется доступ через MTP, могут оставаться на главном компьютере даже после перезагрузки, где они будут доступны для учетной записи пользователя, которая к ним обратилась, а также для любых других учетных записей пользователей, которые могут читать файлы этой учетной записи, включая любых административных пользователей. Платформа датчиков Windows 7 поддерживает датчики, встроенные в MTP-совместимые устройства.
В реализации MTP, используемой проводником Windows, файлы из выборки, перемещенной из хранилища мобильного устройства, возможно, с целью освобождения места, не удаляются индивидуально из источника после каждого файла, а вместо этого весь выбор удаляется в один раз из источника только после завершения передачи.
В результате перемещение файлов, прерванное несвоевременно, вручную или неожиданно, не освободит место на исходном устройстве.
Бесплатная реализация протокола передачи мультимедиа с открытым исходным кодом доступна как libmtp. Эта библиотека включает идентификаторы продуктов и устройств из многих источников и обычно используется в другом программном обеспечении для поддержки MTP.
Приложения GNOME, такие как GNOME Files (ранее называвшиеся Nautilus) и Archive Manager (ранее называвшиеся File-Roller), используют GVfs на основе GIO для доступа к файлам на устройствах MTP. Правильная поддержка MTP была добавлена в GVfs в версии 1.15.2 (2013-01-15) Филипом Лэнгдейлом. Доступны ранние патчи для GVfs, позволяющие использовать расширения прямого ввода-вывода Google.
Проект KDE разрабатывает подчиненное устройство MTP KIO с таким же уровнем интеграции, что и GVfs.
Не связанный с GNOME или KDE, графический медиаплеер * NIX с поддержкой MTP, gMTP.
Некоторые инструменты предоставляют файловую систему на основе FUSE для монтирования устройств MTP в иерархии файловой системы Unix, делая ее доступной для любой программы, которая работает с файлами и каталогами. Примеры включают mtpfs, jMTPFS, go-mtpfs и simple-mtpfs.
В macOS есть встроенная поддержка MTP (через приложение «Цифровые изображения»), но нет (сторонних) драйверов для подключения устройств MTP в качестве дисков. Также для Mac OS X v10.5 и новее доступны несколько сторонних приложений для передачи файлов:
Более поздние версии нескольких операционных систем, включая AmigaOS, Android, AROS, MorphOS и Symbian OS, поддерживают MTP, иногда с дополнительными драйверами или программным обеспечением.
Недостатком устройств MTP на Android по сравнению с USB-накопителем является то, что, хотя временные метки файлов сохраняются при копировании файлов с устройства Android на компьютер, при копировании в другом направлении временные метки модификации файлов заменяются временем, когда была сделана копия. Выполнено.
Компании, включая Creative Technology, Intel, iriver и Samsung Electronics, которые производят устройства на основе « спецификации портативного медиацентра » Microsoft, широко применяют протокол MTP. Вспомогательные устройства были представлены на выставке Consumer Electronics Show 2004 года.
После начального периода неопределенной реакции несколько крупных производителей медиаплееров, таких как Creative Technology и iriver, приняли протокол MTP вместо своих собственных протоколов.
Многие устройства и аудиоприложения поддерживают MTP.