2020年6月9日更新:系统模块化架构,构建积木式系统,修复一些BUG,开始构建fluentAPI流系统
随着这两年SAAS和serverless的流行,我开始重新思考流媒体系统的未来,流媒体的未来一定是模块化的,一定是SAAS化的,一定是serverless化的,免维护,服务器作为完全的流系统存在,不存储任何内容,仅作为转码服务而存在,这个时候就应该重新设计云转码流媒体系统,将其整个系统的功能模块化,让用户以搭积木的方式搭建自己的转码流程,比如转码API、切片API、截图API、动态图API、缩略图API、切片头API、合并视频API,全面模块化,用户自行组装其转码逻辑,由于转码系统不再储存任何内容,则其可作为云服务器分布式架构,一台总控控制数百台服务器,总控针对用户提供SAAS服务,用户后台预配置转码流程,比如用户A登录总控,生成用户A专用的apikey和apisecret,预配置转码流程为:上传视频至七牛云—>调用截图API截图未转码前视频6张—>转码API转码视频至360P/480P/720P三个分辨率—>切片API将转码完成视频切片—>截图API截图切片完成视频截图—>预览图API生成预览图—>动态图API生成动态图—>调用七牛云API上传切片及图片等—>调用删除API删除七牛云原片及转码程序服务器上的内容—>回调通知域名。用户预配置整个流程之后,可设置整合成一条自用API,在其第三方系统中通过apikey和apisecret调用这一条API就可完成所有预设置转码任务,某些较为复杂的操作,比如去跑马灯去水印等,用户可通过总控后台预先配置,最后在API中添加参数进行更加复杂的转码流程,最后总控再使用轮询查询空闲服务器自动分配转码任务。
其整个架构会以fluentAPI的方式进行排列组合。
更新日志
修复字幕srt或者ass文件名带[]或其他特殊符号出错的问题。
分离入库文件夹和上传文件夹,避免上传和入库冲突问题。
重写审核中和未转码前的实时预览和去水印、跑马灯设置中的流媒体API,现在拖动时间轴是实时返回画面截图无需等待,效果极佳。
新增fluentapi,传递视频id、试看时长和分辨率,返回指定试看时长的m3u8流文本,作为模块化的一部分。
试看fluentapi使用介绍
GET: /apifluent/try
headers:{apikey, apisecret}
query:{id:视频ID,duration:试看时长,hd:指定分辨率}
duration和hd为可选项,不传递则直接返回视频支持的最大分辨率的60秒的试看m3u8文本。
return: 试看m3u8文本
此接口支持分发配置,若开启了分发,则会自动分配分发域名,可多个分发服务器负载均衡。
此接口勿直接在前端使用,请在后台调用,根据返回流文本自行构建自己的m3u8路由。
截图



