Как добавить несколько субтитров в fluent FFMPEG nodejs

#ffmpeg #fluent-ffmpeg

Вопрос:

Я искал и нашел некоторые команды, которые используют команды FFmpeg, но я не могу конвертировать для работы в fluent FFmpeg, поэтому прошу помочь мне.

Это команда, которую я нашел в другом ответе

 ffmpeg -i $movie.mov -i $sub_en.srt -i $sub_de.srt  -map 0:v -map 0:a -map 1 -map 2  -c:v copy -c:a copy -c:s srt  -metadata:s:s:0 language=eng -metadata:s:s:1 language=ger  $output.mkv  

Вот как я добавил поток субтитров в fluent FFmpeg.

 ffmpeg()  .addInput("./sample3.mp4")  .addInput("merged.wav")  .outputOptions(  "-vf subtitles=./subt/114.srt:force_style='Alignment=10,FontName=QCF2604,Fontsize=18,MarginL=5,MarginV=25,Outline=0'"  )  .outputOptions(  "-vf subtitles=dd.srt:force_style='Alignment=1,FontName=QCF2604,Fontsize=18,MarginL=5,MarginV=25,Outline=0'"  )  .outputOptions("-shortest")   .output("./test.mp4")  .on("end", function () {  console.log("conversion ended");  callback(null);  })  .on("error", function (e) {  console.log("error: ", e.code, e.msg, e);  callback(e);  })  .run(); }  

Но таким образом, на видео появляется только второй подзаголовок. Спасибо.

Ответ №1:

Я нашел способ!

 ffmpeg()  .addInput("./sample3.mp4")  .addInput("./ayahs/114.png")  .addInput("merged.wav")   .addInput("color=black:s=600x1000:r=25") // Background Overlay  .inputFormat("lavfi")   .complexFilter([  subtitles=./subt/114.srt:force_style='Alignment=10,FontName=QCF2604,Fontsize=14,MarginL=5,MarginV=25,Outline=0'[subt1]", // arabic subtitle  "[subt1]subtitles=./subt/114_trans.srt:force_style='Alignment=2,FontName=FML-Leela,Fontsize=8,MarginL=15,MarginV=115,Outline=0'", // malayalam subtitle  ])   .outputOptions("-shortest")  .output("./test.mp4")  .on("end", function () {  console.log("conversion ended");  callback(null);  })  .on("error", function (e) {  console.log("error: ", e.code, e.msg, e);  callback(e);  })  .run(); }