Я использую 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% с одной стороны и положу с другой.
Это, вероятно, было бы лучше сделать с помощью фильтра переназначения, но я не уверен, как его использовать.
2
Поделись полной командой и, если сможешь, входами
—
Gyan