iMX6 Quad 或 iMX8 为 1080p @ 60fps?

1080p @ 60fps for the iMX 6 Quad or iMX 8?

我正在尝试在 iMX 6 Quad 上同时进行视频编码和流式传输。目前,这是我正在使用的管道:

gst-launch-1.0 -v videotestsrc num-buffers=300 ! video/x-raw,format=YUY2,width=1280,height=720,framerate=60/1! videoconvert ! video/x-raw,format=I420 ! \
   tee name=t \
   t. ! queue ! imxvpuenc_h264 ! h264parse ! mp4mux ! filesink location="test-3.mp4" \
   t. ! queue ! imxipuvideosink

请注意,videotestsrc 用于模拟具有 YUY2 输出格式的相机。

我不能超过 720p @ 60fps [这也包括 1080p 的任何帧速率]。由于我设置的硬件或管道,这是性能瓶颈吗?因为我收到这样的警告消息:

   WARNING: from element /GstPipeline:pipeline0/GstImxIpuVideoSink:imxipuvideosink0: A lot of buffers are being dropped.
   Additional debug info:
   gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstImxIpuVideoSink:imxipuvideosink0:
   There may be a timestamping problem, or this computer is too slow.

此外,如果有人有 iMX 8 板,您能否尝试 运行 1080p @ 60fps 并查看此管道是否有任何性能问题?

gst-launch-1.0 -v videotestsrc num-buffers=300 ! video/x-raw,format=YUY2,width=1920,height=1080,framerate=60/1! videoconvert ! video/x-raw,format=I420 ! \
   tee name=t \
   t. ! queue ! imxvpuenc_h264 ! h264parse ! mp4mux ! filesink location="test-3.mp4" \
   t. ! queue ! imxipuvideosink

您的管道中存在几个瓶颈:

  1. 首先,让 videotestsrc 生成 1080 流太过分了。我建议尽可能使用相机,或者至少将 pattern 属性 更改为 black.
  2. 不要使用 videoconvert,那是基于软件的。在 imx6 中,您可以使用基于硬件的 imxipuvideotransformimxg2dvideotransform