如何在流利的 FFMPEG nodejs 中添加多个字幕
How to add multiple subtitle in fluent FFMPEG nodejs
我搜索并找到了一些使用 FFmpeg 命令的命令,但我无法转换为在流畅的 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
这就是我在流畅的 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();
}
但是这样一来,视频中就只出现了第二个字幕。谢谢。
我找到方法了!
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();
}
我搜索并找到了一些使用 FFmpeg 命令的命令,但我无法转换为在流畅的 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
这就是我在流畅的 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();
}
但是这样一来,视频中就只出现了第二个字幕。谢谢。
我找到方法了!
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();
}