Но он почему-то не сработал, а именно наблюдалась сильная рассинхронизация звука и видео, возможно потому, что исходное видео находилось в контейнере mkv и для правильного перекодирования в avi нужно было в явном виде указывать параметры перекодирования. Не получилось перекодировать на в mpg ни в mp4. К счастью, нашлась заготовка с настройками правильного перекодирования в mp4:
ffmpeg -i input.mkv -c:v libx264 -preset slow -crf 22 -c:a copy output.mp4
Я добавил параметры, указывающие с какого момента времени нужно вырезать видео: -ss 00:59:13, а так же длительность отрезка: -t 00:03:47 и клип получился как надо.
ffmpeg -ss 00:59:13 -i input.mkv -c:v libx264 -preset slow -crf 22 -c:a copy -t 00:03:47 output.mp4
Кстати, обратите внимание, что параметр -ss 00:59:13 указан перед флагом -i. В этом случае, ffmpeg не декодирует видео до нужного участка, а просто перематывает, поэтому в этом случае вся операция занимает гораздо меньше времени. Однако, при этом могут возникнуть ошибки с позиционированием и в этом случае можно попробовать поставить параметр -ss после -i, например вот так:
ffmpeg -i input.mkv -c:v libx264 -preset slow -crf 22 -c:a copy -ss 00:59:13 -t 00:03:47 output.mp4
Однако в моем случае это делать не понадобилось. Неудобно только, что нельзя сразу указать момент времени окончания отрезка и приходится вручную подсчитывать длительность.
Комментариев нет:
Отправить комментарий