现象
同一网络环境下,三星平板播放流畅,OEM平板播放花屏现象严重。使用UDP进行连接播放,FFmpeg进行硬解码。
原因查找
最简单的情况是因为丢包
那是什么引起的丢包呢?
是服务器到客户端的丢包?
还是视频源到服务器的丢包?
要逐步分析来优化。
现在首先要排除:服务器到客户端的丢包 UDP传输
日志分析:花屏的情况下并不存在丢包。
排除服务器到客户端的丢包。
如果UDP传输有丢包的话,可以扩大UDP的接收缓冲。
分析是不是解码器的原因?
硬解码对硬件的适配性要求比较高。改回软解播放之后正常。
另外在分析的过程中发现,硬解播放的时候有些平板不能提前指定解码的文件宽高,否则linesizes会解析出错无法解码。硬解码的linesizes正常(举例)是1920,1920,0的格式。软解码的才是1920,960,960.提前指定了宽高的话,硬解码情况下linesizes也会变成软解码的格式,然后无法解码。
暂时无法解决适配性的问题,改回软解码。