Обрезать треугольную область с 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.mkv1920x1080, тоmask.pngтакже должен быть 1920x1080. Вы можете скачать альфа-маску из этого примера.splitбыл использован, потому что я не смог успешно повторно использовать тот же ярлык ссылки дляalphaextractвывод, и я никогда не использовалalpha*фильтры, так что пример может быть сокращен.Черный цвет фона
padфильтр виден по углам.cropФильтр может быть использован, чтобы удалить его, если вы предпочитаете.Звук копируется потоком, а не перекодируется.
См. Руководство по кодированию FFmpeg и x264 для получения дополнительной информации о контроле качества вывода.