Протокол передачи мультимедиа - Media Transfer Protocol

В Протокол передачи мультимедиа (MTP) является продолжением Протокол передачи изображений (PTP) протокол связи что позволяет автоматически передавать медиафайлы на портативные устройства и обратно.[1] В то время как PTP был разработан для загрузки фотографий из цифровые фотоаппараты, Протокол передачи мультимедиа позволяет передавать музыкальные файлы на цифровые аудиоплееры и медиафайлы на портативные медиаплееры, а также личную информацию на персональные цифровые помощники. MTP - ключевая часть WMDRM 10-ПД,[1] а управление цифровыми правами (DRM) для Windows Media Платформа. В 2011 году это стало стандартным методом передачи файлов с / на Android.[2]

MTP является частью платформы Windows Media и поэтому тесно связан с Проигрыватель Windows Media. Версии Майкрософт Виндоус Операционная система из Windows XP SP2 поддерживает MTP. Windows XP требует Windows Media Player 10 или выше;[3] более поздние версии Windows имеют встроенную поддержку. Microsoft также сделала доступным комплект MTP Porting Kit для старых версий Windows. Windows 98.

В Форум разработчиков USB рабочая группа по устройству стандартизировала MTP как полноценный универсальная последовательная шина (USB) в мае 2008 г.[4] С тех пор MTP является официальным расширением PTP и имеет тот же код класса.[5]

Обзор

Основная цель этого протокола - разрешить только передачу медиафайлов. файлы и связанные метаданные к портативным устройствам и обратно, по одной функции передачи, внутрь или наружу, за раз. Он не поддерживает такие операции, как открытие, редактирование и изменение. А обходной путь - скопировать в систему хостинга для этих операций, а затем скопировать обратно.

Первоначально протокол был реализован для использования через USB, но расширен для использования через TCP / IP и Bluetooth. Виндоус виста поддерживает MTP через TCP / IP. Windows 7 и Windows Vista с обновлением платформы для Windows Vista также поддерживают MTP через Bluetooth.[6] Хост, подключающийся к устройству MTP, называется Инициатор MTP в то время как само устройство Ответчик MTP.[7]

Основная причина использования MTP, а не, например, Класс запоминающих устройств USB (MSC) заключается в том, что последний работает на уровне детализации блока запоминающего устройства (обычно на практике ТОЛСТЫЙ блок), а не на уровне логического файла. Другими словами, класс запоминающих устройств USB предназначен для предоставления главному компьютеру недифференцированного доступа к запоминающим устройствам большой емкости, таким как компактная вспышка, а не в файловую систему, которую можно безопасно использовать совместно с целевым устройством (за исключением определенных файлов, которые хост может изменять / получать доступ). Поэтому на практике, когда главный USB-компьютер установленный раздел MSC, он предполагает абсолютный контроль над хранилищем, которое затем не может быть безопасно модифицировано устройством без риска повреждения данных, пока главный компьютер не разорвет соединение. Кроме того, поскольку главный компьютер имеет полный контроль над подключенным запоминающим устройством, существует риск того, что главный компьютер может повредить файловую систему, переформатировать ее в файловую систему, не поддерживаемую устройством USB, или иным образом изменить ее таким образом. что устройство USB не может полностью его понять.

MTP и PTP специально решают эту проблему, делая единицу управляемого хранилища локальным файлом, а не целой (возможно, очень большой) единицей массовой памяти на уровне блоков. Таким образом, MTP работает как транзакционная файловая система - либо записывается / читается весь файл, либо ничего. На носитель данных не влияют неудачные передачи.

Если устройство поддерживает базу данных / индекс содержимого диска, MTP экономит затраты на повторное сканирование всего диска при каждом изменении содержимого.

Кроме того, MTP позволяет Инициаторы MTP для определения конкретных возможностей устройств в отношении форматов файлов и функций. В частности, инициаторам MTP может потребоваться предоставить пароли и другую информацию для разблокировки файлов или иным образом включить управление цифровыми правами. Ничего подобного не содержится в основном стандарте, но функции доступны через расширения поставщика. MTPZ, расширение Zune для MTP, в частности, запрещает доступ к файлам до тех пор, пока не будет обработана аутентификация, что возможно только при использовании Windows Media Player 10 или выше.

Сравнение с USB Mass Storage

Преимущества MTP отмечены знаком "(+)«а недостатки отмечены значком»(-)".

Файловый вместо блочного протокола

К не разоблачать в файловая система и индекс метаданных, их целостность полностью контролируется устройством.

  • (+) Отсутствие риска повреждения файловой системы при отключении устройства во время записи. Передача файлов осуществляется атомарно, и от пользователя не требуется явного отключения файловой системы («безопасного удаления»).
  • При подключении устройство может получить доступ к собственной файловой системе:
    • (+) Повторной индексации после отключения от сети можно избежать. Также помогло включение метаданных при переносе.
    • (+) Отдельная файловая система для отображения хоста не нужна. Это позволяет избежать негибкости в отношении фиксированного размера раздел для этой файловой системы.
  • (+) Хосту не нужно поддерживать файловую систему устройства. И наоборот, производитель устройства может выбрать файловая система (обычно Linux файловая система не поддерживается Windows ) кроме широко поддерживаемых ТОЛСТЫЙ семейство файловых систем.
  • (-) Восстановление файловой системы и восстановление инструменты на компьютере использовать нельзя, поскольку MTP не предлагает доступа на уровне блоков.
  • (-) Многие устройства, подключенные к MTP, особенно старые, не предоставляют метки времени файлов через протокол, что приводит к их потере при копировании / перемещении файлов на компьютер или с компьютера. Такие файлы, как фотографии в формате JPEG со встроенными Exif данные все еще имеют метки времени внутри (и существуют утилиты для восстановления меток времени файлов на их основе), но этот обходной путь недоступен для других типов файлов без таких внутренних метаданных.

Спектакль

  • (-) MTP не допускает параллелизма (асинхронность ), В отличие от USB-накопитель или же NAS. MTP был построен для одновременного выполнения только одной операции (например, операции чтения, записи или удаления), в то время как никакая другая операция не может быть выполнена до завершения предыдущей операции.
  • (-) Ограниченная поддержка передачи частей файлов, таких как блоки или диапазоны байтов (см. § Функции прямой модификации и частичной передачи ).
  • (-) Ограниченная поддержка прямого изменения файлов (см. § Функции прямой модификации и частичной передачи ). Чтобы изменить файл или его метаданные, может потребоваться скопировать весь файл с устройства и повторно загрузить, что занимает много времени для большого файла или каталога и тем временем блокирует устройство для других операций. Google реализация MTP в Android включает расширения для устранения этого ограничения; однако эти расширения должны поддерживаться операционной системой хоста.[8][9]
  • (-) Загрузка более длинных списков файлов (тысячи элементов) и «подготовка» к передаче файлов могут занять больше времени, чем сама передача файлов.

Прозрачность для программного обеспечения, не поддерживающего MTP

(-) Windows не назначает буквы дисков или же UNC пути к устройствам MTP, потому что он изначально не предоставляет их как виртуальные файловые системы. Без букв дисков или путей UNC программное обеспечение, не поддерживающее MTP, не может получить доступ к каталогам или файлам на этих устройствах. Пользователь должен переключиться на приложение с поддержкой MTP, иначе работать вокруг с помощью приложения с поддержкой MTP, такого как проводник Windows, для копирования или перемещения файла в файловую систему, к которой приложение имеет доступ.

Особую озабоченность вызывает то, что антивирусное программное обеспечение на главном компьютере могут не знать об устройствах MTP, что делает их потенциально менее безопасными, чем устройства массового хранения (хотя, если файлы на устройствах MTP копируются или перемещаются на хост перед использованием, антивирусное программное обеспечение, не знающее MTP, будет иметь возможность сканировать их ).[нужна цитата ] Антивирусное сканирование также может оказаться непрактичным из-за блокировки регулярного использования устройства.

Драйверы знают фиксированный набор поддерживаемых устройств

(-) Несмотря на идентифицируемость PTP / MTP Класс USB-устройства Документация libmtp указывает, что комбинация идентификатора поставщика и идентификатора продукта играет функциональную роль в идентификации устройства MTP, в том числе с помощью драйверов Windows.[10] Libmtp включает обширные списки поставщиков и идентификаторов продуктов для устройств, которые он поддерживает, а также обходные пути для устранения ошибок.[11][12] Эта нетипичная методология мешает водителям MTP прямая совместимость с новыми устройствами.

Спецификация знает фиксированный набор определенных форматов файлов.

Спецификация MTP включает перечисление форматов файлов, называемых формат объекта.[5] Это перечисление используется для передачи поддерживаемых форматов файлов и форматов передаваемых файлов. Помимо некоторых некатегоризованных форматов вначале, список форматов сгруппирован по категориям форматов изображений, аудио, видео и документов, причем каждая категория имеет один «Неопределенный» формат, за которым следуют определенные форматы. Существует также универсальный формат «Неопределенный объект».

Jolla сослался на отсутствие WebM поддержка в MTP как одна из причин не поддерживать формат видео в своей мобильной операционной системе ОС Sailfish. Неясно, есть ли ограничение в инструментах или спецификации, кроме того, что WebM не определен спецификацией MTP 1.1.[13][ненадежный источник? ]

Функции прямой модификации и частичной передачи

Эти функции можно использовать как более эффективные альтернативы передаче и повторной загрузке всего файла:

Из спецификации MTP 1.1:[5]

Код операцииНазвание операцииОбъяснение
0x9805GetObjectPropListПередача метаданных
0x9806SetObjectPropList
0x1019MoveObjectПереименовать файл или каталог
0x101BGetPartialObjectЗапросить байтовый диапазон файла

Расширения Android

По данным go-mtpfs:[9]

Код операцииНазвание операцииОбъяснение
0x95C1GetPartialObject64Такой же как GetPartialObject, но с 64-битным смещением
0x95C2SendPartialObjectТакой же как GetPartialObject64, но копирование хоста на устройство
0x95C3TruncateObjectОбрезает файл до 64-битной длины
0x95C4BeginEditObjectНеобходимо вызвать перед использованием SendPartialObject и TruncateObject
0x95C5EndEditObjectВызывается для фиксации изменений, внесенных SendPartialObject и TruncateObject

Поддержка MTP

Windows

Адаптация в Windows

MTP поддерживается в Windows XP если Проигрыватель Windows Media Установлены 10 или более поздние версии. Виндоус виста и более поздние версии имеют встроенную поддержку MTP. Для более старых версий Windows, в частности Windows 2000, Windows 98 и Windows Me, Microsoft выпустила комплект MTP Porting Kit.[14] который содержит драйвер устройства MTP. Некоторые производители, такие как Креативные технологии, также предоставляют устаревшие драйверы MTP для некоторых своих плееров; они обычно состоят из файлов MTP Porting Kit с настраиваемым файлом INF, описывающим их конкретные проигрыватели.[нужна цитата ]

Поддержка программным обеспечением

Windows не назначает буквы дисков или же UNC пути к устройствам, подключенным через MTP; вместо этого они отображаются как именованные устройства только в приложениях с поддержкой MTP, таких как проводник Виндоус. По сравнению с устройствами, в которых реализовано запоминающее устройство USB, к таким устройствам нельзя получить программный доступ с помощью сценариев или обычных программ Windows, которые зависят от букв дисков или UNC-путей. Вместо этого файлы должны управляться с помощью проводника Windows или приложений со специально написанной поддержкой MTP.

Под Windows MTP-совместимые устройства поддерживают функцию Auto Sync, которая позволяет пользователям настраивать проигрыватель Windows Media для автоматической передачи всего скопированного или вновь полученного содержимого на устройства, когда они подключены, при условии, что содержимое совместимо с проигрывателем Windows Media. Автосинхронизация настраивается таким образом, что проигрыватель будет передавать только контент, который соответствует определенным критериям (например, песни с рейтингом четыре звезды или выше). Изменения, внесенные в свойства файла (такие как рейтинг пользователя и счетчик воспроизведения файлов) на устройстве, могут быть переданы обратно на компьютер при повторном подключении устройства.

Копии файлов, к которым осуществляется доступ через MTP, могут оставаться на главном компьютере даже после перезагрузки,[нужна цитата ] где они будут доступны для учетной записи пользователя, которая имела к ним доступ, а также для любых других учетных записей пользователей, способных читать файлы этой учетной записи, включая любых административных пользователей. Платформа датчиков Windows 7 поддерживает датчики, встроенные в MTP-совместимые устройства.[15]

Поведение при перемещении файлов

В реализации MTP, используемой проводником Windows, файлы из выбранных взолнованный из хранилища мобильного устройства, возможно, с целью освобождения места, не удаляются индивидуально из источника после каждого файла, а вместо этого весь выбор удаляется сразу из источника только после завершения передачи.

В результате перемещение файлов, прерванное несвоевременно, вручную или неожиданно, не освободит место на исходном устройстве.[16][17]

Unix-подобные системы

Бесплатная реализация протокола передачи мультимедиа с открытым исходным кодом доступна как libmtp.[18] Эта библиотека включает идентификаторы продуктов и устройств из многих источников,[11] и обычно используется в другом программном обеспечении для поддержки MTP.

Графический

ГНОМ такие приложения, как Файлы GNOME (ранее назывался Наутилус) и Менеджер архива (ранее назывался File-Roller) используйте GIO -основан GVfs для доступа к файлам на устройствах MTP. Правильная поддержка MTP была добавлена ​​в GVfs в версии 1.15.2 (2013-01-15)[19] Филиппа Лэнгдейла.[20][21] Доступны ранние патчи для GVfs, позволяющие использовать расширения прямого ввода-вывода Google.[22]

Проект KDE разрабатывает MTP КИО Slave с таким же уровнем интеграции, что и GVfs.

К GNOME или KDE не относится графический медиаплеер * NIX с поддержкой MTP, gMTP.

Виртуальная файловая система

Несколько инструментов обеспечивают ПРЕДОХРАНИТЕЛЬ основанная на файловой системе для монтирования устройств MTP в иерархии файловой системы Unix, что делает ее доступной для любой программы, которая работает с файлами и каталогами. Примеры включают mtpfs, jMTPFS, go-mtpfs и простой-mtpfs.[23]

macOS

macOS имеет встроенную поддержку MTP (через приложение «Цифровые образы»), но нет (сторонних) драйверов для монтирования устройств MTP в качестве дисков. Также для Mac OS X v10.5 и новее доступны несколько сторонних приложений для передачи файлов:

  • Android File Transfer - это простой клиент MTP.[24]
  • Android File Transfer для Linux (и Mac OS X!), Открытый исходный код, лицензия GPL версии 3, графический интерфейс, инструмент командной строки, оболочка FUSE - установка вашего устройства,[25]
  • XNJB также предлагает синхронизацию плейлистов iTunes.[26]
  • SyncMate Expert утверждает, что также поддерживает MTP помимо других задач синхронизации. Поддержка не может быть протестирована в бесплатной версии.[27]
  • Commander One PRO Pack - файловый менеджер, позволяющий подключать устройства MTP к Mac и управлять их содержимым.[28]

Другие операционные системы

Более поздние версии нескольких операционных систем, включая AmigaOS, Android, AROS, MorphOS, и ОС Symbian поддержка MTP, иногда с дополнительными драйверами или ПО.

Недостатком устройств MTP на Android по сравнению с USB-накопителем является то, что, хотя временные метки файлов сохраняются при копировании файлов с Android-устройства на компьютер, при копировании в другом направлении временные метки изменения файла заменяются временем, когда была сделана копия. сделано.[29][30]

Другие производители

Компании, включая Creative Technology, Intel, iriver, и Samsung Electronics, которые производят устройства на базе Microsoft "Портативный медиацентр спецификации », получили широкое распространение в MTP. Вспомогательные устройства были представлены в 2004 г. Выставка бытовой электроники.

После начального периода неопределенной реакции несколько крупных производителей медиаплееров, таких как Creative Technology и iriver, приняли протокол MTP вместо своих собственных протоколов.

Многие устройства и аудиоприложения поддерживают MTP.

Альтернативы

Смотрите также

Рекомендации

  1. ^ а б «Детали реализации протокола передачи мультимедиа». MTP определен на слайде 3. Архивировано 14 декабря 2005 года.CS1 maint: неподходящий URL (связь)
  2. ^ «В конце концов, Ice Cream Sandwich поддерживает USB-накопители, а Galaxy Nexus - нет». Engadget. 25 ноября 2011 г.. Получено 5 января, 2020.
  3. ^ «Окончательный доступ к проигрывателю Windows Media 10 дает больше музыки и больше возможностей для музыкальных фанатов» (Пресс-релиз). Microsoft. 2 сентября 2004 г.
  4. ^ «MTP, стандартный портативный проигрыватель? Маклаучлан от Microsoft устанавливает нас прямо». 31 июля 2006 г.. Получено 1 июня, 2016.
  5. ^ а б c «Соглашение об использовании протокола передачи мультимедиа v.1.1 и MTP v.1.1». 6 апреля 2011 г.
  6. ^ «MTP по разным видам транспорта». Получено 1 июня, 2016.
  7. ^ «Спецификация MTP». В архиве из оригинала от 4 июня 2011 г.
  8. ^ «Нормальная поддержка чтения / записи файлов с бэкэндом GVFS MTP!». 18 февраля 2013 г.. Получено 1 июня, 2016.
  9. ^ а б "hanwen / go-mtpfs". Получено 1 июня, 2016.
  10. ^ "libmtp README". 8 июля 2017 г.. Получено 9 июля, 2017. Устройствам требуются разные PID для каждого альтернативного интерфейса из-за стека Windows USB.
  11. ^ а б "Исходный код libmtp: music_players.h". Получено 26 ноября, 2015.
  12. ^ "Исходный код libmtp: ptp.h". Получено 9 июля, 2017.
  13. ^ "Поддержка Webm (VP8, VP9, ​​Opus) для Sailfish - together.jolla.com". Получено 1 июня, 2016.
  14. ^ «Комплект для переноса протокола передачи мультимедиа». Microsoft. Получено 1 июня, 2016.
  15. ^ «Датчики и окна». Блог группы разработчиков портативных устройств Windows. 17 декабря 2009 г.
  16. ^ guenni (30 августа 2017 г.). «У Windows 10 проблема MTP с устройствами Android | Born's Tech и Windows World». borncity.com.
  17. ^ Леонхард, Вуди (31 августа 2017 г.). «Не используйте Windows 10 для перемещения данных на телефоне Android». Computerworld.
  18. ^ "libmtp". Libmtp.sourceforge.net. Получено 15 марта, 2014.
  19. ^ "gvfs-1.15.2.changes". ftp.gnome.org. 15 января 2013 г.. Получено 6 июня, 2013.
  20. ^ "Собственный бэкэнд gvfs для устройств MTP". 7 августа 2010 г.. Получено 1 июня, 2016.
  21. ^ "gvfs - реализация виртуальной файловой системы для GIO". git commit добавляет серверную часть MTP в GVfs. Получено 1 июня, 2016.
  22. ^ «Ошибка 695984 - добавление поддержки для расширений прямого ввода-вывода Android». Получено 1 июня, 2016.
  23. ^ Arch Linux Wiki (1 сентября 2014 г.). «МТП». Получено 23 октября, 2014.
  24. ^ «Передача файлов Android». Android.com. Получено 15 марта, 2014.
  25. ^ «Android File Transfer Linux Mac OS X». сволочь. Получено 2 декабря, 2016.
  26. ^ «XNJB». Ричард Лоу. Получено 15 июня, 2014.
  27. ^ "SyncMate". Программное обеспечение ELTIMA. Получено 15 июня, 2014.
  28. ^ «Пакет Commander One PRO». ИванК_Элтима. Получено 20 апреля, 2017.
  29. ^ «Проблема 57065 - Android. Запись файлов через MTP, установка даты и времени для изображений и файлов в текущее состояние, без сохранения метки времени. - Проект с открытым исходным кодом Android - Система отслеживания проблем - Хостинг проектов Google». code.google.com. 30 августа 2016 г.. Получено 2 сентября, 2016.
  30. ^ «Проблема 18624 - android - setLastModified () всегда дает сбой в Xoom, если не запущен от имени пользователя root - Android Open Source Project - Issue Tracker - Google Project Hosting». code.google.com. 30 августа 2016 г.. Получено 2 сентября, 2016.

внешняя ссылка