FFmpeg解码H264视频流局部花屏解决方法
Posted Jimmy1224
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg解码H264视频流局部花屏解决方法相关的知识,希望对你有一定的参考价值。
在项目中使用到了FFmpeg实现屏幕广播技术,其物理拓扑图如下:
由于我们的场景是在局域网中,因此基于FFmpeg的udp协议进行播放;当视频流是从windows 10 系统播出时,部分接收端存在局部花屏现象现象;
为了验证花屏问题,我们提出两种解决方案:
-
控制播放源的发送数据大小
-
增加接收缓存区,避免丢包
方法一:
我们把播放源的计算机网络环境从自动监测设置为100M双工时,接收端花屏现象就不存在了;但这个极大浪费了当前的网络带宽,非优选方案
方法二:
通过查询资料,1920*1080高分辨率情况下,FFmpeg发送的数据会比较大,超过了FFmpeg默认最大值,需要扩大接收端的接收缓冲区,其方法修改方法如下:
在FFmpeg的源码中,找到udp.c文件并修改UDP_MAX_PKT_SIZE 默认值
在同等条件下,发现接收端已经不存在局部花屏现象,此方案为最优
参考资料:
https://blog.csdn.net/sz76211822/article/details/87797475
以上是关于FFmpeg解码H264视频流局部花屏解决方法的主要内容,如果未能解决你的问题,请参考以下文章
视频学习笔记:Android ffmpeg解码多路h264视频并显示
使用ffmpeg实现对h264视频解码 -- (实现了一个易于使用的c++封装库)