媒体处理 MPC
媒体处理(Media Processing Center,简称MPC)是一种多媒体数据处理服务,通过经济、弹性和高可扩展的转换方法,将存储于OBS上的音视频转码为适应各种终端(如PC、TV、Phone等)播放的格式,它还实现了抽帧截图、图片水印、视频加密、转动图等功能,满足多样化的业务场景需求。
功能特性
1、音视频转码:支持多种音视频编码格式,如H.264、H.265、MPEG2、MPEG4、AAC、MP3等。
2、视频转封装:转换视频的封装格式,不改变其分辨率、码率等参数,支持输入MP3、MP4、FLV、TS,输出HLS、MP4。
3、视频转动图:截取视频文件中的片段生成GIF等格式的动图文件。
4、视频水印:在视频上添加图片或文字水印,支持PNG、JPG、JPEG格式。
5、视频截图:截取视频某一特定帧并生成JPG格式的图片,支持采样截图和指定时间点截图。
6、视频加密:采用HLS AES128标准协议对转码后的HLS视频内容进行加密。
7、转码消息订阅:提供转码完成、启动、截图完成等消息通知服务。
SDK与API
MPC提供了多种开发语言的SDK,包括Java、Python、Go,帮助用户轻松实现二次开发,MPC还提供了REST风格的API,支持通过HTTP/HTTPS请求调用,实现音视频转码、视频转封装、转动图、抽帧截图等操作。
使用示例
以下是使用Go SDK进行媒体处理的一个简单示例:
package main import ( "fmt" "github.com/huaweicloud/huaweicloudsdkgov3/core/auth/basic" "github.com/huaweicloud/huaweicloudsdkgov3/core/config" "github.com/huaweicloud/huaweicloudsdkgov3/services/mpc/v1" "github.com/huaweicloud/huaweicloudsdkgov3/services/mpc/v1/model" "os" ) func main() { ak := os.Getenv("SDK_AK") sk := os.Getenv("SDK_SK") projectId := os.Getenv("PROJECT_ID") securityToken := os.Getenv("SECURITY_TOKEN") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). WithSecurityToken(securityToken). Build() client := mpc.NewMpcClient( mpc.MpcClientBuilder(). WithEndpoint("https://mpc.region01.myhuaweicloud.com"). WithCredential(auth). WithHttpConfig(config.DefaultHttpConfig()). Build(), ) request := &model.ListTranscodingTaskRequest{ TaskId: &[]int64{1900293}, } response, err := client.ListTranscodingTask(request) if err == nil { fmt.Printf("%+v ", response) } else { fmt.Println(err) } }
常见问题解答(FAQs)
Q1: MPC支持哪些音视频编码格式?
A1: MPC支持多种音视频编码格式,包括但不限于H.264、H.265、MPEG2、MPEG4、AAC、MP3等。
Q2: 如何获取MPC SDK?
A2: 可以通过华为云官方文档或GitHub仓库获取MPC SDK,以Go SDK为例,首先需要安装Huawei Cloud SDK Go v3,然后引入相应的依赖包即可。