## 一、前言
在推流领域,尤其是监控行业,现在主流设备基本上都是265格式的视频流,想要在网页上直接显示监控流,之前的方案是,要么转成hls,要么魔改支持265格式的flv,要么265转成264,如果要追求实时性,那就只有一种方案,就是转码,强制转成264,然后用webrtc显示。当然,如果用户觉得后台修改摄像头配置改成264可以接受,那又是另外一回事了。
为什么webrtc不支持265?据说是因为专利的原因,近些年说是解决了专利问题,现在谷歌浏览器直接内置了265的解码,在新版的浏览器已经支持了265的webrtc,目前谷歌浏览器默认还未开启265,需要手动设置启动参数,官网说未来这个参数默认开启。
如何设置呢?找到桌面快捷方式,右键属性,目标加上 --enable-features=PlatformHEVCEncoderSupport,WebRtcAllowH265Receive,WebRtcAllowH265Send --force-fieldtrials=WebRTC-Video-H26xPacketBuffer/Enabled
完整内容如下 “C:\Program Files\Google\Chrome\Application\chrome.exe” --enable-features=PlatformHEVCEncoderSupport,WebRtcAllowH265Receive,WebRtcAllowH265Send --force-fieldtrials=WebRTC-Video-H26xPacketBuffer/Enabled
如何确定设置后是否真正支持265?打开网页 https://jsfiddle.net/v24s8q1f/ 右下角看到列表中有H265表示成功。
## 二、效果图
## 三、相关地址
1. 国内站点:[https://gitee.com/feiyangqingyun](https://gitee.com/feiyangqingyun)
2. 国际站点:[https://github.com/feiyangqingyun](https://github.com/feiyangqingyun)
3. 个人作品:[https://blog.csdn.net/feiyangqingyun/article/details/97565652](https://blog.csdn.net/feiyangqingyun/article/details/97565652)
4. 文件地址:[https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g](https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g) 提取码:01jf 文件名:bin_video_push。
## 四、功能特点
1. 支持各种本地音视频文件和网络音视频文件,格式包括mp3、aac、wav、wma、mp4、mkv、rmvb、wmv、mpg、flv、asf等。
2. 支持各种网络音视频流,网络摄像头,协议包括rtsp、rtmp、http等。
3. 支持本地摄像头设备推流,可指定分辨率、帧率、格式等。
4. 支持本地桌面采集推流,可指定屏幕索引、采集区域、起始坐标、帧率等,也支持指定窗口标题进行采集。
5. 可实时切换预览视频文件,可切换音视频文件播放进度,切换到哪里就推流到哪里。预览过程中可以切换静音状态和暂停推流。
6. 可指定重新编码推流,任意源头格式可选强转264或265格式。
7. 可转换分辨率推流,设置等比例缩放或者指定分辨率进行转换。
8. 推流的清晰度、质量、码率都可调,可以节约网络带宽和拉流端的压力。
9. 音视频文件自动循环不间断推流。
10. 音视频流有自动掉线重连机制,重连成功自动继续推流。
11. 支持各种流媒体服务程序,包括但不限于mediamtx、ZLMediaKit、srs、LiveQing、nginx-rtmp、EasyDarwin、ABLMediaServer。
12. 通过配置文件自动加载对应流媒体程序的协议和端口,自动生成推流地址和各种协议的拉流地址。可以通过配置文件自己增加流媒体程序。
13. 可选rtmp、rtmp格式推流,推流成功后,支持多种格式拉流,包括但不限于rtsp、rtmp、hls、flv、ws-flv、webrtc等。
14. 在软件上推流成功后,可以直接单击网页预览,实时预览推流后拉流的画面,多画面网页展示。
15. 软件界面上可单击对应按钮,动态添加文件和目录,可手动输入地址。
16. 推拉流实时性极高,延迟极低,延迟时间大概在100ms左右。
17. 极低CPU资源占用,4路主码流推流只需要占用0.2%CPU。理论上常规普通PC机器推100路毫无压力,主要性能瓶颈在网络。
18. 可以推流到外网服务器,然后通过手机、电脑、平板等设备播放对应的视频流。
19. 每路推流都可以手动指定唯一标识符(方便拉流/用户无需记忆复杂的地址),没有指定则按照策略随机生成hash值。也支持自动按照指定标识后面加数字的方式递增命名。比如设置标识为字母v,策略为标识递增,则每添加一个对应的推流码命名依次是v1、v2、v3等。
20. 根据推流协议自动转码格式,默认策略按照选择的推流协议,比如rtsp支持265而rtmp不支持,如果是265的文件而选择rtmp推流,则自动转码成264格式再推流。
21. 音视频同步推流,在拉流和采集的时候就会自动处理好同步,同步后的数据再推流。
22. 表格中实时显示每一路推流的分辨率和音视频数据状态,灰色表示没有输入流,黑色表示没有输出流,绿色表示原数据推流,红色表示转码后的数据推流。
23. 自动重连视频源,自动重连流媒体服务器,保证启动后,推流地址和打开地址都实时重连,只要恢复后立即连上继续采集和推流。
24. 根据不同的流媒体服务器类型,自动生成对应的rtsp、rtmp、hls、flv、ws-flv、we


