【问题标题】:speeding up x264 encoding (C++ code with libavcodec)加速 x264 编码(使用 libavcodec 的 C++ 代码)
【发布时间】:2012-08-28 17:59:41
【问题描述】:

我正在尝试捕获 Windows 屏幕(连续屏幕截图)并将它们编码为 x264。为此,我正在使用 libavcodec 提供的 avcodec_encode_video2 函数。但是,这需要大量时间。编码单个帧的时间在 25 – 1800 毫秒之间波动。

我尝试了在屏幕上录制视频的 1080p 和 720p。

这些是我正在使用的设置。这是在具有 4 GB RAM 的 Windows 7、win32 版本构建上测试的。

比特率 = 2000,宽度 = 1920,高度 = 1080 qmin = 0,qmax = 0,max_b_frames = 0,frame_rate = 25,pixel_format = YUV 4:4:4。 其余设置为默认设置,使用 avcodec_get_context_defaults3() 获取。

在一组 250 帧中的 20 帧(连续和随机选择)的样本数据(以毫秒为单位)。 { 121, 106, 289, 126, 211, 30, 181, 58, 213, 34, 245, 50, 56, 364, 247, 171, 254, 83, 82, 229 }

对于应用程序,它必须至少以 15 fps 的速度捕获。有人可以帮忙判断是否可以使用任何选项来提高帧速率。我需要无损编码,但我愿意增加一些文件大小。

提前致谢。

【问题讨论】:

    标签: x264 libavcodec libx264


    【解决方案1】:

    解决问题的简单方法是直接使用libx264,而不是通过avcodec。这使您可以更好地控制 x264,从而提高编码速度。使用 avcodec,它还会进行一些不需要的处理。使用 libx264 可以避免这种情况。

    讲道理,直接使用x264 API。

    【讨论】:

      猜你喜欢
      • 2011-04-02
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 2020-04-27
      • 2012-11-12
      • 2012-03-31
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多