Невозможно преобразовать FLV в MP4 для iPhone с помощью ffmpeg

Невозможно преобразовать FLV в MP4 для iPhone с помощью ffmpeg

У меня возникли проблемы с конвертацией FLV в MP4, который можно воспроизвести на iPhone/iPad через Video-js.

Похоже, команды ffmpeg не выполняют преобразование должным образом.

Вот одна из оригинальных команд, которую программное обеспечение cumulusclips запускает при преобразовании:

/usr/bin/ffmpeg -i /var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi -s 640x480 -vb 800k -ac 2 -ab 96k -ar 44100     -f flv /var/www/html/cumulus/cc-content/uploads/flv/M2q9rmYjSkElrCJA34Cr.flv

Вывод, аналогичный следующему:

Input #0, avi, from '/var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi':
  Metadata:
    ISFT            : MEncoder 2:1.0~rc2-0ubuntu13
  Duration: 00:09:56.45, start: 0.000000, bitrate: 9586 kb/s
    Stream #0.0: Video: msmpeg4v2, yuv420p, 1920x1080, 24 tbr, 24 tbn, 24 tbc
    Stream #0.1: Audio: mp3, 48000 Hz, 2 channels, s16, 160 kb/s
Output #0, flv, to '/var/www/html/cumulus/cc-content/uploads/flv/M2q9rmYjSkElrCJA34Cr.flv':
  Metadata:
    encoder         : Lavf52.64.2
    Stream #0.0: Video: flv, yuv420p, 640x480, q=2-31, 800 kb/s, 1k tbn, 24 tbc
    Stream #0.1: Audio: libmp3lame, 44100 Hz, 2 channels, s16, 96 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1

После этого для мобильных устройств выполняется следующее:

/usr/bin/ffmpeg -i /var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi -s 480x360 -vb 600k -ac 2 -ab 96k -ar 44    100 -f mp4 /var/www/html/cumulus/cc-content/uploads/mobile/M2q9rmYjSkElrCJA34Cr_temp.mp4

Выход:

Input #0, avi, from '/var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi':
  Metadata:
    ISFT            : MEncoder 2:1.0~rc2-0ubuntu13
  Duration: 00:09:56.45, start: 0.000000, bitrate: 9586 kb/s
    Stream #0.0: Video: msmpeg4v2, yuv420p, 1920x1080, 24 tbr, 24 tbn, 24 tbc
    Stream #0.1: Audio: mp3, 48000 Hz, 2 channels, s16, 160 kb/s
Output #0, mp4, to '/var/www/html/cumulus/cc-content/uploads/mobile/M2q9rmYjSkElrCJA34Cr_temp.mp4':
  Metadata:
    encoder         : Lavf52.64.2
    Stream #0.0: Video: mpeg4, yuv420p, 480x360, q=2-31, 600 kb/s, 24 tbn, 24 tbc
    Stream #0.1: Audio: libfaac, 44100 Hz, 2 channels, s16, 96 kb/s

решение1

Я почти уверен, что используемая вами версия ffmpeg устарела. Пожалуйста, загрузите статическую сборку для вашей системы софициальная домашняя страницаи используйте путь к новому ffmpegвместо старого /usr/bin/ffmpeg.

Например, если вы загрузили свою статическую сборку, вы можете поместить ее в /usr/local/bin/ffmpeg, сделать ее исполняемой ( chmod ugo+x /usr/local/bin/ffmpeg), а затем использовать ее.

Затем вам нужна такая команда для преобразования видео в формат MP4, совместимый с HTML5 и воспроизводимый на всех типах мобильных устройств:

ffmpeg -i input.avi -c:v libx264 -c:a aac -strict experimental -b:a 128k \
-crf 23 -profile:v baseline -movflags faststart output.mp4

Изменяйте CRF в зависимости от желаемого качества (хороший диапазон — 18–28, чем ниже, тем лучше) или выберите -b:v 2Mкодирование с фиксированным битрейтом, например, 2 Мбит/с.

Первоначальное преобразование использовало видео MPEG-4 Part 2 вместо MPEG-4 Part 10, которое должно поддерживаться мобильными устройствами, но не обязательно. Так безопаснее.

Кроме того, в наши дни вам действительно не нужно создавать видео FLV. Я не знаю ни одного устройства или технологии воспроизведения, которые бы требовали этот (немного устаревший) формат.

Возможно, вас это тоже заинтересует:Какой набор скриптов ffmpeg мне нужен, чтобы получить «Видео для всех», совместимое с HTML5?

Связанный контент