ffmpeg захват веб-камеры аудио/видео рассинхронизировано

ffmpeg захват веб-камеры аудио/видео рассинхронизировано

Я запускаю эту команду для захвата видео и звука с моей веб-камеры:

ffmpeg -y -f video4linux2 -s 320x240 -i /dev/video0 -f alsa -i "plughw:CARD=U0x46d0x825,DEV=0" -ac 2 -strict experimental Filename.mp4

Это работает, но звук отстает от видео примерно на полсекунды (например, если я хлопаю, то при просмотре видео я сначала услышу хлопок, а затем увижу, как я это делаю).

Это для онлайн-трансляции, поэтому я не смогу исправить это позже, это нужно записать правильно.

Кажется, что разница всегда одинаковая, поэтому я пытаюсь найти вариант, позволяющий просто отложить начало записи звука, но не могу разобраться.

Есть идеи?

решение1

А ты пробовал гуглить? Посмотриздесь
Они предлагают использовать -asyncили -vsyncв зависимости от ваших требований, или -mapв сочетании с-itsoffset

Использование ffmpegпоследней команды должно решить эту задачу:

ffmpeg -y -f video4linux2 -s 320x240 -i /dev/video0 -itsoffset 2 -f alsa -i "plughw:CARD=U0x46d0x825,DEV=0" -ac 2 -strict experimental Filename.mp4

решение2

ВидетьFFmpeg: время начала звука сильно сбилоськак я решил очень похожую проблему. Я пользовался -itsoffsetраньше, но это слишком много догадок на мой вкус.

Связанный контент