【问题标题】:Google Cloud Platform: Convert uploaded MP4 file to HLS fileGoogle Cloud Platform:将上传的 MP4 文件转换为 HLS 文件
【发布时间】:2022-01-04 12:49:27
【问题描述】:

我正在构建一个平台,允许用户将一些视频文件(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 存储中删除。

对于创建此类工作的任何帮助将不胜感激。 我正在使用带有 nodejs 的 firebase 云功能。

【问题讨论】:

  • 如果有帮助,请考虑接受一个答案。有关信息,请参阅how does accepting an answer work
  • 嘿@JakeNelson,抱歉耽搁了。感谢您的回答 - 引导我正确的搜索方向。

标签: node.js google-cloud-platform ffmpeg google-cloud-transcoder


【解决方案1】:

我会使用transcoder API in GCP 来执行此操作。它支持mp4输入和hls输出。见supported formats

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

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

  1. 将 MP4 上传到存储桶
  2. pubsub is triggered from the upload event
  3. 这可以触发一个云功能,可以create a new Transcoder job
  4. 工作状态updates a pubsub topic
  5. status 指示工作完成时,Pubsub 主题会触发云功能
  6. 云端功能从bucket中删除原始mp4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2015-09-03
    • 2016-01-11
    • 2012-03-06
    • 2021-08-23
    • 2019-12-31
    相关资源
    最近更新 更多