Разработчик Android-приложения mcpro24fps поделился своими наблюдениями, почему iPhone снимает видео лучше, чем любой другой смартфон на Android.
По его мнению, проблема вовсе не в операционной системе, а в том, как производители предоставляют доступ к функциям своих устройств. Сама ОС предоставляет необходимый доступ, но какие-то опции так или иначе оказываются недоступны в ходе создания приложения.
Профессиональная видеосъёмка — это съёмка с максимальным количеством ручных регулировок, анализаторов и прочих решений, позволяющих оператору и режиссеру добиться нужного кадра. Все то, что, как правило, отсутствует или реализовано откровенно плохо в стоковых приложениях от производителей аппаратов.
В мире мобильного кино существует несколько признанных лидеров среди подобного рода приложений. Однако даже те из них, у кого всё вроде бы прекрасно с работоспособностью на iOS, начинают конкретно спотыкаться и падать, при попытке создать свои Android-версии.
Самые лучшие приложения часто существуют только на iPhone. И это касается почти всех приложений, относящихся к категории творчества. Будь то звук, будь то видео, будь то рисование.
Вся трагедия мира Андроид заключается в ненадлежащем отношении производителей телефонов к документации Android API.
Они игнорируют все возможности, с упорным стремлением подменяя уже имеющиеся механизмы своими собственными «костылями», которые они также не стремятся документировать и вообще афишировать разработчикам сторонних приложений.
Apple, в отличие от других производителей, не ограничивает доступ к своим устройства. Наоборот, компания даёт разработчикам волю к творчеству и созданию уникальных программ. Пускай они будут даже лучше встроенных.
Любая функция камеры доступны всем желающим. Такого нет в мире Android.
Переходим к конкретике
Здесь разработчик привёл уже более наглядные аргументы.
1. Запись 60 кадров в секунду. Самые новые айфоны умеют снимать в 4K60FPS на всех камерах. У производителей смартфонов на Android ситуация иная: 4K60FPS в 99% случаев доступно только в штатных приложениях, у сторонних ограничение в [email protected]
Есть редкие исключения, но они все равно дают доступ к этой возможности только «костылями».
2. Цифровая стабилизация. Apple позволяет включать цифровую и оптическую стабилизацию в любом приложении. В мире Android эта возможность доступна только у Sony и Huawei.
У других компаний доступ к этим опциям получить можно только при наличии самих устройств на руках.
Самое смешное заключается в том, что данный функционал обозначен в Camera2 API как предоставленный и рабочий, а по факту имеем, что имеем.
3. Запись HDR-видео. iPhone позволяет записывать HDR-видео 10 бит, позволяет отключить метаданные и оставить только 10 бит. Android не всегда позволяет записать 10 бит. Даже в ситуациях, когда есть нужный аппаратный кодек в девайсе.
Для активации HDR далеко не всегда предусмотрены задокументированные настройки. Иногда и вовсе нет таких функций.
4. Отключение шумодава и резкости. Apple не позволяет регулировать эти функции, однако не все производители Android разругают ими пользоваться. Например, Samsung и Huawei.
5. Ручная настройка экспозиции. В iPhone присутствует ручная настройка экспозиции, но есть проблема с автоматической работой HDR. Её сторонний разработчик регулировать не может.
Однако и у Android-производителей такое встречается:
Часто даже не понять, почему так неожиданно меняется изображение. То ли система решила подсветить кадр для лучшей фокусировки, то ли баланс белого сцены так резко поменялся, то ли это работает тот самый HDR. Проблема чаще всего встречается на аппаратах Xiaomi.
Есть ещё одна проблема в стане «зелёного робота» — работа автофокуса. На некоторых китайских аппаратах автофокус перестает работать, как только включается режим ручной настройки экспозиции. Плюс ко всему, автофокус оказывается хуже в сторонних приложениях, чем в нативных.
6. Фокус. У Apple с этим нет никаких проблем: у разработчиков есть доступ к автоматическому и ручному фокусу.
В Android частая проблема в том, автофокус решит зафиксироваться «в бесконечности»., а в режиме ручной настройки фокуса она просто недоступна, и сфокусироваться на дальних объектах не представляется возможным.
Ошибка наблюдается на всех китайских Android-гаджетах, кроме Huawei. У Samsung она вообще не работает.
7. Ручной баланс белого. Здесь ситуация сложилась не в пользу Huawei Huawei из-за решения с сенсорами RYYB. Им пришлось отключить настройку для сторонних приложений, потому что Android не знает, что такие сенсоры существуют.
8. Второстепенные камеры. Apple даёт доступ ко всем камерам сразу же после релиза, а производители Android-гаджетов стараются спрятать к ним доступ.
Так, Samsung скрывает телевик много лет, потому что он сильно ограничен в возможностях. OnePlus закрыл доступ ко всем камерам, кроме основной. Xiaomi официально не дает доступа до второстепенных сенсоров, но в то же время их не блокирует намертво. Только Sony поступает так же, как Apple.
9. Запись 24/25 кадров в секунду. Устройства от Huawei могут заявить поддержку и не поддерживать по факту. Аппараты OnePlus игнорируют эти частоты как ненужные. Xiaomi официально ничего не поддерживает.
И здесь снова выделилась Sony, у которой есть соответствующая поддержка.
В итоге у Android все плохо с камерами для сторонних разработчиков
У каждой компании в мире Android найдутся те или иные ограничения. Они не будут давать доступа к ряду функций или попытаются скрыть их при создании приложений. Это касается даже Google.
Единственная, кто соответствует документации Android API — это Sony. Но и у неё есть некоторые послабления на фоне купертиновцев. [Habr]