Настало время обозреть моё приложение Media Library. В текущее время, думаю, это будет особенно актуально для всех.
Приложение Media Library написано для платформы Android 4.3+ версии. Оно совместимо с телефонами, планшетами, Android TV. Современные эмуляторы Memu, Nox - позволяют запускать приложение под Windows любой версии.
У плеера есть группа в Телеграме, где я уже объяснил многие функции. Поэтому чтобы дать более полную информацию буду оставлять ссылки на разные ресурсы из группы.
Media Library - написано с упором на максимальную производительность, минимальное количество кликов и максимальный комфорт использования. В связи с этим было создано множество уникальных изобретений в интерфейсе. Функционал приложения выбран для максимального раскрытия ресурсов вашего устройства. На сегодня в приложении 28 экранов.
Платформа не имеет подключаемых модулей и создана, как единое приложение для всего что касается мультимедиа (https://t.me/media_library/11636). При этом, внутри оно разделено на модули и большие части, которые можно полностью включать и выключать в настройках. Изначально разрабатывалась, как мультимедиа плеер. Поэтому самое первое что вы можете делать - это слушать музыку\подкасты, смотреть фильмы\клипы со всеми последними технологиями быстрой перемотки двойным тапом по экрану и управления яркостью и громкостью.
В платформе можно выбрать три модуля для воспроизведения: классический, ExoPlayer, VLCPlayer. Модуль - это некая большая программа, разрабатываемая группой (10+ человек) программистов отдельно от Media Library. Приложение в принципе состоит из модулей, которые разрабатываются разными группами людей. По моим подсчётам на сегодня эти модули разрабатывают около 80ти программистов, каждый день.
В платформе создан очень эффективный алгоритм прогрессивного стриминга, который сохраняет все данные на диск. В последней версии с помощью прогрессивной загрузки можно предзагружать бесконечное количество треков. Таким образом можно защититься от сколь угодно плохого качества интернета (в разумных пределах конечно).
Есть революционное применение плеера за рулём. Платформу можно использовать на телевизоре для просмотра фильмов, клипов и прослушивания музыки. Для этого не только оптимизирован интерфейс для пульта ДУ, но и создан специальный экран, который позволяет управлять другой копией плеера на другом устройстве. В том числе можно пересылать между устройствами любые медиа-файлы для воспроизведения. Так же есть функция синхронного воспроизведения на двух устройствах. Для разрешения удалённого доступа необходимо включить соответствующую настройку, а в клиентском приложении (в другом плеере) выполнить сканирование. Оба плеера должны быть в одной сети. Быстрый вызов пульта.
Плейлист плеера имеет максимально гибкий и полный функционал из всего чего только может понадобиться. Есть очень большой экран редактирования тегов и данных трека. Так же в плейлисте можно создавать очередь из треков, сохранять её в m3u8 плейлист, просматривать историю треков. Если возникает ошибка при воспроизведении трека, то такой трек помечается красным цветом.
Видео картинка плеера отображается в зависимости от модуля:
VLCPlayer - с применением технологии yadif2x (максимальное качество);
Classic, ExoPlayer - Bob?
С сохранением пропорций, но с опциональной возможностью обрезания боковых тёмных линий и переходом на весь экран.
Звук в зависимости от модуля тоже разный.
Classic - использует стандартные аппаратные возможности устройства.
ExoPlayer - использует официальные кодеки для дешифрации файлов и стандартные средства вывода звука.
VLCPlayer - достаточно продвинутый в плане звука. Тут используется своя версия кодеков, которые расшифровывают аудио файлы немного лучше, чем стандартные кодеки, причём абсолютно всех других плееров, какие есть в интернете. Я регулярно делаю сравнение качества звука и оно оставляет желать лучшего у конкурентов. Есть профессиональная технология Spatial Audio. Она делает звук ещё более детальным и объёмным. Для этого звук преобразуется в 7.1. Ну и если вы хотите услышать эталонный звук, без всех наворотов и совсем без помех и искажений, то галочка OpenSL ES даст вам и это. Я проверил работу этой настройки. Звук максимально совпадает со спектром трека. Категорически не рекомендуется использовать OpenSL ES с Spatial Audio - это может нанести вред вашему слуху. Только что-то одно.
В итоге у вас есть: либо эталонный звук, либо мега крутой Spatial Audio, либо просто крутой от VLCPlayer (без Spatial Audio), либо попсовый ExoPlayer, либо стоковый Classic.
Рекомендуемые настройки плеера установлены при установке плеера
В плеере есть субтитры (у каждого модуля они свои) и сохранение позиции трека. Отображение обложек треков можно включить, как в плейлисте, так и на весь экран с помощью отключения визуализации в настройках. Есть изменение скорости воспроизведения.
Так как используется прогрессивный стриминг, то весь воспроизводимый контент сначала сохраняется на диск. По моим исследованиям это никак не влияет на ресурс диска, но существенно ускоряет загрузку данных, что позволяет воспроизводить контент в полном качестве. Для эффективного использования места на диске в платформе существует система очистки файлов из кэша. Её можно гибко настроить под свои нужды в настройках. Также поддерживается сохранение файлов по частям, что существенно ускоряет процесс скачивания файлов, при перемотке.
Система автоочистки файлов очень сложно устроена и работает даже при простом скачивании файлов. Получается вы можете бесконечно скачивать разные файлы в кэш. Автоочистка будет удалять старые файлы и по размеру.
Так же есть автоочистка торрент файлов. Без очистки нет порядка, а без порядка нет функционала.
Плеер поддерживает воспроизведение из шифрованного облака Mega.nz. Для этого нужно ввести логин и пароль в настройках, нажать кнопку проверки аккаунта, а так же выбрать сайт Mega.nz. На сегодня это единственный плеер, который воспроизводит медиа файлы из этого облака. Причём с возможностью предзакачки следующих треков. Т.е. любой человек может бесплатно закинуть музыки на 50 ГБ в это облако и слушать\смотреть в высоком качестве, даже в дороге или за рулём.
Платформа содержит RSS парсер xml, rss, atom, json форматов. Это добавляет возможность читать разные новостные ленты. И не просто читать, а открывать медиа-файлы, которые они содержат, а иногда и торренты. Есть быстрое переключение между сайтами и система закладок с рекомендуемыми сайтами. Ленты новостей поддерживают большинство сайтов и они регулярно обновляются. Так же есть полная совместимость с лентами новостей PeerTube - это децентрализованный аналог Ютуба.
Наиболее выдающаяся часть платформы это торренты
Самый интересный для всех сценарий использования это просмотр фильмов. Конечно он реализован максимально качественно. Самого каталога фильмов в платформе нет, но вы можете найти какой-нибудь в интернете. Каталоги сейчас очень развиты и продвинуты. Я решил пока не поглощать их функционал, так как он есть и отлично работает. Даже в Плей маркете вы можете найти подобные программы с богатым содержимым любого контента.
Любой фильм включить очень просто. Находите его в поиске в программе-каталоге. Переходите на вкладку торренты. Выбираете приемлемый по размеру\качеству торрент. Нажимаете на него. Затем выбираете Media Library и дальше начинается воспроизведение.
Если вы хотите включить фильм на ТВ, то есть 2 сценария, как это сделать:
1. Старый, консервативный и неудобный. Устанавливаете программу каталог в телевизор и Media Library. Включаете фильмы из каталога с помощью пульта ДУ.
2. Максимально удобный. Программу каталог устанавливаете в телефон и плеер тоже. На ТВ устанавливаете только плеер. Для больших 4к фильмов лучше докупить SSD. В телефоне в плеере сохраняете пустой плейлист "History". Затем устанавливаете этот флаг в настройках. Как настроить удалённое управление между плеерами я написал выше. Далее открываете из каталога торрент файл. Добавляете его в плейлист и правым свайпом отправляете на ТВ. Затем сохраняете плейлист. Всё. Тв играет фильм. У вас в руках пульт, а история того, что смотрели надёжно сохранена на диске в плейлисте.
Все воспроизводимые торрент файлы и уже скаченные вы можете опционально раздавать.
С помощью платформы можно открывать торрент файлы, как дерево каталогов. Это позволяет рассматривать торрент файл, как медиа-сайт. В главный плейлист можно добавлять файлы из дерева или сразу плейлисты. Поддерживаются cue файлы, которые ссылаются на один flac файл. Плейлисты парсятся по специальному алгоритму, который позволяет распарсить любой плейлист.
Так вот всё это к чему. В платформе есть поддержка изменяемых торрентов. С помощью них любой может организовать свой собственный стриминговый сервис!
Что это значит. Установив на Windows эмулятор и Media Library вы можете создать торрент файл из вашего каталога с файлами. Затем создав изменяемый торрент, опубликовать обычный торрент в изменяемом и с этого момента ваш обычный торрент будет доступен по статичной магнит-ссылке. Далее вы можете изменять файлы торрента и нажатием одной кнопки в меню торрента - обновлять его содержимое с быстрым пересчётом хеша и автоматической перепубликацией в изменяемом торренте. После синхронизации (авто или вручную) ваш новый контент будет доступен по всё той же статичной ссылке.
Таким образом изменяемые торренты по сути являются заменой хостинга файлов и доменного имени, а с использованием плейлистов становятся полноценным децентрализованным медиа-сайтом. Плелисты можно создать с помощью Winamp.
Для увеличения скорости работы и прохождения торрента через блокировку по 4G нужно использовать систему web-seed. По сути это просто прямые ссылки на файл\каталог в интернете.
Статичную magnet-ссылку изменяемых торрентов сможет открыть только Media Library. Megnet-ссылку на обычный торрент сможет открыть любой торрент клиент (включая Media Library).
Кроме изменяемых торрентов в платформе есть децентрализованная система общих плейлистов. Это некое хранилище общего контента в плейлистах, которое находится в торрентах и любой пользователь может скачать его и использовать. Его достаточно активировать в настройках и обновить список общих плейлистов. Туда вы можете опубликовать свои плейлисты и сделать их общедоступными. Публикация полностью анонимна. Плейлисты могут состоять из торрент файлов\ftp\http\smb. Через редактор элемента плейлиста можно поместить в плейлист абсолютно любую ссылку и опубликовать. Плейлисты в m3u8 формате. Легко редактируются в любом текстовом редакторе. После публикации необходимо дождаться пока у вас скачают ваше изменение. Примерно 10 мин.. Эта система ещё имеет большие перспективы по улучшению.
В одном из плейлистов содержится 500 разных ТВ каналов, которые можно сразу смотреть.
Есть мысли по созданию торрент новостной ленты (новостная лента, которая хранится в изменяемом торренте) с файлами. По сути это децентрализованный аналог Ютуба, но потребности в этом пока ни у кого нет. Поэтому не делаю. А так это очень быстро можно сделать. Так-то можно целый браузер сделать из изменяемых торрентов. Только изменяться они могут раз в минуту. Это портит интерактивность и востребованность, конечно.
Для приватности в торрентах есть много настроек. Главная из них это блокировка стран по ip-адресам. Для относительной приватности нужно использовать шифрование протокола + блокировка стран помеченных красным + отключение раздачи. Если что-то не скачивается, то нужно разблокировать какие-то страны. Там же можно сделать работу торрентов полностью локальной. Для полной приватности нужно использовать прокси.
Так как это плеер и торрент клиент в одном, то существует интересный сценарий - быстрая отправка больших видео другому человеку. Например, снимаете видео 4к в телефоне. Оно может иметь размер 10Гб+.. Чтобы отправить его другому человеку - необходимо создать из этого файла торрент в Media Library с автоматической публикацией. Далее можно поделиться полученным торрент файлом или magnet - ссылкой с другим человеком у которого есть Media Library. Он откроет ссылку и сможет смотреть файл мгновенно, напрямую с вашего телефона. Такой сценарий существует только в Media Library. В совокупности с отправкой ссылок из плейлиста и экраном пульта это более комфортно и эффективно заменяет все альтернативные технологии: AirPlay, DLNA, ChromeCast и интерфейс Android TV Leanback.
Ещё одна уникальная опция - это автоматическое ограничение скорости скачивания в торрентах. Это стало возможным из-за того что модуль плеера сообщает торрентам длительность файла. С помощью этого можно вычислить битрейт файла и установить ограничение на скорость скачивания, столько сколько необходимо для воспроизведения. Это существенно снижает нагрузку на устройство и слабые устройства не испытывают проблем.
В плеере есть выравнивание громкости. Оно работает только для видео и начиная с 16% громкости. Это сделано для того чтобы в телевизоре, если вы устанавливаете 15% громкости, то звук не менялся для клипов и фильмов. И только начиная с 16% звук будет выравниваться, причём для видео, которые не считаются фильмами выравнивание будет по более лояльному алгоритму происходить, чем для фильмов. Разделение на клипы и фильмы происходит по настройке перехода на полный экран, даже если она выключена.
Преимущество
Технологии, которые используются в платформе позволяют отказаться от большого списка программ. Одно приложение устроено гораздо гармоничней, чем много разных. Программа - это не инструмент, как молоток, а максимально гибкая конструкция, которая может выполнять все те задачи, которые мы хотим от неё получить. Поэтому не используйте дроблённые программы. Используйте большие и единые.
Недостатки
Как понятно из описания приложению нужно очень много трафика (так как есть предзагрузка) и много свободного места на диске. Возможно это может показаться недостатком, но на самом деле - это наша текущая нормальность, которую должен мочь позволить себе любой человек. Много трафика невозможно создать без кэша на диске. Это значит - вы используете своё устройство по назначению и раскрываете его потенциал. Если этого не делаете, то вы не используете половину своего устройства. Т.е. вы не пользуетесь половиной денег, отданных за устройство. И затем, если устройство сломается и вы его выкините, то это будет означать - вы выкинули в мусор половину уплаченных денег.
Приложение имеет десятки сценариев использования и очень сложно устроено. Разный функционал накладываясь друг на друга может вызывать ошибки. Чтобы этого не происходило я регулярно исправляю баги и тестирую. Конечно багов минимальное количество и если вам нужно исправить что-то, то вы всегда можете обратиться в группу приложения. Чтобы не попадать на новые баги придумана версионность приложения для пользователей. Например, версия 9.1 - означает, что только что добавлено какое-то существенное изменение и могут быть баги. Версия 9.1.2 - говорит о том, что выпущен 2й сервис пак исправления ошибок. После 2го сервис пака, как правило багов не остаётся. Поэтому рекомендую ждать когда третья цифра будет минимум 2. Или если хотите ставьте 9.1, но будьте готовы к багам.
Полная совместимость с Android 11+ на сегодня под вопросом. Конечно приложение запускается и работает под Android 11 и 12. Но есть проблемы с торрентами (решается обновлением модуля торрентов, в разработке) и есть проблемы с доступом записи на диск. По новым правилам Google - это сильно урезали.
Интеграция с другими приложениями
Платформу можно использовать, как прослойку для другого плеера. В плейлисте любой элемент можно воспроизвести с помощью другого, внешнего плеера. Например, некоторые плееры имеют какие-то аппаратные преимущества по сравнению с тремя модулями Media Library, о которых я не знаю. Необходимость в этом достаточно не большая, поэтому о этой функции часто забывают.
Есть небольшая альтернатива Media Library - по части воспроизведения торрентов. Из-за недостатка №1 некоторые пользователи не могут себе позволить иметь свободное место на диске, поэтому используют приложение Torrserve. Оно гораздо проще устроено. Может только воспроизводить видео. Оно работает медленней, в нём нет встроенного плеера и ещё много чего. Главной особенностью является то что оно воспроизводит видео онлайн без скачивания на диск. Соответственно из-за этого скорость скачивания меньше и любые проблемы со скачиванием вызовут остановку воспроизведения на самом интересном месте. Кроме этого это приложение убивает торренты, потому что в нём нет раздачи скаченных файлов - что нарушает главный принцип - "скачал - раздавай".
Есть интересная возможность использовать Media Library, как плеер для Torrserve. С сохранением кэша и без - всё будет работать.
Я уже давно разрабатываю платформу и знаю, что настоящие пользователи очень любят приложение. И наслушался много разной критики. Поэтому уже могу предположить какие вопросы будут заданы в комментариях.
Конечно задавать вопросы в комментариях Хабра бесполезно. Если хотите получить ответ - задавайте вопрос в группе приложения.
Ответы на вопросы
Почему приложение платное и имеет закрытый исходный код?
Потому что приложение содержит достаточно функционала, чтобы экономить деньги и время пользователей. Потому что открытие исходного кода имеет смысл только для модулей, которые пишутся для программистов, а не приложений, которые состоят из этих модулей. Переиспользовать целое приложение очень сложно, даже для программистов (чтобы не было клонов). Даже если в открытом исходном коде будет вирус, то миллион пользователей могут не увидеть его. Кроме этого приложение тестируется Google Play защитой и не содержит вирусов. В Media Library нет даже сбора аналитики и рекламы - это чистейшее приложение. А исходный код стоит миллионы долларов. Если я его выложу, то он обесценится.
Как посмотреть и протестить до покупки приложения?
Это стандартная возможность Google Play. Покупаете приложение. Затем у вас есть пара часов, чтобы попользоваться приложением и если не понравится, то вернуть деньги. Лично мне это не нравится. Так как приложение сложное и пары часов может не хватить для тестирования. Зато это означает, что вы покупаете не приложение, а всего лишь подписку на приложение, потому что с помощью другого приложения из маркета можно экспортировать apk приложения и в дальнейшем использовать его бесплатно. У вас лишь не будет новых версий приложения, а текущая будет. Это относится ко всем приложениям Google Play.
Зачем нужно совмещать много приложений в одном?
Это даёт возможность внедрять новые функции увеличивает эффективность и https://t.me/media_library/11636
С чего начать?
Установите плеер из Google Play или 4pda. Затем добавьте рекомендуемые сайты. Попробуйте по изучать, что есть и как работает на этих сайтах. Далее подумайте, как вы можете самостоятельно создать свой сайт. Создайте сайт (возможно, по инструкции выше) и используйте его с помощью Media Library. Profit
Либо создайте свой плейлист и добавляйте в него понравившийся контент. Смотрите\слушайте. Profit
Как я понимаю из-за санкций приложение стало невозможным купить в Google Play. Поэтому даю промокоды на бесплатную покупку. Если посчитаете нужным, то перечислите любые деньги на карту 5246029383319433
Комментарии (6)
Schokn-Itrch
14.03.2022 19:49+2На сегодня в приложении 28 экранов.
Оно спутники на орбиту должно запускать, одновременно управляя АЭС, группировкой подводных лодок и батальоном боевых медведей.
MentalBlood
15.03.2022 11:23Таки да, не зря же
исходный код стоит миллионы долларов
Schokn-Itrch
15.03.2022 12:10+1На сайт его загляните, исключительно ради "поржать от души" Там и впрямь на миллионы долларов... исков от правообладателей.
qark
14.03.2022 22:22+2> Classic, ExoPlayer — Bob?
Домашнее задание для пытливого читателя?
> Если вы хотите включить фильм на ТВ, то есть 2 сценария, как это сделать
ТВ, конечно, только Android?
> Статичную magnet-ссылку изменяемых торрентов сможет открыть только Media Library.
Очередная проприетарщина.
> Конечно багов минимальное количество и если вам нужно исправить что-то, то вы всегда можете обратиться в группу приложения.
Как в телеграм-канале отслеживать свой баг?
> Конечно задавать вопросы в комментариях Хабра бесполезно.
Упс.
lair
15.03.2022 15:36+2Приложение в принципе состоит из модулей, которые разрабатываются разными группами людей. По моим подсчётам на сегодня эти модули разрабатывают около 80ти программистов, каждый день.
Не могу не процитировать "подсчеты":
На самом деле в создании Media Library участвует очень много программистов.
Это команда Google, которые разрабатывают ExoPlayer. Это около 15 программистов.
Это команда VideoLan, которые разрабатывают VLCPlayer. Это около 50 программистов.
Это команда разработки торрентов. В ней состоит очень много программистов, но можно считать около 5ти. Они и изобрели торренты.
Есть ещё неопределённое количество Google программистов, которые разрабатывают различные модули для Media Library. Таких, как Firebase, который используется для отлова багов в плеере.
Ну и конечно я. Тот кто умеет видеть происходящее с высоты птичьего полёта.
Получается минимум 71 программист регулярно работают над улучшением Media Library.
lair
Угу, расскажите про эту "текущую нормальность" канадским операторам связи с их лимитированными тарифами.