Реализация -async 1 в коде C для исправления несинхронизированного звука

Я построил сегментатор, который принимает в качестве входного видео h264 / AAC и сегментирует в соответствии со спецификацией HLS. Исходный код для этого можно увидеть здесь: https://gist.github.com/cpnielsen/f36729c371aac0fe535d

Он реализован как расширение Python, но интересные части находятся в process_video() функция. Это использует libav библиотека (альтернативно ffmpeg) сделать тяжелую работу.

Это работает 95% времени, но мы столкнулись с некоторыми видео, где он производит сегменты с несинхронизированным звуком. Если бы я использовал инструмент командной строки, я мог бы просто добавить -async 1 чтобы исправить это, но как мне реализовать ту же функциональность в моем C-коде?

Я нашел фрагмент кода в avconv_filter.c (за libav, не уверен, что ffmpeg эквивалентно), где они запускают фильтр, но без какой-либо документации трудно понять, как это сделать вне всей модульной установки.

Мне просто нужно:

  1. Инициируйте правильный фильтр
  2. Примените его к входу (или к выходу? Не уверен)
  3. Знайте о любых подводных камнях при использовании фильтра.

Любая помощь приветствуется; пример кода, объяснение фильтра и т. д.

0 ответов

Другие вопросы по тегам