DM36x LI-HDI365 component input live preview to LI-DVI1 HDMI output GStreamer pipelines

From RidgeRun Developer Connection

Jump to:navigation, search

Contents

Introduction

Live streaming can be done on DM368 Leopardboard hardware using LI-HDI365 for component video in and LI-DVI1 for HDMI output with the GStreamer pipelines documented below. RidgeRun offers a pre-built bootable SD card image you can use or you can configure your RidgeRun evaluation or professional SDK to build the image yourself.

References

720p HDMI output pipelines

Pipeline 1 - Testing using 'videotestsrc'

gst-launch -v videotestsrc !video/x-raw-yuv,width=1280,height=720 ! TIDmaiVideoSink videoStd=720P_60 videoOutput=DVI accelFrameCopy=FALSE sync=false

Pipeline 2 - 720P HDMI Output recording.

H264ENC_PARMS="encodingpreset=2 ratecontrol=2 intraframeinterval=23 idrinterval=46 targetbitrate=3000000 profile=100 level=50 entropy=1 t8x8inter=true t8x8intra=true single-nalu=true"

gst-launch -v --gst-debug-level=2 v4l2src always-copy=FALSE input-src=component chain-ipipe=true num-buffers=3000 ! 'video/x-raw-yuv,format=(fourcc)NV12,width=1280,height=720' ! \ 
           dmaiaccel ! dmaienc_h264 $H264ENC_PARMS ! queue ! dmaiperf print-arm-load=true ! qtmux ! queue ! filesink location=test.mp4 sync=false enable-last-buffer=false

Pipeline 3 - Live preview 720P HDMI Output recording and playing on the tv monitor.

H264ENC_PARMS="encodingpreset=2 ratecontrol=2 intraframeinterval=23 idrinterval=46 targetbitrate=3000000 profile=100 level=50 entropy=1 t8x8inter=true t8x8intra=true single-nalu=true"

gst-launch -e v4l2src input-src=component chain-ipipe=true always-copy=false num-buffers=3000 ! 'video/x-raw-yuv,format=(fourcc)NV12,width=1280,height=720' ! dmaiaccel ! \
           tee name=t1 ! TIDmaiVideoSink enable-last-buffer=false videoStd=720P_60 videoOutput=DVI t1. ! queue ! dmaienc_h264 $H264ENC_PARMS ! queue ! dmaiperf print-arm-load=true ! \ 
           qtmux ! queue ! filesink location=test.mp4 sync=false enable-last-buffer=false

1080p HDMI output Pipelines

Pipeline 1 - Testing using 'videotestsrc'

gst-launch -v videotestsrc !video/x-raw-yuv,width=1920,height=1080 ! TIDmaiVideoSink videoStd=1080P_25 videoOutput=DVI accelFrameCopy=FALSE sync=false

Pipeline 2 - 1080p hdmi output playing on the TV Monitor

gst-launch -v v4l2src always-copy=false input-src=component ! 'video/x-raw-yuv,format=(fourcc)NV12,width=1920,height=1080' ! dmaiaccel ! dmaiperf ! TIDmaiVideoSink \
           videoStd=1080P_25 videoOutput=DVI


Pipeline 3 - 1080p hdmi output playing on the TV Monitor

gst-launch -v --gst-debug-level=2 v4l2src input-src=component chain-ipipe=true always-copy=false ! 'video/x-raw-yuv,format=(fourcc)NV12,width=1920,height=1080' \  
! dmaiaccel ! dmaiperf print-arm-load=true ! TIDmaiVideoSink enable-last-buffer=false videoStd=1080P_25 

SDK Configurations for 720p output through LI-DVI1

Architecture configurations --->

Video Output ---> PRGB
Maximum Video Output Buffer Size (720P) --->
Maximum Video Input Buffer Size (720P) --->

Proprietary Software ---->

Amount of reserved memory from the Kernel -> 0x3200000 Amount of reserved memory for cmemk -> 0x1E00000

Kernel configuration -> Extra kernel arguments

dm365_generic_prgb_encoder.mode=1280x720MR-16@60

SDK Configurations for 1080p output through LI-DVI1

Architecture configurations ---> Video Output ---> PRGB

Maximum Video Output Buffer Size (1080I) --->
Maximum Video Input Buffer Size (1080P) --->
Proprietary Software ---->

Amount of reserved memory from the Kernel -> 0x3800000
Amount of reserved memory for cmemk -> 0x1E00000
Kernel configuration -> Extra kernel arguments

dm365_generic_prgb_encoder.mode=1920x1080MR-16@60
Navigation
Toolbox