Транскодирование с H264 на H264 после загрузки в онлайн-сервис приводит к проблемам с синхронизацией аудио / видео
Наше приложение генерирует файл MOV, который содержит серию статических изображений, каждое из которых имеет продолжительность в видео около полсекунды. Видео имеет частоту кадров 10 кадров в секунду и кодируется с использованием кодека avc1 (H264). Звук всегда начинается с половины секунды тишины и кодируется с помощью кодека mp4a (MPEG-4 AAC-LC). После загрузки в онлайн-сервис происходит транскодирование в H264 (предположительно с другими настройками), и звук кажется на полсекунды впереди видео, т.е. кажется, что тишина в начале была обрезана от аудио, но не от видео. Это также происходит с файлами WMV, которые мы генерируем. Любые идеи относительно проблем, которые могут возникнуть у нас с исходным видео, или что-то, что может произойти в транскоде, может вызвать это?
1 ответ
Я не могу определенно ответить на это - потому что я не совсем знаю, что это делает Facebook.
Там может быть, однако, две возможности:
у дополненного аудио может быть просто разрыв метки времени. Т.е. поток может начинаться с некоторой временной метки (в тишине) и позже, когда начинается реальное аудио - временная метка отличается. Следовательно, транскодер может быть достаточно умен, чтобы выбросить эту часть.
другая возможность заключается в том, что когда вы добавляете тишину, вы вообще не добавляете отметку времени до некоторой точки. Транскодер может просто отбрасывать аудио кадры, пока не увидит первую действительную временную метку, которая имеет смысл. Это также относится ко многим транскодерам / декодерам реального времени, которые ожидают получения данных из прямой трансляции.
Разработайте больше в этой линии, чтобы получить более точный ответ.