我有使用x264编码器的Linphone开源应用程序。默认情况下,它在一个线程上运行:
x264_param_t *params= .....
params->i_threads=1;
我添加了使用所有处理器的能力:
long num_cpu=1;
SYSTEM_INFO sysinfo;
GetSystemInfo( &sysinfo );
num_cpu = sysinfo.dwNumberOfProcessors;
params->i_threads=num_cpu;
问题是如何知道在视频流中x264运行(在我的情况下)4个处理器?
因为Task Manager -> Performance -> CPU usage history
并未明确。
我使用的是Windows 7
谢谢,
答案 0 :(得分:1)
在Windows任务管理器中,请务必选择View -> CPU History -> One Graph Per CPU
。如果它看起来仍然不像所有处理器内核都以全速运行,那么可能某些资源正在使编码线程匮乏,并且存在将数据输入编码器的瓶颈。
答案 1 :(得分:1)
有三个容易看到的迹象表明编码可以利用多个核心:
此外,您可以使用处理器关联掩码(以编程方式,并通过任务管理器)将应用程序限制为单CPU。如果x264使用多个处理器,则设置掩码将严重影响应用程序性能。