Drawtext, drawbox или наложение только на один кадр с использованием FFmpeg

Я использую AV-фильтры drawtext и drawbox в FFmpeg, две из самых плохо документированных функций, известных человеку.

Я изо всех сил пытаюсь понять, могу ли я использовать их только в одном кадре, то есть в 22-м кадре, и как это сделать.

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

ffmpeg -i test.wmv -y -b 800k -f flv -vcodec libx264 -vpre default -s 768x432 \
  -g 250 -vf drawtext="fontfile=/home/Cyberbit.ttf:fontsize=24:text=testical:\
  fontcolor=green:x=100:y=200" -qscale 8 -acodec libfaac -sn -vstats out.flv

в документации упоминаются два элемента: n и t< /сильный>. Однако, кажется, я могу использовать их только в x и y. Ни в тексте, ни даже в качестве других параметров.

Любая помощь или руководство по FFmpeg будут с благодарностью приняты.


person waxical    schedule 02.11.2011    source источник
comment
возможный дубликат drawbox ffmpeg в заданном кадре   -  person Jannes    schedule 25.02.2015


Ответы (1)


Отличный пример того, как FFmpeg всегда держит вас в напряжении, это тривиально сделать с помощью drawtext и чрезвычайно болезненно с drawbox.

Суть в том, что drawtext включает параметр draw:

draw
Установите выражение, указывающее, должен ли быть отрисован текст. Если выражение оценивается как 0, текст не рисуется. Это полезно для указания того, что текст должен отображаться только при соблюдении определенных условий.

Итак, чтобы отображать текст только в кадре 22:

ffmpeg -i in.wmv -vf drawtext="fontfile=font.ttf:text='blah':draw='eq(n,22)'" out.flv

drawbox не имеет параметра draw, и нет общего способа его эмулировать, поэтому вам остается сделать что-то вроде извлечения части видео, на которую вы хотите поместить блок, а затем наложить ее со смещением:

ffmpeg -i in.wmv -t 1 -ss 10 -vf drawbox=10:10:20:20:red boxed.flv
ffmpeg -i in.wmv -itsoffset 10 -i boxed.flv -filter_complex overlay out.flv

(хотя это оставит последний кадр boxed.flv видимым навсегда) или разбить видео на несколько частей, нарисовать нужные части, а затем снова объединить.

person blahdiblah    schedule 03.08.2012
comment
Drawbox (и drawtext) в наши дни имеют возможности редактирования видео, которые позволяют вам делать то же самое в общем виде. stackoverflow.com/questions/17339841/ - person Jannes; 25.02.2015