Я использую FFMPEG для слияния равностороннего изображения с равносторонним видео. Изображение масштабируется по размеру видео, а затем мне нужно отрегулировать поворот изображения на 90 градусов, чтобы я обрезал 25% слева и поместил его справа.

Проблема в том, что ширина увеличивается до 3458 с этим процессом, и я получаю черную линию по краю.

[1:v]scale=3456:1728[hs11];
[hs11]colorkey=0x00ff00:0.9:0.1[hs12];
[hs12]split=2[hs1l][hs1r];
[hs1l]crop=out_w=864:out_h=1728:x=0:y=0[hs1lx];
[hs1r]crop=out_w=2592:out_h=1728:x=864:y=0[hs1rx];
[hs1rx][hs1lx]hstack=inputs=2[hs13];

Вот команда для этой части с беглым FFMPEG

  filter.push({filter: 'scale', options: `${width}:${height}`, inputs: `[${index+1}:v]`, outputs: `[hs${index+1}1]`})
  filter.push({filter: 'colorkey', options: '0x00ff00:0.8:0.1', inputs: `[hs${index+1}1]`, outputs: `[hs${index+1}2]`})
  filter.push({filter: 'split',options: '2', inputs: `[hs${index+1}2]`, outputs: [`[hs${index+1}l]`,`[hs${index+1}r]`]})
  filter.push({filter: 'crop',options: {out_w: width * 0.25, out_h: height, x: 0, y: 0}, inputs: `[hs${index+1}l]`, outputs: `[hs${index+1}lx]`})
  filter.push({filter: 'crop',options: {out_w: width * 0.75, out_h: height, x: width * 0.25, y: 0}, inputs:`[hs${index+1}r]`, outputs: `[hs${index+1}rx]`})
  filter.push({filter: 'hstack',options: {inputs : 2}, inputs: [ `[hs${index+1}rx]`, `[hs${index+1}lx]`], outputs: `[hs${index+1}3]`})
  filter.push({filter: 'overlay', options: {enable: `between(t,${options.start},${options.end})`}, inputs: [init,`[hs${index+1}3]`], outputs: `[hs${index+1}x]`})

Вот одно из изображений, которое я настраиваю.

Я пытаюсь поместить этот текст в центр, отсюда 25% с одной стороны, а с другой.

Это, вероятно, было бы лучше сделать с помощью фильтра переназначения, но я не уверен, как это использовать.

0