Нарезка видео с помощью ffmpeg: длина неточная

Нарезка видео с помощью ffmpeg: длина неточная

Я пытался вырезать 5-секундный отрезок из видео test.wmv (длиной 10 минут), начиная с позиции 00:03:00. Поэтому я использовал следующую команду ffmpeg.

ffmpeg -ss 00:03:00 -t 00:00:05 -i test.wmv -acodec libmp3lame -vcodec copy 1.wmv

Но он выдает мне выходной wmv-файл на 11 секунд длиннее, что в два раза больше указанной длительности.

Что я делаю не так? Есть идеи?

Спасибо

решение1

Это часто происходит при использовании -ssand -tвместе с -c copyor -codec copy.

Не используйте copy, а используйте другие кодеки или просто не указывайте параметры -c. -codecи этого не произойдет.

например:ffmpeg -ss 00:03:00 -t 00:00:05 -i test.wmv -acodec libmp3lame -vcodec libx264 1.mp4

решение2

Разместите начальный и конечный параметры после ввода. Это должно сделать его более точным.

ffmpeg -i test.wmv -ss 00:03:00 -to 00:03:05 -c copy 1.wmv

Опция -tозначает перейти на эту продолжительность. Я использовал -to. Так что в вашем случае это должно быть

-to 00:03:05

Также я не менял аудиокодек с оригинала. Это должно работать.

решение3

Я использовал руководство @Rajib для создания запроса, который идеально подходит для обрезки видео с точной продолжительностью/длительностью.

-i input_path -ss 00:00:00 -to 00:00:07 -c copy -copyts output_path

Дополнительные параметры предназначены для поддержания качества выходного видео.

Связанный контент