【问题标题】:How do I use a buffer object as Ffmpeg's source input如何使用缓冲区对象作为 Ffmpeg 的源输入
【发布时间】:2017-01-13 06:02:36
【问题描述】:

我使用 node.js 作为 Web 服务器(fluent-ffmpeg 作为 ffmpeg 库)。

  1. 我在 amazon s3 上有两个视频,当我检索它们时,它们以 Buffer 对象的形式出现。

  2. 我想检索它们、组合它们并将它们发送给客户端,而不必将它们保存为文件。

【问题讨论】:

  • 您能否为您的设置提供更多解释?就像检索缓冲区的场景一样(它是一个 Web 应用程序)
  • 是的,我正在使用 node.js 作为 Web 服务器 - 谢谢。

标签: javascript node.js ffmpeg


【解决方案1】:

有一种情况,您可以将缓冲区存储到内存中,然后从内存中读取以将两者结合起来。但这有一些严重的影响,不建议这样做:

  1. 处理多个缓冲区后内存泄漏。
  2. 在单例应用上同时转换 2 个缓冲区可能会非常慢。

替代方案是:

  1. 使用ffmpeg-stream 将缓冲流写入临时目录。

  2. 然后合并临时文件fluent-ffmpeg

  3. 使用nodeJS创建临时文件的示例node-tmp

相关问题: 1.Merge Multiple Videos using node fluent ffmpeg

  • 另一个建议:

如果这是一组庞大的视频,也就是要合并的专辑(例如每个视频 2Gb),AWS Lambda 之类的服务基本上可以提供帮助。由于该服务存储缓冲区,并且不会在运行多个作业时失败。

【讨论】:

  • 在服务器上创建临时文件在生产中会很繁重吗?无论如何,我都会研究一下 Amazon Lambda。感谢您的详细回答
  • @MarwanSulaiman ,临时文件的好处是可以在获取它们后立即删除它们。也许如果您可以将 S3 视频作为一个完整的对象而不是缓冲区来访问,则无需下载并合并,nodeJS 库就可以访问 S3 上的两个视频(无需手动操作的缓冲区操作)
猜你喜欢
  • 2021-05-26
  • 2015-08-20
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 2017-12-10
  • 1970-01-01
相关资源
最近更新 更多