Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 视频格式、AVFoundation和UTIs_Iphone_Video_File Format_Avfoundation - Fatal编程技术网

Iphone 视频格式、AVFoundation和UTIs

Iphone 视频格式、AVFoundation和UTIs,iphone,video,file-format,avfoundation,Iphone,Video,File Format,Avfoundation,我正在创建一个可以处理视频文件的iPhone应用程序。我使用的是AVFoundation类(例如AVAsset)。我刚刚将我的应用程序注册为符合public.movie的所有文件的处理程序(通过CbundleDocumentTypes)。但是,现在我的应用程序被列在.avi文件的“打开方式”菜单中,尽管我认为iOS无法播放avi电影(Quick Look预览将尝试,但失败) 有没有更好的注册方式来打开电影?我还需要支持文件共享,因此我需要区分Documents文件夹中的哪些文件是有效的电影,尽管

我正在创建一个可以处理视频文件的iPhone应用程序。我使用的是AVFoundation类(例如AVAsset)。我刚刚将我的应用程序注册为符合public.movie的所有文件的处理程序(通过CbundleDocumentTypes)。但是,现在我的应用程序被列在
.avi
文件的“打开方式”菜单中,尽管我认为iOS无法播放avi电影(Quick Look预览将尝试,但失败)

有没有更好的注册方式来打开电影?我还需要支持文件共享,因此我需要区分Documents文件夹中的哪些文件是有效的电影,尽管我还没有弄清楚如何检查文件的UTI。报告说:

iOS中的视频技术支持使用.mov、.mp4、.m4v和.3gp文件扩展名并使用以下压缩标准播放电影文件:

  • H.264视频,高达1.5 Mbps,640 x 480像素,每秒30帧,低复杂度版本的H.264基线配置文件,AAC-LC音频高达160 Kbps,48 kHz,立体声音频为.m4v、.mp4和.mov文件格式
  • H.264视频,高达768 Kbps,320 x 240像素,每秒30帧,基线配置文件高达1.3级,AAC-LC音频高达160 Kbps,48 kHz,立体声音频为.m4v、.mp4和.mov文件格式
  • MPEG-4视频,高达2.5 Mbps,640 x 480像素,每秒30帧,简单配置文件,AAC-LC音频高达160 Kbps,48 kHz,立体声音频为.m4v、.mp4和.mov文件格式
  • 多种音频格式,包括“音频技术”中列出的格式

提前感谢您提供的任何提示。

我决定处理此问题的最佳方法是使用UT*函数确定文件的UTI,以从文件扩展名获取UTI。不幸的是,这意味着AVI文件仍然被导入,因为操作系统知道它们是电影,即使它们无法播放,但这似乎不会造成太多问题。

仅对于视频,在Info.plist中指定以下UTI应该可以:

  • com.apple.m4v-video(.m4v)
  • com.apple.quicktime-movie(.qt,.mov)
  • public.mpeg-4(.mp4)
您可以在AVMediaFormat.h中找到AVFoundation支持的UTI: