我有一个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,format=YV12,framerate=60/1,height=720,width=1280)->vmix.sink_0...15
注意:ksvideosrc元素仅适用于Windows平台。
AFAIK管道是基于GL的,因此当glvideomixer将它们视为GL纹理时,所有视频流都会隐式上传到GL上下文。我是对的?
但我不明白为什么当我使用16个视频文件时,所有运行都很顺利,即使理论上这个过程更复杂,因为计算机必须在将这些流发送到GPU之前解码这些流,并且当我使用抓取卡,所有输出都是结结巴巴。
我很确定这些卡的流格式是RAW YV12,因为我设置了capsfilter元素以明确选择该流。这里是抓取器的链接:http://www.yuan.com.tw/en/products/capture/capture_sc510n4_hdmi_spec.htm
我认为PCIe总线存在瓶颈,但我不确定,因为GPU是AMD FirePro W7100以16x运行而4个采集卡是4x PCIe以4x运行。
应该注意的是,所有这些都可以平稳地运行来自抓取器的13个视频信号。再加上口吃了。
那么:如何知道瓶颈在哪里?
非常感谢提前。
编辑:
装备是: