iPad не рендерит видео H. 264 с помощью HTML5
У меня есть несколько видео в кодировке H. 264, которые правильно отображаются в HTML5 в веб-браузере, но не отображаются правильно на iPad. Когда я использую видео H. 264, которое я скачал из интернета,мое видео правильно отображается на iPad, поэтому это не проблема HTML.
Вот информация ffmpeg о моих видео --
Мой оригинал .mov видео:
Похоже, частота кадров кодека stream 1 отличается от частоты кадров контейнера: 6000.00 (6000/1) -> 30.00 (30/1)
Вход #0, мова,в формате mp4 и M4A,3gp форматы,файлы 3g2,mj2 успешно, с a_video.МР4':
Метаданные:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
Длительность: 00: 00: 42.74, начало: 0.000000, битрейт: 220 кб / с
Stream #0.0(eng): Audio: aac, 44100 Hz, stereo, s16, 94 kb/s
Stream #0.1(eng): Video: h264, yuv420p, 762x464, 122 kb/s, 30 fps, 30 tbr, 3k tbn, 6k tbc
После использования ручного тормоза для преобразования my .mov в mp4, пока не рендерится на iPad:
Похоже, частота кадров кодека stream 0 отличается от частоты кадров контейнера: 180000.00 (180000/1) -> 29.97 (30000/1001)
Input #0, mov, mp4,m4a,3gp,3g2, mj2, from 'a_video.файлы M4V':
Метаданные:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
encoder: HandBrake 0.9.5 2011010300
Длительность: 00: 00: 42.77, начало: 0.000000, битрейт: 169 кб / с
Трансляция #0.0(УНД): видео: кодек H264, yuv420p, 752x464 [пар 381:381 376 дар:232], 35 кб/с, номинальная 145161:141376 дар 145161:87232, 29.97 кадров в секунду, 29.97 тбр 90к ТБН 180к ТПГ
Поток #0.1 (eng): Аудио: aac, 44100 Гц, стерео, s16, 128 кб / с
Вот. mp4, который я нашел в интернете, который делает рендеринг на iPad:
Похоже, частота кадров кодека stream 1 отличается от частоты кадров контейнера: 180000.00 (180000/1) -> 25.00 (25/1)
Введите #0, MOV и MP4 в форматы M4A,3gp форматы,файлы 3g2,mj2 успешно, с a_video_3_emu.МР4':
Метаданные:
major_brand : M4VP
minor_version: 1
compatible_brands: M4VPM4A mp42isom
кодер: CoreMediaAuthoring 677, CoreMedia 420.17, i386
Длительность: 00: 01: 38.01, начало: 0.000000, битрейт: 1023 кб / с
Поток #0.0 (УНД): Аудио: aac, 32000 Гц, моно, s16, 97 кб/с
Поток #0.1 (УНД): видео: h264, yuv420p, 480x360 [PAR 1:1 DAR 4: 3], 914 кб/с, 25 кадров в секунду, 25 tbr, 90k tbn, 180k tbc
Кто-нибудь видит что-то неправильное в том, как я кодирую свои видео?
Edit
Сначала моя теория заключалась в том, что iPad был чувствителен к различным форматам контейнеров; но, похоже, это не так. Я взял видео, которое делает правильный рендеринг на iPad, и преобразовал его в a .mov, и онвсе еще правильно играл на iPad. Так что там должно быть, проблема в том, как iPad работает с базовым потоком H. 264.
3 ответов:
Если у вас есть видеопоток H. 264-независимо от контейнера (mov, m4v, mp4) - и Ваше видео HTML5 отображается в веб-браузере, но не отображается на iPad, есть два возможных исправления:
Первое решение заключается в преобразовании видеопотока H. 264 в mpeg4.
ffmpeg -i video_h264_not_working.mov -acodec copy -vcodec mpeg4 video_mpeg.mov(в качестве альтернативы можно выбрать MPEG4 вместо H. 264 в ручнике.)
Второе решение заключается в повторной обработке видео H. 264 со следующими параметрами:
ffmpeg -i video_h264_not_working.mov -vcodec libx264 -r 25 -b 516k -bt 516k -crf 22 -vpre normal video_h264.movВ второе решение пришло из: http://houseoflaudanum.com/navigate/howtos/html5-video-no-webm/
Я предполагаю, что в первом случае кодек mpeg4 более расслаблен на iPad; и во втором случае iPad не понравился некоторые параметры потока из оригинальной кодировки H. 264, поэтому была необходима "чистка".
Чтобы определить, что на самом деле представляет собой ваш видеопоток, просто сделайте ffmpeg-i myvideo.мова.
Я добился большого успеха в кодировании и транскодировании видео HTML5, используя бесплатный видео конвертер Miro (OS X, Windows), как рекомендовано в видео в веб-разделе Dive Into HTML5 от Марка Пилигрима.
Miro Video Converter может конвертировать практически любой видеофайл в MP4, Theora или MP3 (только аудио). Он имеет пресеты, которые преобразуют видео в правильные размеры и форматы для популярных телефонов, iPod и других медиаплееров. Просто конвертируйте видео и копируйте это к вашему устройству.
Это супер простой способ конвертировать практически любое видео в MP4, WebM (vp8), Ogg Theora или для Android, iPhone и многое другое. Вы будете чувствовать себя хорошо, что это 100% бесплатно и с открытым исходным кодом, тоже.
Еще одна настоящая утилита преобразования видео-это видео обезьяна, бесплатное приложение для кодирования видео исключительно для Mac. Он был создан после гибели великого инструмента Visual Hub. Video Monkey сильно заимствует у Visual Hub инструмент преобразования видео, как концептуально и из исходного дампа кода, отправленного в SourceForge как TranscoderRedux.
sudo port install ffmpegи попробуйте этот секретный соус:#!/bin/bash BR=512k WIDTH=640 HEIGHT=272 input=${1} # strip off the file extension output=$(echo ${input} | sed 's/\..*//' ) # works for most videos ffmpeg -y -i ${input} -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -s ${WIDTH}x${HEIGHT} -vcodec libx264 -b ${BR} -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 7 -trellis 0 -refs 0 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate ${BR} -bufsize ${BR} -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 30 -qmax 51 -qdiff 4 -level 30 -aspect ${WIDTH}:${HEIGHT} -g 30 -async 2 ${output}-iphone.tsОтрегулируйте ширину и высоту исходного видео и установите битрейт, как вы считаете нужным. Передайте исходное видео в качестве параметра скрипту. Работает практически с любым исходным форматом. Вам нужен macports для команды порта.
Comments