同步音视频处理解决方案
一、背景
当前,各云厂商提供的音视频处理都是异步进行处理的,存在任务需要排队、处理时间长的问题。如果音视频内容是应用自有的,这个问题并不严重,甚至无关紧要,应用完全可以把它处理好再展示给用户。如果是 UGC 的,这就不行了,为了保证音视频适用各平台和维护自身利益,应用要对它进行转多种码率、转多种格式、打水印、切片等,这个过程的耗时通常等于N * 音视频时长(N 是处理次数,具体视功能个数决定),也就是用户平均要等 N *音视频时长,这对用户体验是非常糟糕的。
针对这个问题,又拍云推出了同步音视频处理解决方案,帮助应用实现秒级音视频处理,解决任务排队、处理时间长的问题。
二、应用场景
1)商业直播
商业直播相比个人直播(比如秀场直播),更注重直播结束后的内容传播,为了保证内容传播的价值,通常要对转录的点播进行处理,比如加上片头、片尾,比如去掉中间某一句话、某一小段。
这个时候,便捷、高速的同步处理,可以帮助用户快速预览编辑效果和生成最终内容,避免异步处理等待时间长,及离线编辑下载、处理、再上传带来的弊端。
注:商业直播是指企业或个人使用网络直播进行商业诉求的展现,比如产品发布会直播。
2)UGC 音频
用户上传的音频是各种各样格式的,考虑到兼容多种终端平台和提供稳定的音频质量,需要把音频转码成特定格式、码率、声道。
使用同步音频处理,可以快速生成音频文件,保证用户使用体验,满足平台对内容的要求。
三、使用逻辑
1)同步视频处理
同步视频处理是针对 M3U8(ts)设计,经典使用逻辑如下:
- UGC 上传的视频通常是各种格式的,首先需要把上传上来的各种视频切片成 M3U8(ts)。如果需要打水印,可以在切片的过程中把水印加上去。
- 通过 M3U8 截图,获取视频封面图。以 M3U8 的形式,对外发布视频。
- 如果要对展示的多个视频进行合并,可以使用 M3U8 拼接,它会把多个 M3U8 按提交顺序,合并成一个。
- 如果要从某个视频剪辑一段或者去掉某一段,可以使用 M3U8 剪辑。
除了通过 M3U8 进行截图外,还可以使用源视频进行截图。
2)同步音频处理
同步音频处理是在音频上传完后进行的,把上传的音频处理成特定规定的音频并存储。如下:
- UGC 音频使用 FORM API 进行上传,同时带上必要的音频处理参数。
- 服务端收到音频后,会调用音频处理,音频处理服务按要求处理音频。
- 处理完成后,把音频上传到云存储,同时响应应用音频处理完成。
相关API :同步音频处理。
四、优势
同步视频处理的平均处理时间是 1-2 s,相比异步同类功能,效率飞起来。
同步音频处理一个 3 分钟的音频,处理耗时大概 5 s,相比异步音频转码,效率也是飞起来。
后续我们会继续优化这个解决方案,欢迎您通过售后提出遇到的问题。