Видео MP4 слегка асинхронное - но только при первом воспроизведении

Вот наша процедура:

  1. Мы создаем живые видеоролики MP4 с помощью ffmpeg (H264 / AAC) как в качестве API, так и в качестве инструмента командной строки. *
  2. qt-faststart используется для перемещения метаданных в начало файла, чтобы обеспечить быстрое воспроизведение в нашем Flash-клиенте.
  3. Видео переименовано в * .m4v.
  4. Пользователь использует наш Flash-клиент для загрузки видео и сразу же начинает воспроизведение, так как метаданные находятся в начале.

Изменить: * Сначала создается видео MPG с помощью API ffmpeg, затем оно копируется вместе с вступительным и заключительным видео (вы можете просто объединить видео MPG в цепочку). Полученный MPG затем конвертируется в MP4 с помощью следующей команды:

ffmpeg -i inputvideo.mpg -sameq -b 3000000 -vcodec libx264 -acodec libvo_aacenc -ac 2 -g 60 -y outputvideo.mp4

В принципе, это действительно работает.

Эта проблема:

Мы заметили, что во время первоначального воспроизведения (пользователь еще ничего не щелкнул, видео все еще загружается или нет, это не имеет значения), звук воспроизводится асинхронно, что заметно, если вы внимательно посмотрите на него.

Но как только вы щелкаете по видео (достаточно одного раза, независимо от того, где вы щелкаете), звук становится более синхронным (все еще не идеальным!) Для остальной части видео.

Это поведение одинаково, независимо от того, просматриваете ли вы его через наш Flash-плеер или Windows Media Player. Что мы можем сделать со своей стороны (в ffmpeg или qt-faststart), чтобы сделать его синхронным с самого начала?


person TheSHEEEP    schedule 30.04.2012    source источник
comment
Отображение вашей команды ffmpeg и полного вывода консоли может предоставить некоторую полезную информацию. Кроме того, происходит ли это с видео, созданным как с помощью API, так и с помощью командной строки?   -  person llogan    schedule 01.05.2012
comment
Отредактировано, чтобы показать команду ffmpeg. Мы не регистрируем вывод консоли ffmpeg, но мы можем посмотреть на него, и он не показывает ошибок (без красных линий).   -  person TheSHEEEP    schedule 02.05.2012
comment
Вывод содержит другую полезную информацию, такую ​​как ваша версия ffmpeg, которая определит синтаксис для любых возможных предложений.   -  person llogan    schedule 03.05.2012


Ответы (1)


Ha!

Оказывается, проблема заключалась в том, что аудио не было той же длины, что и видео. Как только это было исправлено, все снова стало синхронным. Надо было сначала проверить это ... Так что, на самом деле, это не ошибка кодирования или проблема, скорее ошибка нашего отдела контента. ;)

person TheSHEEEP    schedule 03.05.2012
comment
Значит, в вашем файле inputvideo.mpg звук здесь длиннее, чем видео? - person rogerdpack; 24.06.2012
comment
На самом деле звук был короче видео. - person TheSHEEEP; 25.06.2012