Как создать короткие видео-превью через заданные интервалы, начиная С 10 секунд?

Вопрос или проблема

Я пытаюсь создать видеопредварительные просмотры, состоящие из 10 клипов по 1 секунде. Моя проблема в том, чтобы пропустить первые несколько секунд входных файлов, так как они обычно все черные и без содержания.

Текущая команда:

ffmpeg -y -i inputfile.mp4 -filter_complex "[0:v]select="lt(mod(t,${duration}/10),1)",setpts=N/(FRAME_RATE*TB),scale=320:-2" -an outputfile.mp4

Итак, есть ли у вас советы, как я могу пропустить первые несколько секунд?

Просто посмотрев на страницу man для ffmpeg здесь, вы можете использовать множество опций для достижения нужного результата.

-ss и -timestamp, вероятно, будут работать лучше всего.

Итак, команда, которую вы ищете, выглядит следующим образом:

ffmpeg -y -i inputfile.mp4 -ss 00:00:10 -filter_complex "[0:v]select="lt(mod(t,${duration}/10),1)",setpts=N/(FRAME_RATE*TB),scale=320:-2" -an outputfile.mp4

Обратите внимание на формат после опции -ss.

Ответ или решение

Для создания коротких видеопреviews, состоящих из 10 роликов по 1 секунде каждый, с пропуском первых 10 секунд видео, вам необходимо использовать инструмент FFmpeg с соответствующими параметрами. Давайте рассмотрим, как это сделать, и создадим правильную команду.

Шаги для создания видеопреviews с FFmpeg

  1. Пропуск первых 10 секунд: Используйте параметр -ss для указания точки начала обработки видео. Поскольку вы хотите пропустить первые 10 секунд, вы должны установить это значение.

  2. Создание отборочных клипов: Вы используете фильтр select для выбора определённых кадров на основе времени. Это позволит вам создать 10 отрезков по 1 секунде.

  3. Вывод видео: Укажите параметры для вывода формата и качества видео.

Команда для выполнения данной задачи

Вот команда, которая соответствует вашим требованиям:

ffmpeg -y -i inputfile.mp4 -ss 00:00:10 -filter_complex "[0:v]select="lt(mod(t,${duration}/10),1)",setpts=N/(FRAME_RATE*TB),scale=320:-2" -an outputfile.mp4

Разбор команды

  • -y: Перезаписывает выходной файл без запроса подтверждения.
  • -i inputfile.mp4: Указывает входной видеофайл.
  • -ss 00:00:10: Начинает обработку с 10-й секунды видео, пропуская первые 10 секунд.
  • -filter_complex: Здесь вы применяете несколько фильтров:
    • **select=: Используется для выбора кадров. Функция mod(t,${duration}/10) выдаёт значение времени, что позволяет отбирать 1-секундные промежутки.
    • *`setpts=N/(FRAME_RATETB)`**: Корректирует временные метки отобранных кадров.
    • scale=320:-2: Изменяет размер видео до ширины 320 пикселей, сохраняя пропорции.
  • -an: Указывает, что аудиодорожка не нужна в выводе.
  • outputfile.mp4: Имя выходного файла, который будет содержать отобранные клипы.

Рекомендации

  • Для лучшего качества, вам стоит экспериментировать с параметрами масштабирования и выбора кадров, чтобы удостовериться, что получаемые клипы соответствуют вашим ожиданиям.
  • Обратите внимание на производительность вашей системы при обработке больших видеофайлов или высококачественных входов.
  • FFmpeg поддерживает множество форматов, поэтому вы можете изменить выходной формат видео, если это необходимо, добавив соответствующее расширение к имени выходного файла.

Заключение

Используя предложенную команду, вы сможете эффективно создать видеопреviews, пропуская первые 10 секунд, и отбирать нужные 1-секундные клипы. FFmpeg — мощный инструмент, который открыт для расширения функциональности, позволяя настраивать обработку видео под ваши конкретные нужды. Если возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться за советом.

Оцените материал
Добавить комментарий

Капча загружается...