На этот вопрос уже есть ответ здесь:
У меня 30 минут видеофайла, но я хочу извлечь видео с 00:09:23 до 00:25:33.
Я могу определить начальную позицию с помощью -ss
, но я не смог найти одну для конечной позиции. Любая помощь, пожалуйста?
источник
На этот вопрос уже есть ответ здесь:
У меня 30 минут видеофайла, но я хочу извлечь видео с 00:09:23 до 00:25:33.
Я могу определить начальную позицию с помощью -ss
, но я не смог найти одну для конечной позиции. Любая помощь, пожалуйста?
Убедитесь, что вы скачали последнюю версиюffmpeg
и не используете ту, которая входит в ваш дистрибутив (например, Ubuntu). Пакетные версии из разных дистрибутивов часто устарели и ведут себя не так, как ожидалось.
Или скомпилируйте это самостоятельно .
Используйте это, чтобы вырезать видео [start]
для [duration]
:
ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4
Здесь параметры означают следующее:
-ss
указывает время начала, например 00:01:23.000
или 83
(в секундах)-t
указывает продолжительность клипа (в том же формате). ffmpeg
также имеет флаг для предоставления времени окончания -to
.-c copy
копирует первый битовый поток видео, аудио и субтитров из входного в выходной файл без их перекодирования. Это не повредит качеству и заставит команду работать в течение нескольких секунд.Если вы не включите эту -c copy
опцию, ffmpeg
автоматически перекодирует выходные видео и аудио в соответствии с выбранным форматом. Для получения высококачественного видео и аудио прочитайте Руководство по кодированию x264 и Руководство по кодированию AAC соответственно.
Например:
ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4
Я думаю, что вы можете использовать следующую команду сейчас.
Взгляните также на документ ffmpeg или на эту вики-страницу .
источник
ffmpeg -i inputFile -c copy -ss 00:09:23 -to 00:25:33 outputFile
более простая версияffmpeg -ss 00:01:00 -i video.mp4 -to 00:02:00 -c copy -copyts cut.mp4
версию (с-copyts
), в противном случае она была обрезана неправильно (с черным экраном в начале). Спасибо за вторую ссылку, хотя.Странно, что никто не предложил
trim
фильтр .Отбросьте все, кроме второй минуты ввода:
Оставьте только первую секунду:
Отбросьте все, кроме второго 13 на второе 58:
источник
trim
иatrim
. Я обычно использую их при фильтрации, но пользователи должны заметить, что фильтрация требует перекодирования .Вы можете использовать эти два метода, которые работают для Windows и Linux.
источник
-sameq
не означает "то же качество" и был удален из ffmpeg. Используйте-codec copy
вместо этого. Также не забывайте об этом-to
варианте.Вы можете использовать это
Здесь вы должны указать продолжительность видео. то есть. 00: 25: 33-00: 09: 23
источник
Я использую следующий синтаксис, чтобы вырезать видео с помощью ffmpef:
ffmpeg -sameq -ss [start_seconds] -t [duration_seconds] -i [input_file] [outputfile]
-t используется для установки длительности в секундах - вы не можете указать время окончания, но это должно работать для вас.
источник
-sameq
вовсе не означает «то же качество».