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视频流局部花屏解决方法的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg解码H264及swscale缩放详解

视频学习笔记:Android ffmpeg解码多路h264视频并显示

ffmpeg用于将视频编码为H264编解码器格式

使用ffmpeg实现对h264视频解码 -- (实现了一个易于使用的c++封装库)

音视频开发中如何使用ffmpeg 一帧H264解码YUV420P?

WebRTC 视频编解码类型的选择 VP8 H264 还是其他?(openh264编码,ffmpeg解码)