Ответ 1
класс AVURLAsset содержит статические методы, которые вы можете запросить для поддерживаемых видео UTI:
+ (NSArray *)audiovisualTypes
В 10.9.1 он возвращает эти системные UTI:
- public.mpeg
- public.mpeg-2-видео
- public.avi
- public.aifc аудио
- public.aac аудио
- public.mpeg-4
- public.au аудио
- public.aiff аудио
- public.mp2
- public.3gpp2
- public.ac3 аудио
- public.mp3
- public.mpeg-2-транспортный поток
- public.3gpp
- public.mpeg-4 аудио
Вот описание системных UTI. Таким образом, кажется, что должен поддерживаться хотя бы контейнер .mpg.
Согласно wiki,.mpg файлы могут содержать видео MPEG-1 или MPEG-2, но поддерживается только видео MPEG-2. Поэтому, возможно, поэтому загрузка файла, но ничего не отображается.
QuickTime внутренне использует QTMovieModernizer для воспроизведения видео в унаследованных форматах (как указано в этой сессии WWDC), так что, возможно, вы можете это понять. У него даже есть метод для определения необходимости модернизации файла:
+ requiresModernization:error: