Я не могу применить оверлей поверх оверлея, используя ffmpeg - PullRequest
0 голосов
/ 25 сентября 2019

Как видно из названия, я не могу применить оверлей поверх оверлея.В частности, у меня есть эти слои:

  1. фон
  2. видео
  3. наклейки

И я хочу создать четвертый слой,по размеру 1 и 3 слоя.Итак, порядок, который я хочу иметь:

  1. белый слой
  2. фон
  3. видео
  4. наклейки

Следуя документации, я пришел с:

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 '

Что не так?

1 Ответ

1 голос
/ 25 сентября 2019

Отсутствует точка с запятой (и '+') рядом с концом фильтра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...