Добавить наложение изображения PNG к видео, начиная с неключевого кадра - PullRequest
0 голосов
/ 08 мая 2020

Хорошо, я пытаюсь отредактировать кучу коротких и очень длинных видео. Цель состоит в том, чтобы отключить 1-минутную часть в каждом видео и наложить эту небольшую часть изображением PNG на всю продолжительность.

Поскольку все это нужно делать как можно быстрее, я подумал, что это будет Лучшая идея - разделить каждое видео на 3 части, затем отключить звук и добавить оверлей к части 2 и снова собрать все 3 части.

Первая проблема, с которой я столкнулся, заключалась в том, что части 2 и 3 всегда начинались с 1-2-секундным зависанием видео, в то время как со звуком все в порядке.

Я обнаружил, что это было вызвано тем, что я вырезал ключевые кадры и игнорировал неключевые кадры в начале.

Я исправил это, добавив параметр -copyinkf, чтобы также скопировать все неключевые кадры, например:

ffmpeg -i "in.mp4" \
-to 0:04:00 -c:v copy -c:a copy -copyinkf "p1.mp4" \
-ss 0:04:00 -to 0:05:00 -c:v copy -c:a copy -copyinkf "p2.mp4" \
-ss 0:05:00 -c:v copy -c:a copy -copyinkf "p3.mp4"

Итак, я продолжил и отключил часть 2, например:

ffmpeg -i "p2.mp4" -af "volume=0" -c:v copy -copyinkf "p2_muted.mp4"

Все в порядке до этого момента, и ЕСЛИ Я собираю части обратно прямо сейчас, это тоже будет быстро и точно, вот так:

--parts.txt
file 'p1.mp4'
file 'p2_muted.mp4'
file 'p3.mp4'

ffmpeg -f concat -safe 0 -i parts.txt -c copy "out.mp4"

Но теперь возникает проблема:

Так как мне нужно перекодировать p art # 2, чтобы наложить изображение PNG, я снова получаю 1-2-секундную проблему со стоп-кадром в начале, и я не могу, хоть убей, вычислить «эквивалент» -copyinkf для перекодирования видео.

Прямо сейчас я накладываю изображение PNG следующим образом:

ffmpeg -i "p2_muted.mp4" -i "../banner.png" -filter_complex "[1][0]scale2ref[i][v];[v][i]overlay" -c:a copy "p2_edited.mp4"

Итак, мой вопрос, что будет эквивалентом -copyinkf, или в случае, если есть лучший способ чем мой, что бы это было для достижения моей задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...