Почему твой iPhone открывает один видеофайл и отказывается открывать следующий
Оба файла — «видео», оба весят пару гигабайт, оба скачаны из одного места. Один начинает играть в момент нажатия. Другой показывает серый экран или вообще ничего. Проблема почти никогда не в том, что файл повреждён, — дело в том, во что обёрнута картинка и какие из этих оболочек Apple решила поддерживать.
- Играет из коробки
- MP4 и MOV с видео H.264 или HEVC и звуком AAC.
- Обычно отклоняется
- MKV, AVI, WebM, FLV, WMV — что бы внутри ни было.
- Причина
- iOS смотрит на контейнер раньше, чем на видео, а список поддерживаемых контейнеров короток.
Видеофайл — это коробка с несколькими вещами внутри
Слово «формат» используют для двух совершенно разных вещей, и именно отсюда начинается основная путаница. Видеофайл — это контейнер: коробка, в которой лежат видеодорожка, одна или несколько аудиодорожек, возможно дорожки субтитров, метки глав, обложка и таблица, сообщающая плееру, где что начинается. MP4, MKV, AVI, MOV и WebM — это контейнеры. Это сама коробка, а не содержимое.
То, что лежит внутри коробки, закодировано кодеком — схемой сжатия, превращающей сорок гигабайт необработанных кадров в два. H.264, HEVC (H.265), AV1, VP9 и MPEG-4 Part 2 — видеокодеки; AAC, MP3, AC-3, E-AC-3, DTS, FLAC, Opus и Vorbis — аудиокодеки. Один файл MKV может содержать видео HEVC, одну аудиодорожку AC-3 на английском, одну дорожку AAC на русском и три дорожки субтитров.
Поэтому вопрос «может ли это устройство воспроизвести MKV?» на самом деле состоит из двух вопросов, наложенных друг на друга. Может ли оно открыть коробку и может ли декодировать то, что найдёт внутри? Плеер должен ответить «да» на оба. Встроенное воспроизведение Apple отвечает «нет» на первый вопрос для большинства коробок, поэтому файл даже не успевает добраться до второго вопроса, чтобы на нём споткнуться.
Слова, которые стоит знать
Пять терминов покрывают почти любой разговор о видеофайлах. На них стоит потратить десять минут, потому что они превращают «не работает» в конкретный вопрос с конкретным ответом.
- Контейнер
- Оболочка файла — MP4, MKV, AVI, MOV, WebM, TS. Определяет, что файл может нести (сколько аудиодорожек, влезают ли субтитры, есть ли главы), но не то, насколько хороша картинка.
- Кодек
- Сжатие самой картинки или звука: H.264, HEVC, AV1, VP9, AAC, AC-3, DTS, FLAC. Для нескольких из них есть аппаратное декодирование; остальные приходится декодировать процессору, а это плата батареей.
- Битрейт
- Сколько бит в секунду тратит файл. Это главный фактор, определяющий и качество, и размер файла — фильм в 4K на 8 Мбит/с и тот же фильм на 60 Мбит/с будут одного разрешения, но совсем не одной картинки.
- Ремультиплексирование (remux)
- Перенос существующих дорожек в другой контейнер без изменений. Быстро, без потерь, и в этом весь фокус превращения прямого эфира в обычный файл. Ничего не перекодируется заново, поэтому ничего не теряется.
- Транскодирование
- Реальное перекодирование видео в другой кодек. Медленно, греет устройство, съедает батарею и каждый раз с потерями — сконвертированная копия всегда на поколение хуже оригинала.
Что принимает собственное воспроизведение Apple
Это практический список по состоянию на iOS 17 и macOS 14 — те же правила, которым следуют приложение «Файлы», Quick Look, Safari и QuickTime, потому что они используют один медиастек.
| Контейнер | iPhone / iPad | Mac (QuickTime) | Типичное содержимое |
|---|---|---|---|
| MP4 / M4V | Да | Да | Видео H.264 или HEVC, звук AAC |
| MOV | Да | Да | Собственный контейнер Apple, те же кодеки |
| MKV (Matroska) | Нет | Нет | Что угодно — самый гибкий контейнер из используемых |
| AVI | Нет | Нет | Старый материал в DivX/Xvid, звук MP3 или AC-3 |
| WebM | Нет | Нет | Видео VP9 или AV1, звук Opus или Vorbis |
| FLV / WMV | Нет | Нет | Устаревшее веб-видео и видео для Windows |
| TS / M2TS | Частично | Частично | Эфирные и Blu-ray потоки |
| HLS (.m3u8) | Да | Да | Не файл — плейлист, указывающий на сегменты |
Даже внутри поддерживаемого контейнера кодек всё равно может быть отклонён: звук AC-3, E-AC-3 и DTS часто встречается в фильмах и не декодируется системным плеером, поэтому некоторые файлы MP4 проигрывают картинку без звука.
Почему список такой короткий
Это не недосмотр. Apple поставляет аппаратные декодеры для тех кодеков, что она поддерживает, поэтому iPhone может воспроизводить фильм в 4K HEVC часами на одном заряде — видео вообще не касается основного процессора. Поддержка каждого контейнера и кодека в мире означала бы декодирование значительной части из них программно, с соответствующей ценой в батарее и тепле, да ещё и с необходимостью брать патентные лицензии на форматы, в которых у Apple нет никакого интереса.
Следствие в том, что универсальный медиаплеер на iOS вынужден приносить собственный движок. Практически каждый из них построен на одной и той же открытой основе — FFmpeg и его библиотеках, — которая понимает примерно любой контейнер и кодек, когда-либо выходивший в свет. Именно поэтому сторонний плеер открывает файлы, которые не откроет система: он не делает ничего особенно хитрого, он просто сам занимается декодированием.
Это также объясняет разницу, которую ты заметишь между плеерами. Тот, что декодирует программно, воспроизведёт что угодно, но нагреет устройство на длинном фильме; тот, что передаёт работу аппаратному декодеру всякий раз, когда кодек это позволяет, остаётся холодным и бережёт батарею. Хороший плеер делает и то и другое — аппаратно там, где может, программно там, где вынужден, — и переключается, не спрашивая тебя.
Три способа посмотреть файл, который отклоняет iOS
В порядке того, во сколько времени и качества они тебе обходятся.
Что на самом деле отличает хороший плеер от плохого
Почти каждый медиаплеер в App Store заявляет о поддержке «всех форматов». Вот что отличает их на практике за этим заголовком.
- Аппаратное декодирование там, где это возможно
H.264 и HEVC должны идти в аппаратный декодер, а не на процессор. Проверить можно за две минуты: устройство греется или нет.
- Все дорожки доступны, а не только первая
Фильм с тремя языками озвучки и пятью дорожками субтитров должен позволять переключаться между всеми ими прямо во время воспроизведения, без переоткрытия файла.
- Продолжение просмотра, которое реально продолжает
Позиция сохраняется отдельно для каждого файла, восстанавливается при повторном открытии и сохраняется при переименовании или перемещении файла. На удивление редкая функция и та, которой тебе будет больше всего не хватать без неё.
- Разумное поведение на огромных файлах
Ремультиплексированный файл на 20 ГБ должен плавно прокручиваться, а не зависать на четыре секунды при каждой перемотке. Это вопрос индексации, а не декодирования.
- Фоновый звук и картинка в картинке
Возможность заблокировать экран и продолжить слушать, или свернуть видео в угол, пока отвечаешь на сообщение, — вот что вообще делает плеер пригодным для использования на телефоне.
- Нигде не спрятан этап перекодирования
Если приложение «импортирует» или «оптимизирует» твой файл несколько минут перед воспроизведением, значит оно конвертирует — с потерей качества и ожиданием, которые это подразумевает.
Один и тот же файл на трёх устройствах
Правила идентичны, потому что iOS, iPadOS и macOS используют один медиастек. Различается то, что удобно делать вокруг воспроизведения.
Здесь ограничение — место на диске, поэтому файлы обычно приходят, просматриваются и удаляются. Фоновый звук и картинка в картинке важны здесь больше, чем где-либо ещё.
Естественное место для длинных фильмов и единственное устройство iOS, где внешний диск USB-C, полный видео, можно воспроизводить прямо на месте, ничего предварительно не копируя на устройство.
Нет ни давления на место для хранения, ни теплового потолка, поэтому программное декодирование неудобного кодека практически бесплатно. Именно здесь место ремультиплексированному файлу на 40 ГБ.
Вопросы, в которые это обычно превращается
У MKV качество лучше, чем у MP4?
Ни то ни другое не лучше — это коробки, а качество живёт в кодеке и битрейте внутри. MKV на практике часто выглядит лучше, потому что именно в MKV распространяют рипы с высоким битрейтом, тогда как MP4 — это то, в чём стриминговые сервисы доставляют контент при куда меньшем битрейте. Положи одну и ту же видеодорожку в оба контейнера — и они будут идентичны пиксель в пиксель.
Теряется ли качество при конвертации MKV в MP4?
Только если дорожки перекодируются заново. Если видео- и аудиокодеки внутри уже из тех, что может нести MP4, ремультиплексирование просто переносит их без изменений — без потерь и обычно быстрее минуты. Если HEVC нужно превратить в H.264, а DTS в AAC, это перекодирование, и качество теряется.
Почему мой файл в 4K заикается, а файл поменьше играет без проблем?
Либо кодек декодируется программно, хотя мог бы использовать аппаратный декодер, либо файл лежит на медленном хранилище — сетевая папка или внешний диск через слабое соединение не всегда способны отдавать 80 Мбит/с. Скопируй файл локально в качестве проверки; если он заиграл нормально, дело было не в декодировании.
В каком формате безопаснее всего держать библиотеку?
MKV — если хочешь сохранить всё, что было в источнике: несколько языков озвучки, дорожки субтитров, главы. MP4 с H.264 или HEVC — если максимальная совместимость с каждым устройством в доме важнее, чем сохранение дополнительных дорожек. Формат, которого стоит избегать для чего-либо нового, — это AVI, который не умеет правильно нести современные кодеки.
Как это решает FoxDL
FoxDL несёт собственный медиадвижок, поэтому вопрос контейнера вообще не возникает. Ты кладёшь файл на устройство и открываешь его. Тот же движок воспроизводит музыку, поэтому фильм и альбом в FLAC живут в одной библиотеке.
- MKV, AVI, WebM, FLV, WMV, MP4, MOV, TS и HLS открываются напрямую — без предварительной конвертации, импорта или переупаковки.
- Аппаратное декодирование используется везде, где это позволяет кодек, с программным путём про запас для остальных случаев, поэтому обычный фильм не стоит тебе батареи.
- Звук AC-3, E-AC-3, DTS, FLAC, Opus и Vorbis тоже декодируется — именно это устраняет проблему беззвучного фильма, и те же декодеры воспроизводят альбомы FLAC и ALAC в той же библиотеке.
- Каждая встроенная аудио- и субтитровая дорожка отображается в списке и переключается прямо во время воспроизведения.
- Позиция запоминается отдельно для каждого файла и сохраняется при переименовании или перемещении, потому что библиотека отслеживает файлы по идентичности, а не по пути.
- Картинка в картинке и фоновый звук есть, а на iPad внешний диск воспроизводится прямо на месте без копирования.
Воспроизведение собственных файлов входит в бесплатную версию на любом устройстве — не лимитируется и не является функцией Pro.
Частые вопросы
- Как воспроизвести файлы MKV на iPhone, iPad или Mac?
- Какие видео- и аудиоформаты воспроизводит FoxDL?
- Могу ли я переключить аудиодорожку в файле с несколькими языками?
- Поддерживает ли FoxDL картинку в картинке и фоновое воспроизведение?
Читать дальше
Субтитры, аудиодорожки и три способа, которыми они ломаются
Встроенные субтитры против отдельного файла, кодировка, которая портит буквы, и как исправить рассинхронизацию.
Без потерь, битрейт и эквалайзер: что меняет звук, а что нет
Что меняет формат без потерь, что на самом деле делает эквалайзер и что улучшает прослушивание в первую очередь.
Где на самом деле хранятся твои файлы на iPhone и кто может их видеть
Песочница, куда на самом деле попадают загрузки и почему переименование файла ломает столько приложений.
Твоя библиотека — наконец в одном месте.
Бесплатная загрузка. Без аккаунта и регистрации — полный набор в бесплатной версии.