av_seek_frame 导致花屏的解决方法

本文探讨了视频花屏的原因,主要与关键帧技术有关。av_seek_frame定位到非关键帧时,仅读取了部分变化区域,导致画面不完整。解决方案是先定位到关键帧,再读取后续帧。示例代码展示了如何修正这个问题。
摘要由CSDN通过智能技术生成

为什么会花屏?

我们知道,视频的画面其实也是由一帧帧组成的,一帧就是一张图片,通常来讲,1秒种有30帧左右的,这样连续播放起来,我们看起来的画面就动起来的。

  对于一个连续的镜头来讲,比如说,镜头在男主的脸部,他在讲话,持续12秒左右,这12秒内来讲,就有360帧,这样就话,就需要360张图片的数据,对于无压缩的1080P画面来讲,每张需要 1920x1080x3=约6MB,360张就是 6M x 360 = 2GB, 对120分钟的电影来讲,可是需要超过1TB的存放空间,如果我们使用JPEG来压缩图片,算它有30倍的压缩比(你可以屏蔽一张全屏图,然后保存为JPEG和BMP格式试试看压缩有多少),这样算下来的结果,也还有30多G,但是,我们下载的一些电影,你可以看到它的体积非常小,可能只有2G左右,这样高的压缩比,是如何做到的呢?

  通常来讲,电影的一个镜头的时间内,画面的内容是非常多重复部位的,像前面说的男主在讲话,很可能只是他的嘴型不同,这就是说,在那12秒内,只是那个非常小的区域有内容有改变!而这个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值