文章预览
业务背景 在B站Web投稿页中,封面、分区、标签的推荐功能都需要使用到视频截帧能力。历史上我们通过WebAssembly + FFmpeg来实现视频截帧。从去年开始,开始引入WebCodecs进行高性能截帧,截帧性能有显著提升,从而给用户带来更快速的推荐体验。 但目前WebCodecs只提供了用于解码的能力,并没有提供对应解封装能力,只能自行实现。此前,我们通过mp4box.js以及自行开发的mkv-demuxer,解决了mp4+mkv主流视频格式的解封装问题, 实现了WebCodecs高性能封面截帧方案的落地。但仍存在近 2%的视频格式如flv、avi等,因为无法解封装,而无法体验到WebCodecs的高性能。 针对不同视频格式去做解封装处理,需要进行数据转换,API适配类的工作,存在一定的开发成本。同时,相关的高质量在维护的JS解封装库很少,假如继续针对单个格式去做逐个处理,ROI会很低。 于是,
………………………………