У вас, вероятно, нет ключевого кадра на отметке 3 секунды. Поскольку не-ключевые кадры кодируют отличия от других фреймов, им требуются все данные, начиная с предыдущего ключевого кадра.
С контейнером mp4 можно вырезать без ключевого кадра без повторного кодирования с использованием списка редактирования. Другими словами, если ближайший ключевой кадр до 3 с равен 0, то он будет копировать видео, начинающееся с 0 секунд, и использовать список редактирования, чтобы сообщить игроку, чтобы он начал играть в течение 3 секунд.
Если вы используете latest ffmpeg от git master он сделает это, используя список редактирования, когда вызывается с помощью команды, которую вы предоставили. Если это не работает для вас, вы, вероятно, используете более старую версию ffmpeg, или ваш плеер не поддерживает списки редактирования. Некоторые игроки проигнорируют список редактирования и всегда воспроизводят все носители в файле от начала и до конца.
Если вы хотите точно точно начать с не-ключевого кадра и хотите, чтобы он воспроизводился, начиная с нужной точки на проигрывателе, который не поддерживает списки редактирования, или хотите убедиться, что часть разреза фактически не находится на выходе файл (например, если он содержит конфиденциальную информацию), то вы можете сделать это путем повторного кодирования, чтобы был ключевой кадр точно в желаемое время начала. Повторное кодирование является значением по умолчанию, если вы не указали copy
. Например:
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4
Когда повторное кодирование вы можете также включить дополнительные качества, связанные параметры или конкретный AAC кодер. Подробнее см. Ffmpeg's x264 Encoding Guide для видео и AAC Encoding Guide для аудио.
Кроме того, параметр -t
указывает продолжительность, а не время окончания. Вышеуказанная команда будет кодировать 8 с видео, начиная с 3 секунд. Для начала с 3 секунд и завершения в 8 с используйте -t 5
. Если вы используете текущую версию ffmpeg, вы также можете заменить -t
на -to
в приведенной выше команде для завершения в указанное время.
Отсутствует полный, неразрезанный вывод консоли ffmpeg. Пожалуйста, всегда включайте это, когда спрашиваете. Благодарю. – slhck
Откуда вы взяли -strict 2? Просто интересно, как это не в документах: https://ffmpeg.org/ffmpeg.html – StackOverflowed
Его качество после установки ffmpeg, в справке ffmpeg вы можете найти эту опцию – Kalai