Как я добавляю, что 1 секунда постепенно исчезает эффект в конец видео с ffmpeg?

Как я добавляю, что простой или наполовину второй исчезает эффект к запуску или концу видео с помощью ffmpeg и сохраняет все остальное тем же (кодек, качество)

2
задан 26 March 2019 в 10:41

2 ответа

  1. узнайте количество кадров в видеоклипе. Команда:

    ffmpeg -i clip.mp4 -vcodec copy -f rawvideo -y /dev/null 2>&1 | tr ^M '\n' | awk '/^frame=/ {print $2}'|tail -n 1
    5130
    
  2. Найдите кадры в секунду

fps

это 24

  1. Добавьте исчезают в /

    ffmpeg -i clip.mp4 -vf "fade=in:0:24,fade=out:5106:24" -acodec copy clip-out.mp4
    

Готово

1
ответ дан 2 December 2019 в 02:11

Для 10-секундного видео продолжительности 1 секунда постепенно появляется в начале, 1 секунда постепенно исчезают в конечном использовании исчезнуть фильтр:

ffmpeg -i input.mp4 -vf "fade=type=in:duration=1,fade=type=out:duration=1:start_time=9" -c:a copy output.mp4

Если Вы хотите исчезнуть, аудио слишком затем добавляет фильтр afade:

ffmpeg -i input.mp4 -filter_complex "[0:v]fade=type=in:duration=1,fade=type=out:duration=1:start_time=9[v];[0:a]afade=type=in:duration=1,afade=type=out:duration=1:start_time=9[a]" -map "[v]" -map "[a]" output.mp4

Автоматизировать его использование ffprobe получить продолжительность и bc вычислить время начала для исчезновения в конце:

#!/bin/bash
mkdir fade
for f in *.mp4; do
  dur=$(ffprobe -loglevel error -show_entries format=duration -of default=nk=1:nw=1 "$f")
  offset=$(bc -l <<< "$dur"-1)
  ffmpeg -i "$f" -filter_complex "[0:v]fade=type=in:duration=1,fade=type=out:duration=1:start_time='$offset'[v];[0:a]afade=type=in:duration=1,afade=type=out:duration=1:start_time='$offset'[a]" -map "[v]" -map "[a]" fade/"$f"
done

Это предполагает, что все исходные данные имеют видео и аудио. Если не можно использовать условный оператор в сочетании с ffprobe определить, существует ли аудио.

... и сохраните все остальное тем же (кодек, качество)

Фильтрация требует кодирования. Вы не можете сохранить качество при выводе формата с потерями. Любой вывод формат без потерь (не рекомендуемый, огромные файлы, проблемы совместимости), или принимает некоторую сумму потери. К счастью Вы, вероятно, не заметите. Просто используйте -crf опция при выводе видео H.264. Используйте самое высокое значение, которое все еще выглядит достаточно хорошим. См. Wiki FFmpeg: H.264 для получения дополнительной информации.

3
ответ дан 2 December 2019 в 02:11

Другие вопросы по тегам:

Похожие вопросы: