iPhone не может воспроизводить видео файл .mp4 H.264 - PullRequest
11 голосов
/ 20 июля 2010

Я пытаюсь настроить просто мобильную страницу для клиента со ссылкой на видеофайл .mp4. Лке так:

<a href="My_Video_File.mp4" target="_blank">Watch MP4 Video</a>

А потом, очевидно, мой видеофайл получен правильно, и .mp4 имеет следующие характеристики:

Dimension: 480 * 272
Codecs: AAC, H.264, MPEG-4 SDSM, MPEG-4 ODSM
Channel Count: 2
Total Bitrate: 991
Size: 11.4MB

Но проблема в том, что, когда я нажимаю на ссылку, iPhone говорит: «Фильм не воспроизводится». и не говорит мне, почему.

Любая помощь?

Заранее спасибо.

Ответы [ 5 ]

20 голосов
/ 30 января 2011

Я наконец понял это.

Проблема была частично связана с кодированием, но больше связана с размерами.

Я обнаружил, что если размер вашего файла .mp4 больше, чем 640 * 360, то iPhone (iPad, iPod) даже не даст пользователю возможность попробовать его воспроизвести. Они просто получают значок кнопки воспроизведения X'd out.

Кроме того, эти устройства поддерживают только файлы .mp4, закодированные с базовым профилем H.264, или они не могут быть воспроизведены.

Кроме того, для iPhone существует ограничение скорости передачи в 1,5 МБ, но рекомендуется поддерживать скорость передачи ниже 900 КБ.

Если качество менее важно, чем размер, вы можете использовать m4v больших размеров, но я считаю, что правила битрейта все еще применяются.

Надеюсь, это поможет кому-то еще.

9 голосов
/ 12 сентября 2010

Я столкнулся с подобной проблемой, и мое предположение было кодирование.Я безуспешно пробовал предустановку «iPhone» с Adobe Premiere CS4 (Adobe Media Encoder).

Запуск его через ffmpeg с помощью следующего решения:

ffmpeg -i INPUT -s 320x240 -r 30000/1001 -b 200k -bt 240k -vcodec libx264 -coder 0 -bf 0 -refs 1 -flags2 -wpred-dct8x8 -level 30 -maxrate 10M -bufsize 10M -acodec libfaac -ac 2 -ar 48000 -ab 192k OUTPUT.mp4

Я нашелвыше (и многих других конфигурациях) здесь: http://rodrigopolo.com/ffmpeg/cheats.html (я исправил несколько опечаток в их «ширине iPod-iPhone 640, без предварительной установки» [sic].)

Другие поиски, вероятно, приведут кдополнительная информация о требованиях к кодированию (h.264 baseline 3.0) и требованиях к размеру фильма для воспроизведения на iPhone.

Официальная ссылка Apple на эту тему: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/CreatingVideoforSafarioniPhone/CreatingVideoforSafarioniPhone.html

4 голосов
/ 11 октября 2012

Вам нужно, чтобы видео h254 было прогрессивным, а не ниже.Выберите предустановку H.264 и измените видео с более низкого на прогрессивное.

2 голосов
/ 10 ноября 2017

это сделало это для меня:

ffmpeg -an -i movie.mp4 -vcodec libx264 -codec:a libmp3lame -qscale:a 1 -pix_fmt yuv420p -profile:v baseline -level 3 output.mp4

Я использовал mp3 кодек здесьЭто исправило мою проблему с iPhone mp4!Спасибо Thismatters!

0 голосов
/ 25 августа 2014

Я столкнулся с аналогичной ситуацией с видео, которое я генерировал.Это будет хорошо играть на моей локальной машине, или через браузер, который поддерживает .mp4;однако, когда я пытался просмотреть его на своем iPhone, он неизменно отображал перечеркнутую кнопку воспроизведения.После прочтения ffmpeg docs я попытался использовать следующее, и это прекрасно работало на моем iPhone, а также на других устройствах, которые я смог попробовать.

ffmpeg -i input.mkv -c:v libx264 -crf 28 -preset veryslow -tune fastdecode \
  -profile:v baseline -level 3.0 -movflags +faststart -c:a libfdk_aac -ac 2 \
  -ar 44100 -ab 64k -threads 0 -f mp4 output.mp4

Видео, которое я 'm имеет дело с 1280x720 при 30 кадрах в секунду, и вариант, который наконец-то заставил его работать, был

-profile:v baseline -level 3.0

Надеюсь, это поможет.

...