Наше приложение создает файл MOV, который содержит серию статических изображений, каждый из которых имеет продолжительность в видео около полутора секунд. Видео имеет частоту кадров 10 кадров в секунду и кодируется с использованием кодека avc1 (H264). Звук всегда начинается примерно с половиной секунды молчания и кодируется кодеком mp4a (MPEG-4 AAC-LC). После загрузки в онлайн-службу происходит перекодирование на H264 (предположительно с разными настройками), и звук кажется на полсекунды впереди видео, т. Е. кажется, что тишина в начале была обрезана из аудио, но не видео. Это также происходит с создаваемыми нами WMV-файлами. Любые идеи относительно проблем, которые мы могли бы иметь с нашим исходным видео или что-то, что может произойти в транскоде, который может вызвать это?Транскодирование с H264 на H264 после загрузки в онлайн-службу приводит к проблемам с синхронизацией аудио/видео.
ответ
Я не могу однозначно ответить на этот вопрос - потому что я не совсем понимаю, что делает Facebook.
Там может быть, однако, две возможности:
проложенный аудио может просто иметь разрыв штамп времени. т. е. поток может начинаться с некоторой временной отметки (в тишине), а позже, когда начинается реальный звук, отметка времени отличается. Следовательно, транскодер может быть достаточно умным, чтобы выбросить эту часть.
Другая возможность заключается в том, что когда вы добавляете молчание, вы не добавляете отметку времени вообще до некоторой точки. Транскодер может просто отбрасывать звуковые кадры, пока не увидит первую действительную временную метку, которая имеет смысл. Это также относится ко многим транскодирам/декодерам реального времени, которые ожидают получения данных из реального потока.
Подробнее об этой линии, чтобы получить более точный ответ.
Спасибо Дипан. Используя Windows Media ASF View для просмотра WMV-файла, я вижу в разделе «Объект данных», что оба наших потока начинаются с объектов одновременно. Когда мы на самом деле визуализируем видео, у нас уже есть WAV-файл с тишиной в начале и просто используйте фильтры Async File Reader и Wave Parser DirectShow, чтобы добавить это в видео. Мы не добавляем тихую часть аудио в видео, она всегда присутствует в аудио. – Andrew
Что такое транскодер, который вы используете? –
Это то, что перекодирует Facebook после загрузки. – Andrew