随笔
1、分辨率
必须开启码率控制功能,让一开始的码率就维持设置的码率,对应的分辨率才可设置成功;否则,一开始默认码率都是0开始,设置较高的分辨率,一开始显示并不会正确
2、媒体设备接口
enumerateDevices接口获取到的媒体设备信息,如若之前摄像头之类未经授权获取,则此时取到的label标签等值会为空,否则会显示具体的媒体设备名称
3、合流播放首屏卡屏
当流数据过来时,先发音频流数据再发视频流数据,此时视频缓冲区的起始值就不是0,而当前开始播放时间是0,此时就有可能造成首帧卡屏;
可通过跳转到视频缓冲区内的关键帧位置开始播放解决。
4、合流直播关键帧获取
通过计算pts/90000获取关键帧的播放时间点,解码时可创建一个缓冲区保存每个关键帧的播放时间点,这样seek时只要去该缓冲区取其最近的前关键帧时间点即可实现seek
5、H5,HTTPS环境下,不可访问HTTP资源,即不可降级访问
6、手机QQ浏览器未启用X5内核前,是用系统内核,支不支持MSE由系统内核决定;启用X5内核后,由qq浏览器本身X5内核决定
7、浏览器摄像头被占用推流横屏时,另一个页面占用该摄像头推竖屏流的话就会失败
8、chrome 调试
崩溃信息:chrome://crashes/
WebRTC:chrome://webrtc-internals/ 停止推流后5分钟调试信息才会消失
自动播放:chrome://media-engagement/
9、帧率达不到,拉流会出现间隔几秒卡顿的现象
由于设备和浏览器的限制,部分浏览器对设置的 Video Profile 不一定能全部适配。这种情况下浏览器会自动调整分辨率,计费也将按照实际分辨率计算。
10、mac 推流帧率需达到25
Safari 浏览器不支持自定义视频帧率(默认为 30 fps)。如果你设置的视频帧率不是 30 fps,Safari 浏览器可能会修改或者拒绝你的设置
11 自动播放
可自动播放例外条件:上面我们已经提到如果视频本身已经被设置为静音的情况下,那么浏览器将不会再拦截其加载进行自动播放。
同时如果用户此前点击过自动播放的话那么下次再访问同样的网站,那么浏览器默认情况也不会拦截其播放,而在移动设备上如果用户选择将网站添加到主屏幕上也就是经常访问的网站,这种情况下同样可以自动播放。
最后:根据谷歌统计数据如果网站视频被大量播放例如视频网站,这种情况下也不会被拦截掉自动播放功能”
12 黑屏问题
尝试关闭硬件加速模式