У меня есть javascript, который записывает видео с веб-камеры в виде webm и аудио с микрофона, как wav вместе. Я кодирую эти файлы webm и wave для создания файла mp4 с помощью ffmpeg/avconv. Но я заметил небольшую разницу в длине аудио и видео, что делает вывод несинхронным.
Я попробовал параметр async/asyncts, но я не заметил различий в выводе, все еще не синхронизирован
ffmpeg -async 1 -y -i audio.wav -i video.webm -vcodec libx264 output.mp4
Я попытался с помощью фильтра области выборки с avconv дал мне ошибку
No such filter: 'areasample'
Error opening filters!
за
avconv -y -i audio.wav -i video.webm -vcodec libx264 -filter "areasample=asyncts:compensate" output.mp4
Как я могу сделать видео в синхронизации?
Обновить:
У меня длина аудио меньше, чем у видео. Я использую команду ffmpeg -itsoffset -00:00:01 -y -i audio.wav -i video.webm -vcodec libx264 output.mp4
чтобы синхронизировать их. Но я не уверен, что всегда будет разница в 1 сек. Поэтому я ищу решение, которое могло бы управлять этим динамически (добавить смещение для отсутствующей длины звука).