Обрезать треугольную область с FFMPEG
Можно ли обрезать треугольную область из видео, используя фильтры ffmpeg?
Я должен обрезать эту область из входного видео 1920 x 1080, затем я должен повернуть эту область на 90 градусов четыре раза. Выходное видео должно выглядеть так:
Это изображение перед:
Это изображение после:
Заранее спасибо!
1 ответ
Сделать эффект калейдоскопа с 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
, Либо загрузите сборку Linuxffmpeg
или следуйте пошаговой инструкции по компиляцииffmpeg
,Вам нужно будет сделать изображение, содержащее альфа-маску. Он должен быть того же размера кадра, что и ваш видеовход, поэтому если
video.mkv
1920x1080, тоmask.png
также должен быть 1920x1080. Вы можете скачать альфа-маску из этого примера.split
был использован, потому что я не смог успешно повторно использовать тот же ярлык ссылки дляalphaextract
вывод, и я никогда не использовалalpha*
фильтры, так что пример может быть сокращен.Черный цвет фона
pad
фильтр виден по углам.crop
Фильтр может быть использован, чтобы удалить его, если вы предпочитаете.Звук копируется потоком, а не перекодируется.
См. Руководство по кодированию FFmpeg и x264 для получения дополнительной информации о контроле качества вывода.