Google云平台:将上传的MP4文件转换为HLS文件
Google Cloud Platform: Convert uploaded MP4 file to HLS file
我正在构建一个平台,允许用户将一些视频文件(20-40 秒)从他们的 phone 上传到服务器。所有这些上传目前运行良好,文件通过 nodejs 云功能存储在 google 存储桶中。
现在我想创建一个 gcp 转码器作业,它将上传的 .mp4 视频文件转换为具有 2-4 秒持续时间的 .ts 块的 .hls 视频流。
可能的成功场景:
- 用户上传 mp4 文件 [完成]
- .mp4 文件上传后触发
functions.storage.object().onFinalize
[完成]
onFinalize
触发 Google Cloud Job,它将 mp4 转换为 hls。 [我们来了]
- .mp4 文件已从 google 存储中删除。
对于创建此类工作的任何帮助,我们将不胜感激。
我在 nodejs 中使用 firebase 云函数。
我会使用 transcoder API in GCP. It supports mp4 input and hls output. See 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 主题会触发云功能
- 云函数从存储桶中删除原始mp4
我正在构建一个平台,允许用户将一些视频文件(20-40 秒)从他们的 phone 上传到服务器。所有这些上传目前运行良好,文件通过 nodejs 云功能存储在 google 存储桶中。
现在我想创建一个 gcp 转码器作业,它将上传的 .mp4 视频文件转换为具有 2-4 秒持续时间的 .ts 块的 .hls 视频流。
可能的成功场景:
- 用户上传 mp4 文件 [完成]
- .mp4 文件上传后触发
functions.storage.object().onFinalize
[完成] onFinalize
触发 Google Cloud Job,它将 mp4 转换为 hls。 [我们来了]- .mp4 文件已从 google 存储中删除。
对于创建此类工作的任何帮助,我们将不胜感激。 我在 nodejs 中使用 firebase 云函数。
我会使用 transcoder API in GCP. It supports mp4 input and hls output. See 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 主题会触发云功能
- 云函数从存储桶中删除原始mp4