FFMPEG nodejs Lambda 函数内部的意外行为
FFMPEG unexpected behavior inside nodejs Lambda function
我正在尝试使用 FFMPEG 将字幕刻录到视频中。我在无服务器 lambda 架构中工作,我们之前通过使用层将 FFMPEG 与 lambda 一起使用,一切正常。
现在我正在尝试使用以下命令在视频中刻录字幕:
ffmpeg -i https://some-bucket.s3.region.amazonaws.com/my-video.mp4 -f mp4 -vf subtitles=sub.srt subtitled-video.mp4
问题是,该命令在我的本地机器或我尝试的任何其他实例中都能完美运行。但是在我的 lambda 函数中,我只得到了没有字幕的原始视频。
起初我以为它可能是我使用的 ffmpeg 构建,但在尝试之后,它在我尝试过的所有其他环境中都能正常工作。
此外,我在 lambda 中的 ffmpeg 作业的输出中没有收到任何错误,一切似乎都正常。就是不烧字幕
希望你能帮我解决这个问题。或者至少给我指出正确的方向。
提前致谢
Lambda 截断了日志,您只能看到日志的末尾。如果日志中间有警告信息,你是看不到的。
我正在处理同样的问题,我发现的错误是没有字体。对于 EC2 实例和 Lambda 函数,如果您不提供字体,则不会像本地计算机那样提供系统字体。
如果没有字体,ffmpeg 命令将无法生成字幕。
我的解决方案是
将字体和字体配置添加到您的 Lambda 层
将环境变量 (FONTCONFIG_PATH) 添加到您的 lambda 函数,以便它知道在哪里可以找到字体。该值应该是您的字体所在的文件夹。在我的例子中,它是 /opt/fonts 因为这就是我捆绑 Lambda 层的方式。
为您的字幕规范添加强制样式
字幕=sample.srt:force_style="FontName=ArialUnicodeMS"
希望能帮到您解决问题。
我正在尝试使用 FFMPEG 将字幕刻录到视频中。我在无服务器 lambda 架构中工作,我们之前通过使用层将 FFMPEG 与 lambda 一起使用,一切正常。 现在我正在尝试使用以下命令在视频中刻录字幕:
ffmpeg -i https://some-bucket.s3.region.amazonaws.com/my-video.mp4 -f mp4 -vf subtitles=sub.srt subtitled-video.mp4
问题是,该命令在我的本地机器或我尝试的任何其他实例中都能完美运行。但是在我的 lambda 函数中,我只得到了没有字幕的原始视频。 起初我以为它可能是我使用的 ffmpeg 构建,但在尝试之后,它在我尝试过的所有其他环境中都能正常工作。
此外,我在 lambda 中的 ffmpeg 作业的输出中没有收到任何错误,一切似乎都正常。就是不烧字幕
希望你能帮我解决这个问题。或者至少给我指出正确的方向。
提前致谢
Lambda 截断了日志,您只能看到日志的末尾。如果日志中间有警告信息,你是看不到的。
我正在处理同样的问题,我发现的错误是没有字体。对于 EC2 实例和 Lambda 函数,如果您不提供字体,则不会像本地计算机那样提供系统字体。
如果没有字体,ffmpeg 命令将无法生成字幕。
我的解决方案是
将字体和字体配置添加到您的 Lambda 层
将环境变量 (FONTCONFIG_PATH) 添加到您的 lambda 函数,以便它知道在哪里可以找到字体。该值应该是您的字体所在的文件夹。在我的例子中,它是 /opt/fonts 因为这就是我捆绑 Lambda 层的方式。
为您的字幕规范添加强制样式
字幕=sample.srt:force_style="FontName=ArialUnicodeMS"
希望能帮到您解决问题。