У нас есть веб-приложение на Flash, которое создает интерактивное видео и использует ffmpeg для сжатия / изменения размера, когда пользователь «публикует» свой проект.
Пользователь может загружать файлы flv и mp4, оба из которых отлично воспроизводятся в пользовательском интерфейсе Flash перед публикацией. После публикации файлы flv работают нормально, но файлы mp4 не будут воспроизводиться во флэш-плеере: звук будет воспроизводиться, а видео - нет.
Файлы mp4 будут воспроизводиться нормально, если я загружу их и воспроизведу в проигрывателе Quicktime, но если я попытаюсь открыть их в проигрывателе Adobe Media, появится сообщение «Медиа-файл не содержит поддерживаемой видеодорожки».
Если я открываю Инспектор фильмов в quicktime, он сообщает мне, что исходный файл - это видео «h264», а обработанные ffmpeg - «mpeg-4».
Я попытался заставить его использовать h264, добавив такие флаги, как -f h264 and -vcodec h264
но я получаю полный экран ошибок (нет кадра, недопустимый тип POC, sps_id вне диапазона), заканчивающихся на Could not find codec parameters (Video: h264)
h264 появится, если я запустил ffmpeg -formats
и ffmpeg -codecs
, и, как я уже сказал, в Quicktime все будет нормально.
Что еще мне нужно сделать, чтобы убедить флэш-плеер их воспроизвести? Что еще мне нужно рассказать вам о сервере, что поможет?
Здесь вы найдете очень полное руководство по компиляции ffmpeg для кодировки MP4 X264 в Ubuntu:
http://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide
Он также выясняет, как добавить дополнительные настройки / инструменты для потоковой передачи, например qt-faststart
Когда я создаю видеофайлы MPEG4 с ffmpeg
, Я использую -vcodec libx264
. Соответствующий -f
Параметр зависит от того, что может принимать ваш флеш-плеер.
Обратите внимание, что этот вопрос не по теме на serverfault.com; вы можете задать вопросы об использовании ffmpeg на список рассылки ffmpeg-user.