Как можно исправить проблему, когда изображение воспроизводится вдвое медленнее звука?

Я скачал запись стрима с YouTube с помощью yt-dlp, но столкнулся с проблемами при воспроизведении видео. В некоторых видеоплеерах, таких как mpv на Linux и CapCut на Windows, картинка отстает от звука в два раза. В VLC на Linux, кроме этого, возникают серьезные артефакты, похожие на поврежденный файл. При перемотке с помощью таймлайна звук и картинка иногда синхронизируются, но затем снова начинают расходиться. 

Судя по всему, проблема может быть связана с ошибкой кодирования и частотой кадров. Полное перекодирование видео с использованием ffmpeg решает проблему, но этот процесс либо занимает много времени на ноутбуке без GPU, либо приводит к потере качества. Я загрузил 30-секундный фрагмент на Яндекс Диск по следующей ссылке: <a href="https://disk.yandex.ru/d/B-6rlyp_PvgJXQ" rel="nofollow">30 сек фрагмент загрузил на яндекс диск</a>. Чтобы понять, в чем дело, рекомендую скачать и воспроизвести его на ПК.
  • 17 октября 2024 г. 15:22
Ответы на вопрос 1
Проблема с синхронизацией звука и изображения может возникать по нескольким причинам, включая разницу в частоте кадров (FPS), кодировании видео или звука, а также потенциальные ошибки в самом файле. Вот несколько шагов, которые можно предпринять для исправления ситуации:

1. **Проверка параметров медиафайла**:
   - Используйте команду `ffmpeg -i your_video_file.ext` для анализа информации о частоте кадров и битрейте как видео, так и аудиопотока. Убедитесь, что они соответствуют стандартным значениям.

2. **Перекодирование**:
   - Как вы уже заметили, полное перекодирование может помочь. Оно может занять время, но вы можете попробовать использовать параметры, которые минимизируют потерю качества. Например, используйте следующие команды:
     ```
     ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset medium -c:a aac -b:a 192k output.mp4
     ```
     - `-crf 18` – это значение для сохранения высокого качества (чем меньше значение, тем лучше качество и больше размер файла).
     - `-preset medium` – это баланс между скоростью и качеством кодирования.

3. **Изменение параметров воспроизведения**:
   - Попробуйте использовать разные параметры воспроизведения в плеерах, например в mpv можно использовать:
     ```
     mpv --audio-pause=no --video-sync=display-frame 
     ```
     Это может улучшить синхронизацию, хотя и не гарантирует решение проблемы.

4. **Синхронизация звука и видео**:
   - Если проблема остается, попробуйте вручную синхронизировать аудио и видео с помощью ffmpeg, если вы уверены, что одно из них “опаздывает”. Команда может выглядеть так:
     ```
     ffmpeg -i input.mp4 -itsoffset 0.5 -i input.mp4 -c copy -map 0:v -map 1:a output.mp4
     ```
     Здесь `-itsoffset 0.5` сдвигает аудио на 0.5 секунд вперед.

5. **Проверка других видеофайлов**:
   - Проверьте, воспроизводятся ли другие видеозаписи корректно. Если нет, возможно, проблема в самом плеере или настройках системы.

6. **Попробуйте другие плееры**:
   - Если ни один из предложенных способов не сработал, попробуйте использовать другой видеоплеер, такой как MPV или SMPlayer, которые часто обеспечивают лучшую поддержку различных кодеков и имеют дополнительные настройки для управления синхронизацией.

Если ни один из этих методов не помог решить проблему, возможно, стоит обратиться на форумы, посвященные ffmpeg или видеоплеерам, с полной информацией о вашей системе и характеристиках файла.
Похожие вопросы