iMX6 gstreamer multiple encode

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

iMX6 gstreamer multiple encode

2,168件の閲覧回数
andreas_eriksso
Contributor II

Hi,

I have a board receiving 1920x1080p25 hdmi via the TC358743 HDMI->CSI chip, all is working well but I would like to be able to do two simultaneous H264 encodings of the stream, one for recording and one for streaming out over the network.

The pipeline below works but the framerate is very poor (~8fps), I have tried to scale down the input using the imxipuvideotransform element but it doesn't appear to make any difference.

I also tried the 352MHz VPU setting in the kernel but that didn't affect performance either.

What can I do to increase the framerate?

The pipeline:

GST_DEBUG=*:3 gst-launch-1.0 imxv4l2videosrc device=/dev/video3 fps=25 \
! queue ! imxipuvideotransform ! "video/x-raw,width=1280,height=720" ! tee name=t \
t. ! queue ! imxvpuenc_h264 bitrate=15000 gop-size=15 me-search-range=3 \
! perf ! queue ! filesink sync=false location=test.h264 \
t. ! queue ! imxvpuenc_h264 bitrate=2500 gop-size=15 me-search-range=3 ! queue \
! udpsink sync=false host=192.168.2.33 port=5000 -v

Any suggestions are appreciated!

Best regards,

Andreas

ラベル(3)
3 返答(返信)

2,008件の閲覧回数
andreas_eriksso
Contributor II

Hi Igor and thanks for you fast response!

Yes, I'm using community gstreamer plugins (from buildroot), are NXP plugins generally considered faster?

I will try to re-target to NXP linux and NXP plugins to see if performance increases.

My project required to be able to record at high quality (i.e. 1080p or 720p at high bitrate, 20mbps, no dropped frames) but also stream a "live view" of the video at preferrably lower quality and with dropped frames acceptable, what would be your guess on what path to pursue?

I was thinking that one option could be to resize the live view stream with the IPU and compress it to a lower bitrate while maintaining the original 1080p for recording, maybe this isn't feasible. I have another option on lowering the input resolution to 720p.

Also, when increasing the VPU frequency but not seeing any performance increase, is this an indication that the memory bandwidth is the problem?

Best regards,

Andreas

0 件の賞賛
返信

2,008件の閲覧回数
igorpadykov
NXP Employee
NXP Employee

Hi Andreas

>when increasing the VPU frequency but not seeing any performance increase,

>is this an indication that the memory bandwidth is the problem?

I think this is correct assumption.

Best regards
igor

0 件の賞賛
返信

2,007件の閲覧回数
igorpadykov
NXP Employee
NXP Employee

Hi Andreas

seems community gstreamer-imx plugins are used in the case, one can try with nxp

imx-gst1.0-plugins described in Linux Guide included in Linux L4.14.98_2.0.0 Documentation

and nxp linux from source.codeaurora.org/external/imx/linux-imx repository:

linux-imx - i.MX Linux kernel 

Also one can try to analyse internal buses usage and tweak IPU QoS configured with IOMUXC_GPR6:

i.MX6 MMDC Profiling: What is BUSY_COUNT? 

IMX6 Memory Bandwidth Usage | iMX6 Board Memory 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------