关于视频中的黑屏、花屏、绿屏问题
我们在做音视频开发的时候难免会遇到一些很棘手的问题,但是我们只要找准问题出现的阶段,定位问题的根源就会轻松很多。
前几天我看了一篇总结这些问题的文章,写的很好,根据自己遇到的问题,我又总结了一下。
首先我们要知道(端对端)视频处理的整个过程,我们才能更体面的分析。
上图就是(端对端处理的整个过程)。
我们对这类问题的分析,应该是一个端到端逐步排 查的流程。每一个环节都可能引发黑屏、花屏、绿 屏问题的产生,这也是我们准确分析问题所面临的挑战。
角色分析:
- 视频采集: 如果是webrtc格式的视频数据,那么我们可以在发 送模块hook视频编码数据,接下来将视频编码数 据的h264或h265视频数据保存下来;如果是 rtmp,我们可以hook flv视频数据,将其保存为flv
视频;如果是his、dash或者mp4,那么我们保存二原始视频数据即可。 - 接收端:和采集视频数据一样,我们可以介入播放流程hook并保存待播放数据。但是对于直播或点播场 景,也有一个比较简单的方法就是,一般CDN都为我们保存了原始数据,我们可以直接利用CDN提供的播放地址确认播放视频数据是否正常。
- 问题分析:
如果是采集端出现问题,那就可以从摄像头相关配置入手了。
如果是接收端出现问题,我们可以分几部判断,第一步可以查看刚开始接收的数据,如果出现问题那很大可能就是传输出现问题了,那我们就可以用从传输协议开始入手,如果传输没问题,那很可能就是我们接收数据后在处理码流的时候出问题了。
附上一些参考资料:
编码
- 确认视频源是否正常:源不对,后续所有环节都会有问题。用户本地上传的视频或图片可能本身 就有问