Проблемы с воспроизведением MP4 на iPad

Мне интересно, связана ли эта проблема с устройствами iOS или только с iPad (на самом деле у меня был только iPad для игры).

Если бы я написал HTML-ссылку, связанную с MP4 на сервере (через HTTP), iPad запустит ее в Safari, но не распознает, что это MP4, и просто отобразит пустую страницу.

Я посмотрел на другие устройства, такие как Android, например, и это правильно запускает медиаплеер и транслирует.

Есть ли особый способ заставить его воспроизводиться в медиаплеере по умолчанию на iPad/iOS?


person Ahmed Nuaman    schedule 28.11.2010    source источник


Ответы (3)


Проблема, скорее всего, заключается в конкретных характеристиках кодирования MP4. h264 и MPEG-4 имеют множество небольших опций и настраиваемых параметров. Устройства iOS довольно специфичны в отношении того, что им нравится, а что нет. (Честно говоря, это не проблема, специфичная для устройств iOS.)

Ознакомьтесь с рекомендациями по кодированию от Brightcove и перекодируйте медиаданные.

Это не удалось, и если у вас установлен FFmpeg, опубликуйте результаты ffmpeg -i problemfile.mp4 и прокомментируйте ниже, чтобы я мог посмотреть.

person Stu Thompson    schedule 03.03.2011
comment
Именно так и было, чертовы интерны! - person Ahmed Nuaman; 04.03.2011

У меня очень похожая проблема с iPad при воспроизведении файла mp4, который на самом деле был закодирован Brightcove.

Видео не запускается внутри тега видео html5 на iPad, но отлично работает в Chrome, Safari и IE9.

Вы можете скачать видео здесь: http://tinyurl.com/796c5ub, и это результат $ffmpeg -i video1.mp4:

ffmpeg version 0.7.1, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jul 31 2011 18:31:40 with clang 2.1 (tags/Apple/clang-163.7.1)
  configuration: --prefix=/opt/local --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libfaac --enable-libxvid --enable-libx264 --enable-libvpx --enable-libspeex --enable-nonfree --mandir=/opt/local/share/man --enable-shared --enable-pthreads --disable-indevs --cc=/Developer/usr/bin/clang --arch=x86_64
  libavutil    50. 43. 0 / 50. 43. 0
  libavcodec   52.122. 0 / 52.122. 0
  libavformat  52.110. 0 / 52.110. 0
  libavdevice  52.  5. 0 / 52.  5. 0
  libavfilter   1. 80. 0 /  1. 80. 0
  libswscale    0. 14. 1 /  0. 14. 1
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2011-12-06 08:00:00
    encoder         : Lavf53.17.0
  Duration: 00:00:45.60, start: 0.000000, bitrate: 1818 kb/s
    Stream #0.0(eng): Video: h264 (High), yuv420p, 1280x852, 1687 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
    Metadata:
      creation_time   : 2011-12-06 08:00:00
    Stream #0.1(eng): Audio: aac, 44100 Hz, stereo, s16, 128 kb/s
    Metadata:
      creation_time   : 2011-12-06 08:00:00
At least one output file must be specified
person Luca Lenardi    schedule 11.12.2011

Обнаружил это при поиске решения проблем с MP4-аудио, связанных с iOS: некоторые из моих аудиофайлов MP4 начинали воспроизводиться, но в определенный момент в файле воспроизведение на iOS зависало, в то время как проигрыватели без iOS воспроизводили то же самое. Файлы MP4 безупречно до конца.

MP4 — это контейнерный формат. Говорят, что он также содержит потоки, отличные от аудио/видео, и заголовки метаданных, описывающие аудио/видео. iOS, похоже, не любит некоторые типы потоков и если некоторые заголовки находятся в неожиданных местах в файле.

mp4box и ffmpeg могут исправить эти заголовки и удалить нежелательные потоки. Я только возился с mp4box, который помог мне исправить проблемы со звуком:

mp4box -single 1 input.mp4 -out outputfixed.mp4

В моем случае «1» — это номер потока, содержащего звук (может варьироваться, mp4box также может отображать содержащиеся в нем потоки).

Позже я обнаружил, что инструмент с графическим интерфейсом «MP4tag», который в первую очередь предназначен для редактирования тегов, имеет функцию меню под названием «Оптимизация MP4», которая, как говорят, может решить ту же проблему.

mp4box также должен уметь исправлять комбинации видео+аудио, извлекая более одного потока из входного файла.

person Alex    schedule 04.05.2014