利用 ffmpeg 进行分布式转码, 弹性高可用

2019-11-25 15:17:35 +08:00
 xiliu
给大家安利一个视频转码的方案, 并行处理, 分布式加速, 成本竞争力高, 有图有数据

https://yq.aliyun.com/articles/727684
5840 次点击
所在节点    云计算
11 条回复
julyclyde
2019-11-25 15:36:50 +08:00
奇怪,你“审核中”的文章,我为什么能查看??
murmur
2019-11-25 15:37:42 +08:00
推广就发 aff 分区,不要冒充技术文章
xiliu
2019-11-25 15:45:30 +08:00
@julyclyde 这个文章之前是发布了的, 然后后面可能作者小改了下, 处于审核中, 您可以看到的还是前面未修改之前的文章
xiliu
2019-11-25 15:48:02 +08:00
@murmur 如果打扰到您不好意思, 抱歉
murmur
2019-11-25 15:53:25 +08:00
@xiliu 没有什么打扰的,v 站可以光明正大的发推广,还有置顶,按版规发帖就行
xiliu
2019-11-25 15:56:04 +08:00
@murmur 第一次, 想着这个也是基于云计算来做的, 但是带了明显云厂商属性, 感谢指正
mamahaha
2019-11-26 04:44:03 +08:00
为啥要并行啊,不都是队列吗?同一时间只允许有一个用户进行转码,用户把需求提交到后台就能干别的去了,这样多省钱啊。
xiliu
2019-11-26 09:50:33 +08:00
@mamahaha 就是你上传文件了,就自动触发函数执行, 函数执行是并行的, 每个函数触发的流程又是可以并行进行转码的。 这个示例展示的是这样的, 解决的是两个问题:

1. 多个视频文件可以同时进行转码, 比如你的场景是很多用户同时提交视频到 oss, 你希望这些提交的视频能够快速转码好, 而不是后提交视频可能一天之后还没有轮到它被转码

2. 单个大视频文件可以进行切片, 切片转码再合并, 加速大视频文件的转码速度, 而且不同目标格式转码也是可以一起并行的

用户把需求提交到后台就能干别的去了: 在这个场景的语义,就是用户上传视频文件到 oss, 后面的流程是自动触发函数(这个函数是您的), 他啥也不用做了。
xiliu
2019-11-26 09:56:31 +08:00
@mamahaha 当然你也可以做成你主动触发, 就是你已经知道 oss 有某个视频了, 然后你主动调用函数, 对这个视频进行转码, 这个时候你可以自己实现成队列的。 至于转码流程你也可以弄成串行(只需要修改下函数工作流 FnF 的编排即可), 您说的省钱, 在函数计算中, 并行和串行花费并不会相差很大, 因为您函数计算的计费模式选择按需付费的, 按执行时间收费,只跟执行这个计算任务具体消耗的资源的时间和内存相关,并不会因为并行弹出来更多的机器资源就会多收费用, 计费: https://help.aliyun.com/document_detail/137980.html
tianxiaodan123
2019-12-02 12:47:50 +08:00
我这边看函数代码包限制是 50M,但是我的视频处理服务代码包压缩超过了 50M 该怎么办呢?
xiliu
2019-12-02 12:52:11 +08:00
@tianxiaodan123 两种方法:
1. 比如将 ffmpeg 这种放在 OSS 上,然后第一次启动执行环境(即冷启动)的时候初始化函数将 ffmpeg 下载下来
2. 直接将代码包的依赖放置在 NAS, 函数计算支持挂载 NAS: https://help.aliyun.com/document_detail/87401.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/622929

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX