понедельник, 16 декабря 2013 г.

Как вырезать отрывок из видео в Ubuntu

Раньше для того, чтобы вырезать видео я использовал графическую оболочку Avidemux, но сейчас он у меня как то странно стал работать - не уменьшается размер окна, поэтому не видны некоторые элементы управления, да и не хотелось мучительно вспоминать как же именно там выделять отрезок, потом не удалить лишнее, а потом еще и делать экспорт. В общем, решил поискать способы сделать это через командную строку. Первый попавшийся способ был такой:

ffmpeg -i input.mkv -vcodec copy -acodec copy -ss 00:59:03 -t 00:01:45 output.avi

Но он почему-то не сработал, а именно наблюдалась сильная рассинхронизация звука и видео, возможно потому, что исходное видео находилось в контейнере 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

Однако в моем случае это делать не понадобилось. Неудобно только, что нельзя сразу указать момент времени окончания отрезка и приходится вручную подсчитывать длительность.

Комментариев нет:

Отправить комментарий

Популярные сообщения