标题:无心插柳柳成荫/万能的添加地址模块/一个播放地址带上各种参数
作者:liudianwu
日期:2025-10-15 08:39
内容:
## 一、前言说明
之前整个视频拉流播放组件,已经实现了一个url地址带上各种参数,这样可以涵盖所有可能的应用场景,比如rtsp视频流指定tcp方式采集,本地摄像头指定分辨率帧率格式,桌面采集指定屏幕索引和区域,保存视频文件指定是否开启编码264或265,等等林林种种,说到这里还是很佩服自己的,通过这十几年的潜心研究,专注开发,无数客户的反馈,疯狂迭代和改进,才能考虑到这么的细致。
既然底层是已经支持了万能的url,那么提供一个万能的添加地址界面模块,越发强烈,势在必行,之前是让用户手动填写,尽管提供了非常细致详细的手册,但是还是无济于事,只有非常聪明的用户,才知道如何规范的填写,做软件开发就是这样,必须把用户往小白方面想,然后才能做出易用的软件,永远不要以为用户是你,知道如何操作使用,绝大部分的用户都是很懒的,才有了一键添加之类的傻瓜式操作。
### 1.1 特别提示
1. 由于编解码涉及到很多参数,一般都按照默认参数进行处理。
2. 部分用户有时候希望通过填入的播放地址就带上这些信息,比如通信协议、桌面采集的分辨率、编码保存是否转码、转码是否缩放原图等。
3. 各种参数设置有个优先级,优先取地址中带的,没有带则取结构体中的,还没有则取默认值。
4. 有些值会根据具体情况自动调整,比如本地设备采集没有硬解码,udp开头的视频流强制用udp协议,有些不支持硬解的格式自动将硬解码=none。
5. 对于需要在地址中指定参数,对应占位符不填的需要占位符留空,不可以跳过。
6. 占位符中填了对应参数的必须严格按照指定的格式要求,不按照则很可能导致解析失败。
7. 参数用英文竖杠 | 隔开。
8. **监控解码组件支持各种场景需求的格式,你能想到的情况都考虑到了,经过近十年的长期实战积累而成。强烈建议看完下面的格式要求。**
### 1.2 通用字段
1. **encode开头的参数表示是编码用的,也就是保存文件,只有当开启录像存储的时候才会用到,如果要重新编码,系统设置那边视频参数编码下拉框要选择自动,默认可能是不编码。**
2. encodeVideoRatio表示视频压缩比率,对应bit_rate的值,在不改变分辨率的情况下,通过调整这个参数来控制保存文件体积的大小。**如果值大于1,则表示关键帧间隔(也叫 I 帧间隔),比如50则关键帧间隔50,可以极大的提高压缩比并降低文件体积。默认保存视频用的间隔是原视频流的fps。目前不是很建议调整保存视频的关键帧间隔,可以小于fps,不建议大于fps,如果间隔超过了fps ..