Определите, является ли файл допустимым видео быстро

Что состоит в том, чтобы определить самый быстрый путь, является ли файл играемым видео? Я не обеспокоен им являющийся поврежденным или не, но просто является ли это типом пантомимы, который должен быть играемым на iPad.

Я играл с продвижением файла через a NSURL как предложено другим вопросом, но это может взять> 1 секунда на файл, который является слишком медленным.

Я в настоящее время смотрю на расширение файла, но очень имел бы что-то, что более бесспорно.

обновление

Я хотел бы использовать UTIs внутренне для приложения, но я не нашел выставленного способа прибыть в него от того направления также. Если бы кто-либо знает о способе достигнуть UTI файла на 3,2, который работал бы.

8
задан Marcus S. Zarra 10 July 2010 в 14:35
поделиться

5 ответов

Команда file (1) (и связанная с ней libmagic ) может выполнять эту работу в стандартных системах Unix; если Apple не включила его в операционную систему телефона, вы, вероятно, сможете самостоятельно запустить его на телефоне. (В моей системе Linux x86-64 библиотека составляет 109 КБ.)

На моем компьютере 146 легкодоступных видео были разделены на 18 различных форматов менее чем за семь секунд. (120 гигабайт.) Произошла какая-то ошибка:

$ sort -u /tmp/out
data
ISO Media, MPEG v4 system, version 1
Matroska data
Microsoft ASF
MPEG transport stream data
RIFF (little-endian) data, AVI, 384 x 240, 25.00 fps, video: DivX 5, audio: MPEG-1 Layer 3 (mono, 44100 Hz)
RIFF (little-endian) data, AVI, 384 x 288, 25.00 fps, video: DivX 3 Low-Motion, audio: DivX (stereo, 44100 Hz)
RIFF (little-endian) data, AVI, 512 x 272, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
RIFF (little-endian) data, AVI, 512 x 288, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 44100 Hz)
RIFF (little-endian) data, AVI, 512 x 288, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
RIFF (little-endian) data, AVI, 512 x 328, 25.00 fps, video: DivX 5, audio: MPEG-1 Layer 3 (stereo, 32000 Hz)
RIFF (little-endian) data, AVI, 512 x 328, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 32000 Hz)
RIFF (little-endian) data, AVI, 572 x 304, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
RIFF (little-endian) data, AVI, 576 x 320, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
RIFF (little-endian) data, AVI, 608 x 336, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
RIFF (little-endian) data, AVI, 624 x 352, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
RIFF (little-endian) data, AVI, 640 x 352, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
TeX font metric data (\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377

На таких скоростях, возможно, вы сможете выдержать небольшой шум и вернуться к более медленному механизму; или, возможно, заполнить правила форматами, которые он еще не знает.

7
ответ дан 5 December 2019 в 21:16
поделиться

Прочитать заголовок и найти сведения о кодеке?
Mediainfo - это анализатор информации о видеофайлах с открытым исходным кодом

Извините, я не знаю ничего, относящегося к ipad

0
ответ дан 5 December 2019 в 21:16
поделиться

Я бы сказал, что вам нужно получить UTI файла, что на настольном компьютере можно сделать с помощью LaunchServices. Я не знаю, предоставила ли Apple API для этого на iOS.

0
ответ дан 5 December 2019 в 21:16
поделиться

Помимо проверки расширения файла, нельзя ли просто воспроизвести файл, а объект movie player сообщит делегату, что файл не удалось воспроизвести? Или, в худшем случае, вы можете попробовать отвратительный try/catch.

0
ответ дан 5 December 2019 в 21:16
поделиться

Обычно первые несколько байтов файла сообщают вам тип файла. Это то, что делают libmagic и команда file . Если вы не хотите создавать libmagic для iOS, вы можете просто посмотреть, что он делает, и извлечь нужное вам подмножество таблицы поиска.

0
ответ дан 5 December 2019 в 21:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: