开发者社区> 张医博> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

媒体处理 MTS-工作流

简介: 基础分析 在使用媒体处理(MTS) 产品的工作流转码时,我们先补充基础认知。一句话概括,工作流就是一套模版在特定条件自动触发对视频进行处理的流程,那我们先要知道类型的视频文件支持工作流。 视频:3gp, asf, avi, dat, dv, flv, f4v, gif, m2t, m3u8, m4v, mj2, mjpeg, mkv, mov, mp4, mpe, mpg, mpeg, mts, ogg, qt, rm, rmvb, swf, vob, wmv, webm。
+关注继续查看

基础分析

在使用媒体处理(MTS) 产品的工作流转码时,我们先补充基础认知。
一句话概括,工作流就是一套模版在特定条件自动触发对视频进行处理的流程,那我们先要知道类型的视频文件支持工作流。

  • 视频:3gp, asf, avi, dat, dv, flv, f4v, gif, m2t, m3u8, m4v, mj2, mjpeg, mkv, mov, mp4, mpe, mpg, mpeg, mts, ogg, qt, rm, rmvb, swf, vob, wmv, webm。
  • 音频:aac, ac3, acm, amr, ape, caf, flac, m4a, mp3, ra, wav, wma, aiff。
  • 另类:没有后缀的文件也会触发工作流,触发后再判断是否在上述的视频封装格式内。

也就是说只有上述几个条件的音视频才能触发工作流,除此之外是不会触发工作流的。工作流是和 OSS bucket 关联的,常用在有新文件上传到 OSS 时触发工作流的转码。

案例分析 NoneExistFileURL

背景:

该案例是 Z 某调用 QueryMediaListByURL 接口时,返回的的 medialist 不存在,NoneExistFileURL 是 OSS 的存储地址。

1

QueryMediaListByURL:

当上传文件到 OSS 触发工作流转码时,如果转码完成,可以通过 QueryMediaListByURL 接口查询转码完成后的媒体信息。这个接口只针对工作流触发的转码任务才能查询。

或者存量视频可以让用户先调用 AddMedia 添加媒体信息,然后在调用 QueryMediaListByURL

分析:

该案例 Z 某没有获取到 MediaList 内容,无非就两个原因:

  • 客户端不是触发工作流进行的转码,而是 SubmitJobs 进行的转码。
  • 配置的工作流没有触发。

结论:

经过确认是通过工作流转码,但是为什么没有触发呢?查看源文件才发现因为后缀是 QuickTime 的,不在我们上述支持的后缀反馈内,后续将后缀去掉就触发流转码。

http://xxxx.oss-cn-hangzhou.aliyuncs.com/m3u8MultibitrateIn64/d13f51ca-de4b-11e8-a0b9-112a0a.quicktime

案例分析 MPS 上云

背景:

客户端开发的 APP 将文件上传到 OSS ,调用转码服务后,将转码完成后返回一个 CDN 地址让客户端 APP 可以播放。

分析:

整个架构中涉及到四种产品 OSS、 CDN、 MPS 、MNS ,如果完整的串联起来提供高性能服务,由我给大家通过两张图介绍一下。

2

图中完整的将所有产品串联起来,关键缓解是视频上传、视频转码两个时间耗时。建议几个注意点:

  • app 要有完整的上传记录,包括 OSS requestID ,出现问题时便于让阿里云排查。
  • 客户的业务服务器提供回调的接口要记录日志,并且保证网络良好,能和 mns 正常通信。
  • 上传的视频一定遇见做好后缀判断和封装格式判断。
  • 第五步拼装客户端播放的 CDN 地址,客户可以通过 QueryMediaList 的接口,传入 mediaID 获取转码完成的输出地址文件后,将域名替换为 CDN 域名即可传给 APP 播放。
  • MPS(MTS) 会投递什么信息给 mns 可以参考,https://help.aliyun.com/knowledge_detail/50627.html 有详细的回调内容。

案例:工作流无法自动触发进行转码

【场景】:

用户设置流工作流自动触发转码,但实际效果工作流没有被触发;

【分析】

  • 1)检查 工作流的输入源(OSS bucket)是否有文件上传,如果没有则不处罚,有的话继续排查
  • 2)检查客户工作流是否设置了智能分析模版,如果设置了智能分析,转码要采用预置智能模版进行转码,因为智能分析的前置条件是动态参数转码不能使用静态的模版
  • 3)与用户确认是否设置了手动触发转码 链接

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
DbVisualizer Personal 7.0 数据库连接工具免安装版本获取,直接解压即可使用!
DbVisualizer Personal 7.0 数据库连接工具免安装版本获取,直接解压即可使用!
77 0
快开启阿里云对象存储 OSS 防误删新功能--版本控制,保护您珍贵的数据
阿里云对象存储 OSS 是保存海量数据的平台,支持丰富的应用。在使用过程中难免会遇到误操作、程序 Bug、覆盖写等导致数据被删除的场景,对于数据的丢失会非常着急,后果也非常严重,甚至某些情况下还会影响你的职业生涯。
1586 0
媒体处理 MTS-截图问题
案例:传入的截图时间无效,无论传多少值,都只截取视频的第一帧 分析: 如果选则是关键帧截图,需要看好关键帧的间隔设置,。可以参考下官网的 java 代码,测试是过是可以生成多张的。 package com.
357 0
媒体处理 MTS-基础问题
案例:出现更换 MTS key 后转码失败 KEY 有两种类型,一个是 BASE64 另外一个是 KMS,如果选择 KMS 需要购买 KMS 的管理服务。如果是 BASE64 的方式自己设定一个 128bit 的 KEY 然后 BASE64 传给 server 端即可。
1076 0
CSS 预处理器框架
CSS 预处理器框架 参考博客:为您详细比较三个 CSS 预处理器(框架):Sass、LESS 和 Stylus 可以按照需求来使用别人的代码 1.
1080 0
面向连接的socket数据处理过程以及非阻塞connect问题
对于面向连接的socket类型(SOCK_STREAM,SOCK_SEQPACKET)在读写数据之前必须建立连接,首先服务器端socket必须在一个客户端知道的地址进行监听,也就是创建socket之后必须调用bind绑定到一个指定的地址,然后调用int listen(int sockfd, int backlog);进行监听。
1237 0
C#处理控制台关闭事件
转自博客:http://www.cnblogs.com/jasondan/p/3499224.html 应用场景 我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭。
1063 0
+关注
张医博
喜欢钻研新的语言,动手实践自己想要学会的知识。
116
文章
0
问答
来源圈子
更多
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载