我正在构建一个平台,允许用户将一些视频文件(20-40 秒)从手机上传到服务器。所有这些上传目前都运行良好,文件通过nodejs云功能存储在谷歌存储桶中。
现在我想创建一个 gcp 转码器作业,它将上传的 .mp4 视频文件转换为 .hls 视频流,其中 .ts 块的持续时间为 2-4 秒。
可能成功的场景:
- 用户上传mp4文件[Done]
- 上传触发后的 .mp4 文件
functions.storage.object().onFinalize
[Done]
-
onFinalize
触发 Google Cloud Job,将 mp4 转换为 hls。[我们在这儿]
- .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 上的工具。
完成此任务的大致事件流程可能类似于:
- 将 MP4 上传至存储桶
- pubsub 由 upload 事件触发 https://cloud.google.com/storage/docs/pubsub-notifications
- 这可以触发一个云函数,该函数可以创建一个新的转码器作业 https://cloud.google.com/transcoder/docs/how-to/jobs#create-job-from-template-nodejs
- 工作状态更新 pubsub 主题 https://cloud.google.com/transcoder/docs/how-to/create-pub-sub
- 当 pubsub 主题触发云函数时status https://cloud.google.com/transcoder/docs/reference/rest/v1/projects.locations.jobs#status表示工作已完成
- 云函数从bucket中删除原来的mp4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)