Google Cloud Platform:将上传的 MP4 文件转换为 HLS 文件

Pet*_*eem 3 ffmpeg node.js google-cloud-platform google-cloud-transcoder

我正在构建一个平台,允许用户将一些视频文件(20-40 秒)从手机上传到服务器。所有这些上传目前都运行良好,文件通过nodejs云功能存储在谷歌存储桶中。

现在我想创建一个 gcp 转码器作业,它将上传的 .mp4 视频文件转换为 .hls 视频流,其中 .ts 块的持续时间为 2-4 秒。

可能成功的场景:

  1. 用户上传 mp4 文件[完成]
  2. 上传触发后的 .mp4 文件functions.storage.object().onFinalize [完成]
  3. onFinalize触发 Google Cloud Job,将 mp4 转换为 hls。[我们在这儿]
  4. .mp4 文件已从 Google 存储中删除。

将不胜感激任何有关创造此类工作的帮助。我正在将 firebase 云功能与 nodejs 一起使用。

Jak*_*son 5

我将使用GCP 中的转码器 API来执行此操作。它支持mp4输入和hls输出。查看支持的格式

请注意,视频长度必须大于 5 秒。如果它们的长度不能达到 5 秒,也许可以避免使用此 API 并使用 AppEngine 上的工具。

完成此任务的大致事件流程可能类似于:

  1. 将 MP4 上传至存储桶
  2. pubsub 由 upload 事件触发
  3. 这可以触发一个云函数,该函数可以创建一个新的转码器作业
  4. 作业状态更新 pubsub 主题
  5. 当状态指示作业完成时,Pubsub 主题会触发云功能
  6. 云函数从bucket中删除原来的mp4