多视频源硬解码、编码框架
项目简介
基于FFmpeg和CUVID库构建一套多视频源硬解码、硬编码框架,完成对多路视频文件或视频流的硬解码并硬编码成jpg图像用于人脸检测识别等场景。
进度
- 已完成一个三级流水线形式的视频解码框架,使用trylock形式避免各级阻塞,同时提供一个双队列来匹配各级之间的速度,避免在实时视频流时因阻塞导致丢包等问题;
- 针对H264格式抽掉一定的B帧后再进行硬解码,以减少每路视频的解码压力;
- 使整个框架支持横向、多GPU扩展,进一步提高解码的路数。
需完善点
- 改变trylock队列的单例模式,应用至解码完成后到进行jpg编码中间的队列;
- 为jpg编码器构建一个管理器类,用于横向扩展,提高多路视频的jpeg编码的能力
- 为多路视频的横向扩展提供上层封装,并提供响应的负载均衡的算法;
- 为各级流水线间做速度控制,避免长时间的生产者快于消费者,撑爆队列;
- GPU解码器初始化时间较慢,先对GPU解码器进行预热后再正式开始解码过程。