Как видно из названия, я не могу применить оверлей поверх оверлея.В частности, у меня есть эти слои:
- фон
- видео
- наклейки
И я хочу создать четвертый слой,по размеру 1 и 3 слоя.Итак, порядок, который я хочу иметь:
- белый слой
- фон
- видео
- наклейки
Следуя документации, я пришел с:
const command = [
'-y', // always overwrite file
'-loop', '1', // one time
'-i', dataObject['bg_src'], // bg image
'-i', dataObject['videos']['main']['src'], // video
'-i', dataObject['fg_src'], // sticker image
'-i', dataObject['fg_src'], // bg image2
'-preset', 'veryfast', // fast encoding
'-crf', '23', // quality
'-vcodec','libx264', // codec
'-t', '3', // time threshold
'-loglevel', '24', // verbose level
'-filter_complex',
'[0:v]pad=ceil(iw/2)*2:ceil(ih/2)*2[bg_src];' + // bg_src: to make width even, export it as [bg_src]
'[2:v]pad=ceil(iw/2)*2:ceil(ih/2)*2[fg_src];' + // fg_src: to make width even, export it as [fg_src]
'[3:v]pad=ceil(iw/2)*2:ceil(ih/2)*2[fg_src2];' + // bg_src: to make width even, export it as [fg_src2]
'color=white,format=rgb24[white_canvas];' + // create white background
'[white_canvas][fg_src2]scale2ref[b][a];' + // make white background same size as [fg_src2]
'[a][b]overlay=0:0[white_canvas_scaled];' + // export it as white_canvas_scaled
'[1:v]scale=%s:-1[video_scaled];' + // video: scale it (width is injected here)
'[white_canvas_scaled][video_scaled]overlay=%s:%s:shortest=1[bg];' + // white background & scaled video
'[bg][bg_src]overlay=0:0[bg2]', // bg_src overlay here
'[bg2][fg_src]overlay=0:0', // fg_src overlay here
FileService.photoPath + '/output.mp4'];
Но в последней команде происходит сбой, и я получаю:
Невозможно найти подходящий выходной формат для '[bg2] [fg_src]оверлей = 0: 0 '
Что не так?