Хочу сравнить 2 видео. Для этого можно их запустить в mpv одно над другим:
mpv --lavfi-complex="[vid1][vid2]vstack[vo];[aid1][aid2]amix[ao]" klf.mp4 --external-file=klf.mpg
или
mpv --lavfi-complex="[vid1]scale=640x480[v1s];[v1s][vid2]vstack[vo];[aid1][aid2]amix[ao]" klf.mp4 --external-file=klf.mpg
Но в данном случае оказалось, что в начале klf.mp4 есть 10-секундная заставка. Как синхронизировать видео и аудио из разных файлов? В документации нашёл cue и adelay, но они не срабатывают, и готовых примеров не нашёл. Как задержать запуск 2-го файла на 10 секунд?
Ответ:
-
Добавить пустой кусок видео можно фильтром tpad. Приостановить звук — adelay, указав паузу для каждой дорожки данного файла, либо с параметром all=1 для всех. Итоговый вариант:
mpv --lavfi-complex="[vid2]tpad=start_duration=10:start_mode=add:color=black[v2p]; [vid1][v2p]vstack[vo];[aid2]adelay=delays=10s:all=1[a2p]; [aid1][a2p]amix[ao]" klf.mp4 --external-file=klf.mpg --keep-open=yes
-
Но amix работает криво, и одна из дорожек запаздывает на труднопредсказуемое время. Заданные 10s не соблюдаются, и я не уверен, удастся ли подобрать длительность паузы, чтобы совпадающие были синхронными. В итоге звук пришлось сравнивать в kdenlive.