影音串流辛酸史

影音串流的解决方案有很多,可以自己从 IaaS 架设,像是使用 AWS/GCP/Azure 启动虚拟主机并安装适合的开源软件,也可以直接使用别人的串流 SaaS,这边分享我们从以前到现在使用过的服务以及辛酸史。

跟着别人选 → Vimeo

由於许多线上课程平台都采用 Vimeo,加上收费较为固定,又不限定使用流量,因此我们一开始也是选择 Vimeo,但是缺点是储存空间有上限,如果要提高上限需要转更高阶的版本,价钱也会三级跳。

Podcast 需求 → Wowza

後来因为产品增加了纯音档的 Podcast 功能,Vimeo 仅能处理影音内容,因此导入了 Wowza,Wowza 有两种收费模式,一种是 license 的方式,可以在 AWS Marketplace 直接启动串流主机,并且输入序号即可,另一种是使用 Wowza cloud,也就是他们的 SaaS 服务。前者需要自己管理主机,相对的流量/储存费用也较低,後者则是流量与储存费用都会比较高。

线上录音 → 原声音档

由於後来新增了在线录音的功能,Wowza 较不容易支援且成本上比起直接原生差不了太多,後来就直接采用 S3 + Cloudfront 的方式进行,但这种方式也就不是串流,意即就算使用者暂停播放,档案还是会被载完。

Vimeo 大转弯 → Swarmify

由於 Vimeo 政策调整,导致我们的成本增加快十倍,也就是强迫我们必须升级到下一阶段,即使我们储存空间没有超过。好险半年前就有感觉到 Vimeo 并非长久之计,持续性都有在研究适合的解决方案,後来采用了 Swarmify,是 Wordpress 常用的影片加速套件,采用 CDN 的方式将影片进行快取,进而串流加速,收费方式跟原先的 Vimeo 接近,较为可控。

用户抱怨 → Cloudflare stream

没想到即使花了半年的时间整合与测试,上线後还是疯狂有客户抱怨,後来发现问题在於 Swarmify 如果多人同时观看时,好像会变得非常的卡顿,除此之外,因为我们无法控制快取失效的时间,导致有些影片常常被重新快取,使得流量费用大增,若是将流量费用跟 Swarmify 费用加起来,其实也跟改方案後的 Vimeo 差不多,此时的我们已心灰意冷。

这时候看到社群上被 Vimeo 影响的大大们,有讨论到 Cloudflare stream 的解决方案,半年前有研究过但是费用貌似跟新版本 Vimeo 差不多,因此没有采用,但是这次重新评估後,决定转移到上面,原因有几个:

  1. 统计数据有 API,可以转移成本给客户
  2. 可动态调整储存空间大小,流量费用以观看分钟

虽然成本上仍是很高,但是稳定性确实也高出不少,最重要的是播放器的支援度比 Swarmify 还高很多,Swarmify 的很多播放事件都难以串接,文件也较不齐全。然而,Cloudflare stream 也不是仙丹,实际使用上也发现许多的问题,像是有时候不能付款加大空间(应该是bug)、手机播放器不能调整画质等,这些也只能等他们改善。

总结

目前影片串流采用 Cloudflare stream,音档则是直接用 S3 + Cloudfront,仍在持续寻找适合的串流服务,目前也正在观望 filestack 这一套,若是读者对於此领域有研究,我们很希望能听听你的建议。


<<:  Day#29 对话(2)

>>:  [Day29] 立即函式 IIFE

第13天 - (配第11天) 修改MySQL资料表内容,配合下拉式选单

今天内容要搭配【第11天的文章】中的【staff_edit.php (里面含有 INPRUT做修改的...

Day 11:批次修改!!

昨天体验了一些快捷键和命令,今天要讲的是在 vim 中也很常用的搜寻与取代 搜寻与取代 vim 的搜...

Day1 - Shioaji API介绍及Q&A目录

tags: 永丰 APIs 线上金流收付款 Shioaji 程序交易 Shioaji API介绍 S...

D30: 工程师太师了: 第16话

工程师太师了: 第16话 杂记: 今天终於是第三十天了, 漫长的三十天, 每天都要努力发文, 有监於...

Day 28 | AI & 深度学习的应用

剩下几天的时间,要再分享其它实作内容似乎有些困难,那麽大家轻松一点,今天就来谈谈我们所学这些技术的应...