一文把视频审核架构说得明明白白
本文导读
随着广告、短直等内容在业务增长、拉新中的作用愈发凸显,也对视频审核系统提出了更高的要求。本文针对当前系统的问题、不足和新的需求,提出了新版视频审核系统的设计目标、架构设计、技术选型、主要组件设计。希望本文能为视频审核系统的设计和实现提供一些参考。 01 背景与目标
1.1 视频审核背景
现有视频审核系统由于历史原因,针对不同的业务调用方和业务场景提供了多套视频审核技术方案和服务,且在审核时效、支持的协议完整性等方面存在一定的不足;同时,多套系统并存一直存在较高的运维成本的情况。 由此,需要设计一套统一的视频审核系统架构,将多套服务合并为一套服务,提供统一标准视频审核服务,大幅降低运维成本的同时,提供完整的接口协议支持和更高的审核时效。1.2 设计目标
•审核时效优化: ◦流式完成下载、拆帧、推理、通知四阶段处理;使得整个审核过程为:边下边拆边推边响应。 ◦每阶段内并行处理,提高审核时效。 最终目标:审核时长 = MAX(并行下载、并行拆帧、并行推理)。
2.1 ffmpeg简要介绍
针对不同的编码器、封装协议、传输协议,提供统一的音视频处理接口。 跨平台,兼容200多种编码、180多种封装格式、20多种传输协议。世界上90%以上的音视频开发基于FFmpeg。2.2 API vs 命令行
•基于API FFmpeg提供了一整套的音视频处理库,以统一的API分别完成音视频处理过程中的主要阶段,包括: 采集、解封装、解码、处理&转换、编码、封装、传输等。 其中,各个库提供的API粒度较细,非常适合对音频、图片帧做业务细粒度的自定义加工的场景。
3.1 流式处理框架
任务处理器是视频审核服务的核心组件,一个任务处理器实例包括三个子组件:拆帧引擎、任务驱动器、审核业务对象。通过任务驱动器的调度过程,协调拆帧引擎和审核业务对象两个对象实例完成一个视频任务的下载、拆帧、推理、响应四阶段流式、并行处理过程。 一个视频审核服务内根据容器cpu资源、配置情况,允许多个处理器实例并行完成多个视频处理任务。
3.2 结果服务
关注京东零售技术微信公众号,长按下方二维码, 添加京东零售技术小助理, 备注“进群”,加入技术交流群!与京东零售技术专家们一起切磋!