VLC预览高分辨率视频导致视频花屏分析笔记

根据vlc调试打印,是由于解码过慢导致视频画面过慢显示,程序丢弃未解码缓存帧;进而导致画面丢帧且由于丢帧破坏了视频流解码的参考机制使得解码异常即表征为花屏。

因为,vlc底层依赖于开源库ffmpeg的音视频的编解码库。所以,可以从ffmpeg方面入手分析。

参考:点击我  这位朋友的帖子,有如下的解决办法

 根据网上说法,问题应该在于ffmpeg源文件udp.c中 ,UDP_MAX_PKT_SIZE值设置小,将其增大10倍。
修改后重新编译FFmpeg,但是我试了几次没编译成功。
后来发现FFmpeg官网有编译好的库文件供下载,下载下来一替换之前的库文件,发现新版库文件解决了该问题!!!

具体方法:
1.登录官网下载界面:https://ffmpeg.zeranoe.com/builds/;
2.下载Previous FFmpeg 32-bit Shared Versions解压使用其中的.dll文件;
3.下载Previous FFmpeg 32-bit Dev Versions解压使用其中的.h和.lib文件;
4.我用QT开发的编译会报错,注释掉错误//#include 即可。

个人分析:根据上面博主的解决方案分析,应该是在获取码流数据的底层申请的缓存区过小,导致视频数据丢失引起视频画面花屏!所以,博主采用扩大缓存区的方法避免数据丢失。所以,根据这个思想应该从自身项目的取流模块进行追踪分析!

-----------------------------------------------------

后续补充.....

你可能感兴趣的:(音视频学习)