测试x264编码器的低延时编码和非延时编码

有点没看懂下文,先记录一下。有时间验证下



http://www.cnblogs.com/lihaiping/p/4224209.html


最近在学x264的编码,经过大量的测试,编码1080P的视频,编码10000帧数据。

在设置为低延时编码的时候:

编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:8.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:8.000000 ms.
编码线程0,一帧耗时:8.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:6.000000 ms.
编码线程0,平均帧编码时间7.24ms.
编码线程0,总编码帧数:10000,得到编码帧数:10000,延时编码帧数:0,单帧最小耗时:5.00,最大耗时:18.00,总消耗时间:104274.000 ms,总编码耗时:72352 ms,平均耗时:0 ms.
结束:1 路编码平均总时间=104274.000000.
结束!!
出第一帧的时间,耗时7ms.
==============================
CPU:
4路编码,25帧2倍速,CPU:65~75%
5路编码,25帧2倍速,CPU:90~95%
8路编码,25帧1倍速,CPU:60~70%

 

当设置为非延时编码时:

编码线程0,一帧耗时:2.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:4.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:5.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:2.000000 ms.
编码线程0,取延时帧,一帧耗时:0.000000 ms.
编码线程0,取延时帧,一帧耗时:0.000000 ms.
编码线程0,取延时帧,一帧耗时:2.000000 ms.
编码线程0,取延时帧,一帧耗时:2.000000 ms.
编码线程0,取延时帧,一帧耗时:0.000000 ms.
编码线程0,取延时帧,一帧耗时:0.000000 ms.
编码线程0,平均帧编码时间1.48ms.
编码线程0,总编码帧数:10000,得到编码帧数:10000,延时编码帧数:6,单帧最小耗时:0.00,最大耗时:24.00,总消耗时间:45206.000 ms,总编码耗时:14774 ms,平均耗时:0 ms.
结束:1 路编码平均总时间=45206.000000.
结束!!
出第一帧的时间,耗时47ms

==============================
CPU:
8路编码,25帧1倍速,CPU:65~80%
5路编码,25帧2倍速,CPU:85~95%
4路编码,25帧2倍速,CPU:55~65%

差距这么大,我自己也惊讶了。

查找了下原因:

(官方)

Each slice adds some bitrate (or equivalently reduces quality), for a variety of reasons: the slice header costs some bits, cabac contexts are reset, mvs and intra samples can't be predicted across the slice boundary.
因为采用低延时编码的时候,每个切片添加了bitrate比特,然后有些算法上下文需要重置,以及帧内预测不能在片内做。(本人的理解。)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FFmpeg是一个开源的音视频编码转换工具,它可以进行视频的编码、解码、转码等任务。在使用FFmpeg进行编码时,可能会出现一定的延时现象,这主要与以下几个因素有关。 首先,编码延时与输入源的帧率和码率有关。高帧率和高码率的视频数据需要消耗更多的系统资源进行编码处理,因此可能会导致编码延时。此外,视频数据的分辨率、色彩空间等也会影响编码延时。 其次,编码延时与所使用的编码器编码参数有关。不同的编码器编码参数对编码速度有着不同的影响。一般而言,压缩比较高的编码器会更加消耗处理资源,从而导致编码延时增加。 另外,编码延时还与硬件设备和系统性能有关。如果计算机的处理性能较,或者存在其他占用资源较多的程序同时运行,都可能导致FFmpeg编码时出现延时现象。此外,硬件加速的使用情况也会影响编码延时,启用硬件加速可以提高编码效率。 为了减少FFmpeg编码延时,可以采取以下一些措施。首先,优化输入源的帧率和码率,尽量降视频数据的处理负荷。其次,选择合适的编码器编码参数,并进行一定的调优,提高编码效率。另外,合理分配系统资源,减少其他程序的占用,保证计算机有足够的处理性能。最后,可以考虑启用硬件加速,利用显卡等硬件设备提高编码速度。 总之,FFmpeg编码延时是受多方面因素影响的,需要根据具体情况进行优化调整,以提高编码效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值