利用 ffmpeg 进行分布式转码, 弹性高可用 - V2EX
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 6296 次点击
    这是一个创建于 2223 天前的主题,其中的信息可能已经有所发展或是发生改变。
    给大家安利一个视频转码的方案, 并行处理, 分布式加速, 成本竞争力高, 有图有数据

    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     Solana     2680 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 11:53 PVG 19:53 LAX 03:53 JFK 06:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86