前言:工作中自己开发的一个需求,将以前多组select合并到一组select来实现多路码流的参数设置。
源码:https://github.com/liuzaijiang/Stream-parameter-configuration-
目前达到的需求是:
1.主码流,从,第三码流,第四码流分别可以独立设置264和265的编码类型,第三码流还可以设置MJPEG;
2.每路码流获取当前的编码类型和其他参数;
3.265由于编码质量唯一,所以不显示编码质量;mjpeg无编码质量,I/P率和码率控制;
4.防闪频率50/60HZ时对应帧率的最大值是50/60帧,MJPEG和4K(8百万设备)下一直都是25/30帧;
5.当主码流或者MJPEG中有一个分辨率大于1080P时,帧率降低到25/30帧;当所有码流中有帧率大于25/30帧的时候,不能设置大于1080P以上的分辨率;
6.分辨率兼容了2,5,6,8百万四种设备
7.每种码流有一个开启的开关并且会有一个状态灯去显示,是否开启。
思路:主要的思路还是把获取到的数据用一个数组存下来,然后根据最主要的select--码流类型的索引配合编码类型的索引去寻找数据,然后更新数据,这里切换码流类型的话所有的select数据都会被更新。
这样我们就知道当前具体是哪路码流的哪路编码了。
由于select的value值是string类型的,所以我这里把码流类型的索引加上编码类型的索引就可以得出上面的组合索引,然后再根据我的规矩,265先放,再放264,依次放入数组中,方便我们查询和存储。(如果说你还想进行扩展:比如扩展编码类型的话可以依照我这个方法再进行添加,最后只需要更改一下currentCodetype这个函数的判断条件,和数组初始化的次数即可。)
总之这样做的优势就是增加了用户体验吧,节省了HTML语言,以前需要把每个情况都写一个select模块来显示和实现,现在只需要一个,不过这个需要的逻辑就比较强大了,还需要继续努力,先把做的一小部分mark一下。
效果图片