stringtranslate.com

Протокол передачи мультимедиа

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

MTP является частью фреймворка "Windows Media" и, таким образом, тесно связан с Windows Media Player . Версии операционной системы Microsoft Windows , начиная с 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]

Обзор

MTP — это протокол передачи файлов высокого уровня , в отличие от общего протокола хранения, такого как USB-накопитель . Это означает, что клиент MTP (компьютер) не видит массив байтовых блоков , который составляет структуру данных , составляющую файловую систему , а вместо этого говорит с устройством MTP в терминах файлов и папок. Это позволяет устройству MTP участвовать в операциях высокого уровня (таких как обновление индексов метаданных), сохраняя при этом целостность своей файловой системы в своих руках. В частности, сброшенные передачи (например, слишком раннее отключение кабеля USB) не повреждают файловую систему устройства. [6] Неуниверсальность MTP имеет последствия для того, как операционная система компьютера может представлять устройство MTP как другим программам, так и пользователю.

Согласно спецификации, основная цель MTP — облегчить связь между медиаустройствами с временным подключением. [5] Вторичная цель — обеспечить возможность управления и контроля подключенного устройства. [5] Мобильное устройство с питанием от батареи может сообщать об уровне заряда батареи через MTP. [6]

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

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

Сравнение с USB-накопителем

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

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

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

Производительность

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

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

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

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

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

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

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

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

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

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

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

Расширения Android

Согласно go-mtpfs: [12]

Поддержка МТР

Окна

Адаптация в Windows

MTP поддерживается в Windows XP , если установлен Windows Media Player 10 или более поздние версии. Windows Vista и более поздние версии имеют встроенную поддержку MTP. Для более старых версий Windows, в частности, Windows 2000, Windows 98 и Windows Me, Microsoft выпустила MTP Porting Kit. [18] который содержит драйвер устройства MTP. Некоторые производители, такие как Creative Technology , также предоставляют устаревшие драйверы MTP для некоторых своих плееров; они обычно состоят из файлов MTP Porting Kit с настроенным INF-файлом, описывающим их конкретные плееры. [ необходима цитата ]

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

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

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

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

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

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

В результате несвоевременное прерывание перемещения файлов (вручную или неожиданно) не приведет к освобождению места на исходном устройстве. [20] [21]

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

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

Графический

Приложения GNOME , такие как GNOME Files (ранее называвшийся Nautilus) и Archive Manager (ранее называвшийся File-Roller), используют GVfs на основе GIO для доступа к файлам на устройствах MTP. Надлежащая поддержка MTP была добавлена ​​в GVfs в версии 1.15.2 (2013-01-15) [23] Филиппом Лэнгдейлом. [24] [25] Доступны ранние исправления для GVfs, позволяющие использовать расширения прямого ввода-вывода Google. [26]

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

Не имеющий отношения к GNOME или KDE графический медиаплеер *NIX с поддержкой MTP — gMTP.

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

Несколько инструментов предоставляют файловую систему на основе FUSE для монтирования устройств MTP в иерархии файловой системы Unix, что делает ее доступной для любой программы, работающей с файлами и каталогами.

macOS

macOS имеет встроенную поддержку MTP (через приложение "Image Capture" [27] ), но нет (сторонних) драйверов для монтирования устройств MTP в качестве дисков. Также для Mac OS X v10.5 и более поздних версий доступно несколько сторонних приложений для передачи файлов:

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

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

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

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

Компании, включая Creative Technology, Intel , iriver и Samsung Electronics , которые производят устройства на основе спецификации Microsoft Portable Media Center , широко приняли MTP. Поддерживающие устройства были представлены на выставке Consumer Electronics Show 2004 года .

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

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

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

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

Ссылки

  1. ^ ab "Подробности реализации протокола передачи мультимедиа". MTP определен на слайде 3. Архивировано из оригинала 14 декабря 2005 г.{{cite web}}: CS1 maint: unfit URL (link)
  2. ^ "Ice Cream Sandwich поддерживает USB-накопители, а Galaxy Nexus — нет". Engadget. 25 ноября 2011 г. Архивировано из оригинала 5 февраля 2020 г. Получено 5 января 2020 г.
  3. ^ «Окончательная доступность Windows Media Player 10 приносит больше музыки и больше выбора для любителей музыки» (пресс-релиз). Microsoft. 2 сентября 2004 г. Архивировано из оригинала 18 октября 2019 г. Получено 18 октября 2019 г.
  4. ^ "MTP, Portable Player Standard? Microsoft's McLauchlan Sets Us Straight". 31 июля 2006 г. Архивировано из оригинала 4 августа 2016 г. Получено 1 июня 2016 г.
  5. ^ abcde "Media Transfer Protocol v.1.1 Spec и MTP v.1.1 Adopters Agreement". 6 апреля 2011 г. Архивировано из оригинала 29 сентября 2018 г. Получено 29 сентября 2018 г.
  6. ^ ab "Страх и ненависть в протоколе передачи мультимедиа" (PDF) . eLinux . Основы PTP/MTP. Архивировано (PDF) из оригинала 7 февраля 2021 г. . Получено 7 февраля 2021 г. .
  7. ^ "MTP Over Various Transports". 29 августа 2009 г. Архивировано из оригинала 1 мая 2019 г. Получено 1 июня 2016 г.
  8. ^ "Спецификация MTP". Архивировано из оригинала 4 июня 2011 года.
  9. ^ "Google Issue Tracker". issuetracker.google.com . Получено 2 апреля 2022 г. .
  10. ^ "usb - Почему MTP показывает неправильное расположение каталога?". Android Enthusiasts Stack Exchange . Получено 2 апреля 2022 г. .
  11. ^ «Поддержка обычного чтения/записи файлов с бэкэндом GVFS MTP!». 18 февраля 2013 г. Архивировано из оригинала 14 апреля 2016 г. Получено 1 июня 2016 г.
  12. ^ ab "hanwen/go-mtpfs". GitHub . Архивировано из оригинала 7 октября 2018 г. Получено 1 июня 2016 г.
  13. ^ "libmtp README". 8 июля 2017 г. Архивировано из оригинала 10 августа 2016 г. Получено 9 июля 2017 г. Устройствам нужны разные PID для каждого альтернативного интерфейса из-за стека USB Windows.
  14. ^ ab "libmtp source code: music_players.h". Архивировано из оригинала 18 ноября 2015 г. Получено 26 ноября 2015 г.
  15. ^ "libmtp source code: ptp.h". Архивировано из оригинала 8 марта 2021 г. Получено 9 июля 2017 г.
  16. ^ "Webm (VP8, VP9, ​​Opus) support for Sailfish - together.jolla.com". Архивировано из оригинала 4 марта 2016 г. Получено 1 июня 2016 г.
  17. ^ «Невозможно использовать MTP с помощью кабеля USB». Sailfishos.org . 13 апреля 2021 г. . Получено 13 апреля 2021 г. .
  18. ^ "Media Transfer Protocol Porting Kit". Microsoft. Архивировано из оригинала 8 июня 2016 г. Получено 1 июня 2016 г.
  19. ^ "Sensors and Windows". Блог команды разработчиков портативных устройств Windows . 17 декабря 2009 г. Архивировано из оригинала 18 октября 2019 г. Получено 18 октября 2019 г.
  20. ^ guenni (30 августа 2017 г.). «Windows 10 имеет проблему MTP с устройствами Android | Born's Tech и Windows World». borncity.com . Архивировано из оригинала 27 октября 2020 г. . Получено 27 октября 2020 г. .
  21. ^ Леонхард, Вуди (31 августа 2017 г.). «Не используйте Windows 10 для перемещения данных на вашем телефоне Android». Computerworld . Архивировано из оригинала 27 октября 2020 г. . Получено 27 октября 2020 г. .
  22. ^ "libmtp". Libmtp.sourceforge.net. Архивировано из оригинала 2 марта 2014 г. Получено 15 марта 2014 г.
  23. ^ "gvfs-1.15.2.changes". ftp.gnome.org. 15 января 2013 г. Архивировано из оригинала 29 марта 2021 г. Получено 6 июня 2013 г.
  24. ^ "Native gvfs backend for MTP devices". 7 августа 2010 г. Архивировано из оригинала 14 апреля 2016 г. Получено 1 июня 2016 г.
  25. ^ "gvfs - реализация виртуальной файловой системы для GIO". 15 января 2013 г. git commit добавление бэкэнда MTP в GVfs. Архивировано из оригинала 18 октября 2019 г. Получено 1 июня 2016 г.
  26. ^ "Ошибка 695984 – Добавить поддержку расширений Android direct I/O". Архивировано из оригинала 23 декабря 2014 г. Получено 1 июня 2016 г.
  27. ^ "Передача фотографий с Android на Mac OS X". Osxdaily.com. 8 февраля 2013 г. Получено 8 февраля 2013 г.
  28. ^ "Android File Transfer". Android.com. Архивировано из оригинала 29 марта 2021 г. Получено 15 марта 2014 г.
  29. ^ "Android File Transfer Linux Mac OS X". whoozle. Архивировано из оригинала 22 февраля 2017 г. Получено 2 декабря 2016 г.
  30. ^ "OpenMTP". GitHub .
  31. ^ "XNJB". Ричард Лоу. Архивировано из оригинала 25 января 2021 г. Получено 15 июня 2014 г.
  32. ^ "SyncMate". Программное обеспечение ELTIMA. Архивировано из оригинала 19 июня 2014 г. Получено 15 июня 2014 г.
  33. ^ "Commander One PRO Pack". IvanK_Eltima. Архивировано из оригинала 9 апреля 2017 г. Получено 20 апреля 2017 г.
  34. ^ "Проблема 57065 - android - Запись файлов через MTP устанавливает текущую дату и время для изображений и файлов, не сохраняет временную метку. - Android Open Source Project - Issue Tracker - Google Project Hosting". code.google.com . 30 августа 2016 г. Архивировано из оригинала 11 октября 2016 г. Получено 2 сентября 2016 г.
  35. ^ "Проблема 18624 - android - setLastModified() всегда завершается ошибкой на Xoom, если только он не запущен с правами root - Android Open Source Project - Issue Tracker - Google Project Hosting". code.google.com . 30 августа 2016 г. Архивировано из оригинала 18 августа 2016 г. Получено 2 сентября 2016 г.

Внешние ссылки