V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
xiliu
V2EX  ›  云计算

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

  •  
  •   xiliu · 2019-11-25 15:17:35 +08:00 · 5840 次点击
    这是一个创建于 1852 天前的主题,其中的信息可能已经有所发展或是发生改变。
    给大家安利一个视频转码的方案, 并行处理, 分布式加速, 成本竞争力高, 有图有数据

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

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

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

    用户把需求提交到后台就能干别的去了: 在这个场景的语义,就是用户上传视频文件到 oss, 后面的流程是自动触发函数(这个函数是您的), 他啥也不用做了。
    xiliu
        9
    xiliu  
    OP
       2019-11-26 09:56:31 +08:00   ❤️ 1
    @mamahaha 当然你也可以做成你主动触发, 就是你已经知道 oss 有某个视频了, 然后你主动调用函数, 对这个视频进行转码, 这个时候你可以自己实现成队列的。 至于转码流程你也可以弄成串行(只需要修改下函数工作流 FnF 的编排即可), 您说的省钱, 在函数计算中, 并行和串行花费并不会相差很大, 因为您函数计算的计费模式选择按需付费的, 按执行时间收费,只跟执行这个计算任务具体消耗的资源的时间和内存相关,并不会因为并行弹出来更多的机器资源就会多收费用, 计费: https://help.aliyun.com/document_detail/137980.html
    tianxiaodan123
        10
    tianxiaodan123  
       2019-12-02 12:47:50 +08:00
    我这边看函数代码包限制是 50M,但是我的视频处理服务代码包压缩超过了 50M 该怎么办呢?
    xiliu
        11
    xiliu  
    OP
       2019-12-02 12:52:11 +08:00
    @tianxiaodan123 两种方法:
    1. 比如将 ffmpeg 这种放在 OSS 上,然后第一次启动执行环境(即冷启动)的时候初始化函数将 ffmpeg 下载下来
    2. 直接将代码包的依赖放置在 NAS, 函数计算支持挂载 NAS: https://help.aliyun.com/document_detail/87401.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1085 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:06 · PVG 03:06 · LAX 11:06 · JFK 14:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.