【问题标题】:libav ffmpeg multiple streams performance issuelibav ffmpeg 多流性能问题
【发布时间】:2015-06-16 23:33:27
【问题描述】:

我有一个能够同时生成 5 个 mpeg 传输流的程序。每个流都有自己的上下文,并在独立的线程中完成。当只有一个流处于活动状态时,一切都很好。一旦我激活另一个流,我的帧速率就会大大下降。两个流仍然可以正常工作,只是帧速率很慢。我已经追踪到对 av_interleaved_write_frame 的调用。它从单个流时的大约 4 毫秒到两个流时超过 50 毫秒。我在一个带有超线程的 6 核 haswell-e 上运行,并且机器远未超载。

【问题讨论】:

  • 您是否检查了单个 cpu 核心使用情况?一个或多个可能会超载..
  • 是的,没有一个核心被钉住

标签: ffmpeg libav


【解决方案1】:

首先测试如果运行同一个应用的两个独立进程,每个应用都有一个流,两个实例的性能都很好。如果是,我认为这可能与您的应用程序中的多线程问题有关。请检查当您在不同线程中激活多个流时,这些线程是如何同步的。这可能是您代码中的线程同步问题。

【讨论】:

  • 完全独立的线程之间没有同步。运行此应用程序的两个单独副本是有问题的。也许我可以简化为一个更简单的测试用例
猜你喜欢
  • 1970-01-01
  • 2015-10-03
  • 2016-11-10
  • 2012-01-06
  • 2019-10-03
  • 2019-07-14
  • 1970-01-01
  • 2018-12-30
  • 2014-02-24
相关资源
最近更新 更多