![ffmpeg захват веб-камеры аудио/видео рассинхронизировано](https://rvso.com/image/1414629/ffmpeg%20%D0%B7%D0%B0%D1%85%D0%B2%D0%B0%D1%82%20%D0%B2%D0%B5%D0%B1-%D0%BA%D0%B0%D0%BC%D0%B5%D1%80%D1%8B%20%D0%B0%D1%83%D0%B4%D0%B8%D0%BE%2F%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%20%D1%80%D0%B0%D1%81%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BE.png)
Я запускаю эту команду для захвата видео и звука с моей веб-камеры:
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
раньше, но это слишком много догадок на мой вкус.