Результаты file
менее чем идеальны, и с некоторыми типами файлов у него больше проблем, чем с другими.Файл в основном просто ищет определенные фрагменты двоичных данных в предсказуемых шаблонах, чтобы выяснить типы файлов.
К сожалению, в частности, некоторые типы файлов, часто используемые для видео, попадают в эту «проблемную» категорию.Более новые форматы контейнеров, такие как .mp4
и .mkv
, обычно имеют несколько различных типов MIME, которые должны должным образом зависеть от того, какой тип данных содержится.Например, .mp4
может быть правильно идентифицирован как video/mp4
, audio/mp4
или application/mp4
в зависимости от содержимого.
На практике file
часто делает догадки, которые просто соответствуют общему использованиюи это может работать на вас очень хорошо.Например, хотя я упомянул некоторые теоретические трудности с правильной идентификацией файлов Matroska, file
в основном просто предполагает, что любой файл Matroska является видео.С другой стороны, использование контейнера Ogg более равномерно распределено между аудио и видео, и я полагаю, что текущая версия file
просто разделяет разницу и идентифицирует файлы Ogg как application/ogg
, которые не попадают влюбой из ваших категорий.
Единственное, что я могу с уверенностью сказать, это то, что вам нужна самая последняя версия file
, которую вы можете получить.«Волшебные» файлы, содержащие шаблоны для сопоставления и типы MIME, которые будут получены в результате сопоставления, обновляются довольно часто, чтобы включать более новые типы файлов, такие как WebM, или просто для повышения точности для более старых типов.