如何找到Gstreamer瓶颈?
我有一个glvideomixer接收器,可以在4x4矩阵阵列中同时显示16个720p-60Hz视频。当所有16个视频源都来自16个不同的“h264主配置文件”文件时,所有视频都运行平稳,但当我从4个抓取卡(4 x 4HDMI输入端口设置为1280x720-60Hz,与视频文件相同)获取视频时,输出会变得断断续续 管道非常简单:如何找到Gstreamer瓶颈?,gstreamer,Gstreamer,我有一个glvideomixer接收器,可以在4x4矩阵阵列中同时显示16个720p-60Hz视频。当所有16个视频源都来自16个不同的“h264主配置文件”文件时,所有视频都运行平稳,但当我从4个抓取卡(4 x 4HDMI输入端口设置为1280x720-60Hz,与视频文件相同)获取视频时,输出会变得断断续续 管道非常简单: glvideomixer(name=vmix) ksvideosrc(device-index=0...15)->capsfilter(video/x-raw,fo
glvideomixer(name=vmix)
ksvideosrc(device-index=0...15)->capsfilter(video/x-raw,format=YV12,framerate=60/1,height=720,width=1280)->vmix.sink_0...15
注意:ksvideosrc元素仅在Windows平台上可用
AFAIK管道是基于GL的,因此当glvideomixer将所有视频流视为GL纹理时,所有视频流都隐式上载到GL上下文。我是对的
但我不明白为什么当我使用16个视频文件时,所有文件都能顺利运行,即使在理论上,这个过程更复杂,因为计算机必须在将这些流发送到GPU之前对其进行解码,而当我使用抓取卡时,所有输出都会断断续续
我非常确定卡片的流格式是原始的YV12,因为我设置了capsfilter元素来显式地选择该流。这里是抓取器的链接:
我认为PCIe总线中存在瓶颈,但我不确定,因为GPU是AMD FirePro W7100,运行速度为16倍,4个抓取卡是4倍PCIe,运行速度为4倍
需要注意的是,从抓取器发出的多达13个视频信号都能顺利运行。再加一个,就会出现口吃
那么:如何知道瓶颈在哪里
非常感谢
编辑:
钻机为:
- MB:Asus x99豪华USB 3.1:
- CPU:Hexacore i7-5930K具有40个PCIe通道:
- RAM:Kingston Hyperx PC4 21300 HX426C15FBK2/8双通道设置:
- GPU:AMd FirePro W7100 8Gb GDDR5 256位:
- 硬盘驱动器:金斯顿SSD Now V300: