FFmpeg 学习之 定时器解码两路视频并进行对比

本文探讨了使用FFmpeg进行两路视频解码时如何同步及对比,通过设置定时器和帧号同步,确保本地和网络视频解码一致。在解码过程中,无论网络视频是否丢帧,本地视频始终解码。对于对比运算,提出了在不同场景下处理图片内存的策略,包括线程间通信和动态内存分配。
摘要由CSDN通过智能技术生成

两路视频跳帧的一些想法:

关于多路视频,如果不涉及对比的话,多线程是最佳选择,来一路视频的话,直接开一个线程去显示处理,非常有效,方便。

但如果说要求两路视频的图像的相似度,那么便牵扯到解码同步问题,如果说一路是本地视频文件,一路是网络视频流,那么很可能由于其帧型的不同,导致解码效率不同,相同序号的帧出现在两个时刻。感觉对比的话,应该是在线程里,当然,鉴于计算量比较大,比较的时候可以再开线程,此为后话。

再说同步的问题,可设置标志位,标定帧号。由于解码本地视频丢帧率较小,且由于帧型而导致解码效率要比网络视频的解码效率要高,故可以将同步开关设置在本地视频解码中。例如帧号,本地视频设置为N1,网络视频设置为N2,两路同时解码,N1 与 N2 自加。后续在N1 < N2 的情况下,N1 解码,也即本地视频解码。这样做有一个前提条件,就是网络视频不丢帧,且解码不丢帧,否则本地视频的解码进度将逐渐滞后于网络视频的解码。

考虑到丢帧的情况,解释说现在要考虑的是:

1、只要是进行了解码,不管成功与否,N2自加,N1解码自加

2、N2 解码成功,即网络视频端解码成功,N2自加,N1的话自加,可能导致N1的进度进度小于N2,即网络视频播放进度在本地视频之前。

综上,不管网络端是否解码成功,本地接口都必须进行解码,两路视频帧号自加运算。


视频解码,本人一直喜欢用定时器,下面谈一些关于定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值