一、背景
用一段采集到的桌面数据流进行编码,复用后生成AVI文件,结果AVI文件播放过程中会有花屏现象。
环境:ffmpeg二次开发环境
二、分析
1.首先是想办法把花屏的问题复现出来,但是尝试了很多参数组合,经过多轮测试,依然没有复现出来,直到最后找到了一个好方法:采集带有复杂内容的Excel表格的桌面内容。因为Excel表格中但凡有一点花屏都能很容易看出来
2.分析花屏的原因,这个问题在出现的时候非常没有头绪,无法直接在代码中分析到,于是到网上搜罗了很多关于花屏问题解决的文章,然后发现了下面这个文章
https://blog.csdn.net/matrix_laboratory/article/details/71757493
文章里面有这样一段话
这段话对应的花屏现象正是和我遇到的非常类似,于是准备从pts入手排查这个问题
3.pts出问题的原因比较简单,即没有单调递增就会触发,所以把AVI复用过程中pkt的pts都打印出来,就一目了然了
时间基转换
1/90000 ----->