我有一个能够同时生成5 mpeg传输流的程序。每个流都有自己的上下文,并在一个独立的线程中完成。当只有一个流处于活动状态时,一切都很好。一旦我激活另一个流,我的帧速率就会大幅下降。两个流仍然正常工作只是帧速率很慢。我已将其跟踪到对av_interleaved_write_frame的调用。它从单个流的大约4毫秒到两个小时的50毫秒。我正在使用超线程的6核心运行,并且机器远没有过度使用。
答案 0 :(得分:1)
首先测试是否运行同一个应用程序的两个独立进程,每个应用程序只有一个流,两个实例的性能都很好。如果是,我认为它可能与您的应用中的多线程问题有关。请检查在不同线程中激活多个流时是否同步这些线程。它可能是代码中的线程同步问题。