3

Можно ли обрезать треугольную область из видео, используя фильтры ffmpeg?

Я должен обрезать эту область из входного видео 1920 x 1080, затем я должен повернуть эту область на 90 градусов четыре раза. Выходное видео должно выглядеть так:

https://dl.dropboxusercontent.com/u/88221856/cropping.png

Это изображение перед:

Это изображение после:

Заранее спасибо!

1 ответ1

9

Создайте эффект калейдоскопа с помощью ffmpeg

калейдоскоп

Пример команды

ffmpeg -i video.mkv -loop 1 -i mask.png -filter_complex \
"[1:v]alphaextract,split[a1][a2]; \
 [0:v][a1]alphamerge,transpose=1[e]; \
 [0:v][a2]alphamerge,transpose=2[w]; \
 [0:v]vflip,hflip[s]; \
 [0:v]pad=ih*2:ih*2:x=(ow-iw)/2[n]; \
 [n][s]overlay=W/2-w/2:W/2[bg]; \
 [bg][e]overlay=W/2:H/2-h/2[bg2]; \
 [bg2][w]overlay=0:H/2-h/2" \
-codec:a copy output.mkv

Фильтры FFmpeg используются

  • alphaextract и alphamerge для альфа-компонента
  • split чтобы сделать несколько копий альфа-компонента
  • transpose/vflip/hflip или любая другая комбинация похожих фильтров, которые вы предпочитаете
  • pad для создания фона "холст"
  • overlay для размещения каждого видео на холсте

Заметки

  • Используйте недавний ffmpeg . Либо загрузите сборку Linux для ffmpeg либо следуйте пошаговому руководству по компиляции ffmpeg .

  • Вам нужно будет сделать изображение, содержащее альфа-маску. Он должен быть того же размера кадра, что и ваш видеовход, поэтому если video.mkv имеет размер 1920x1080, то mask.png также должен иметь размер 1920x1080. Вы можете скачать альфа-маску из этого примера.

  • split был использован, потому что я не смог успешно повторно использовать одну и ту же метку ссылки для вывода alphaextract , и я никогда ранее не использовал фильтры alpha* , поэтому пример можно было сократить.

  • Черный цвет фона фильтра pad виден по углам. Фильтр crop можно использовать, чтобы удалить его, если вы предпочитаете.

  • Звук копируется в поток, а не перекодируется.

  • См. Руководство по кодированию FFmpeg и x264 для получения дополнительной информации о контроле качества вывода.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .