Google Cloud Platform:将上传的 MP4 文件转换为 HLS 文件
Posted
技术标签:
【中文标题】Google Cloud Platform:将上传的 MP4 文件转换为 HLS 文件【英文标题】:Google Cloud Platform: Convert uploaded MP4 file to HLS file 【发布时间】:2022-01-04 12:49:27 【问题描述】:我正在构建一个平台,允许用户将一些视频文件(20-40 秒)从手机上传到服务器。目前所有这些上传都运行良好,文件通过 nodejs 云功能存储在谷歌存储桶中。
现在我想创建一个 gcp 转码器作业,它将上传的 .mp4 视频文件转换为 .hls 视频流,其中 .ts 块的持续时间为 2-4 秒。
可能的成功场景:
-
用户上传 mp4 文件[完成]
.mp4 文件上传后触发
functions.storage.object().onFinalize
[完成]
onFinalize
触发 Google Cloud Job,它将 mp4 转换为 hls。 [我们在这里]
.mp4 文件已从 Google 存储中删除。
对于创建此类工作的任何帮助将不胜感激。 我正在使用带有 nodejs 的 firebase 云功能。
【问题讨论】:
如果有帮助,请考虑接受一个答案。有关信息,请参阅how does accepting an answer work。 嘿@JakeNelson,抱歉耽搁了。感谢您的回答 - 引导我正确的搜索方向。 【参考方案1】:我会使用transcoder API in GCP 来执行此操作。它支持mp4输入和hls输出。见supported formats
请注意,视频长度必须大于 5 秒。 如果它们的长度不能达到 5 秒,则可以避免使用此 API 并使用 AppEngine 上的工具。
完成此任务的大致事件流程可能类似于:
-
将 MP4 上传到存储桶
pubsub is triggered from the upload event
这可以触发一个云功能,可以create a new Transcoder job
工作状态updates a pubsub topic
当status 指示工作完成时,Pubsub 主题会触发云功能
云端功能从bucket中删除原始mp4
【讨论】:
以上是关于Google Cloud Platform:将上传的 MP4 文件转换为 HLS 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何将查询结果保存在 Google Cloud Platform 中?
将 Google Cloud Platform 的错误报告与 ExpressJS 一起使用
如何将 Google Cloud Platform Pub/Sub 消息推送到 C# 桌面应用程序
如何将 gitlab 存储库自动部署到 Google Cloud Platform?