确定文件是否是快速有效的视频

时间:2010-07-04 00:00:59

标签: objective-c video ipad

确定文件是否为可播放视频的最快方法是什么?我并不担心它是否腐败,而只是它是否是应该可以在iPad上播放的哑剧类型。

我已按照另一个问题的建议将文件推送到NSURL,但可以采取>每个文件1秒,这太慢了。

我目前正在查看文件扩展名,但更确切地说有一些更确定的内容。

更新

我很乐意在应用程序内部使用UTI,但我还没有找到任何暴露的方法从这个方向来。如果有人知道如何在3.2的文件的UTI上获得可行的方法。

5 个答案:

答案 0 :(得分:7)

file(1)命令(和相关的libmagic)可以在标准Unix系统上完成这项工作;如果Apple没有将它包含在手机操作系统中,你可以自己让它在手机上运行。 (在我的x86-64 Linux系统上,库是109k。)

在我的电脑上,它在不到七秒的时间内将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

在这些速度下,也许你可以忍受一点噪音并回落到一个较慢的机制;或者用可能尚不知道的格式填写规则。

答案 1 :(得分:0)

阅读标题并查找编解码器详细信息? Mediainfo是一个开源视频文件信息分析器

抱歉,不知道任何ipad特定的东西

答案 2 :(得分:0)

我要说你需要做的是获取文件的UTI,桌面上的UTI将使用LaunchServices完成。我不知道苹果是否在iOS上公开了API。

答案 3 :(得分:0)

除了检查文件扩展名之外,你是否应该只是简单地播放文件,电影播放器​​对象会向代表发出无法播放的信号?或者在最糟糕的情况下,你可以尝试一个讨厌的尝试/捕获。

答案 4 :(得分:0)

通常,文件的前几个字节会告诉您文件类型。这就是libmagicfile命令的作用。如果你不想在iOS上构建libmagic,你可以简单地看看它在做什么,并拉入你关心的查找表的子集。