admin管理员组

文章数量:1607970

一、前言

大概在8年前就开始用ffmpeg做视频解码的显示,第一个版本就100行代码左右,功能极其简单,就是开个线程解码视频流转成图片发给主界面绘制。时间过得真快,从当初的一胎到现在二胎都上学了三胎计划中。经过了数十年的不断迭代,客户需求的不断变更,中间经历过三五个大版本的迭代,形成现在的版本,本次迭代属于大版本的迭代,所有内核代码整体架构全部重写,对于这种大版本的改动,根据以往的经验,一定是要静下心来才能完成的,每一个细节都要仔细打磨,而且尽量做到代码的复用性和耦合性平衡,能复用的就复用,能独立成组件的就独立到组件中。

本次迭代主要解决的一个问题是共享解码线程的问题,随着监控设备的增多,一个软件中可能有多个通道或者多个界面打开同一个视频流地址,比如主界面在实时预览,地图界面双击打开了某个通道预览,按照之前的做法,每次打开都是重新实例化解码线程,重新打开视频流等,理论上有点浪费资源,毕竟已经存在打开过,可以共享对应的数据,大大减轻网络压力以及设备推流的压力,现在很多的网络摄像机设备为了追求极致性价比,硬件配置做的很低减轻成本,基本上都最多支持8路推流,超过了就无法再次推流,所以我们需要在同一个软件上共享解码。早期的海康大华的客户端没有这个机制,现在的

本文标签: 凶残线程音视频性能完美