Поддерживаемые форматы AVFoundation (AVPlayer)? Нет .vob или .mpg контейнеры?

Использование AVPlayer в приложении Mac для воспроизведения случайных видеороликов в полноэкранном режиме из папки, но когда я пытаюсь воспроизвести файлы .vob или .mpg, я просто получаю черный экран, который длится до тех пор, пока длится видео.

Не поддерживает ли AVFoundation воспроизведение из этих контейнеров? Я понял, что, поскольку они были воспроизведены с помощью QuickTime Player, они также будут работать с AVPlayer.

Ответ 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: