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

2024-05-06

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

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

可能成功的场景:

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

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


我会使用GCP 中的转码器 API https://cloud.google.com/transcoder/docs/quickstart。它支持mp4输入和hls输出。看支持的格式 https://cloud.google.com/transcoder/docs/concepts/overview#supported_inputs_outputs

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

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

  1. 将 MP4 上传至存储桶
  2. pubsub 由 upload 事件触发 https://cloud.google.com/storage/docs/pubsub-notifications
  3. 这可以触发一个云函数,该函数可以创建一个新的转码器作业 https://cloud.google.com/transcoder/docs/how-to/jobs#create-job-from-template-nodejs
  4. 工作状态更新 pubsub 主题 https://cloud.google.com/transcoder/docs/how-to/create-pub-sub
  5. 当 pubsub 主题触发云函数时status https://cloud.google.com/transcoder/docs/reference/rest/v1/projects.locations.jobs#status表示工作已完成
  6. 云函数从bucket中删除原来的mp4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐