Difference between revisions of "Uses cases with Naon Embedded Linux Kit"

From DAVE Developer's Wiki
Jump to: navigation, search
Line 20: Line 20:
 
gst-launch filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264  !  omx_h264dec ! omx_scaler ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink
 
gst-launch filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264  !  omx_h264dec ! omx_scaler ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink
 
</pre>
 
</pre>
 
 
=====Use case #3=====
 
=====Use case #3=====
 
+
* Description: playing two videos (both are hrdware decoded)
Videos H264Raw 1920x1080 and 848x360 @25fps
+
** video #1: H264 Raw 1920x1080 @25fps
 
+
** video #2: H264 Raw 848x360 @25fps
 
* CPU usage: 65%
 
* CPU usage: 65%
 
<pre class="board-terminal">
 
<pre class="board-terminal">
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=816  sink_01::outX=0 sink_01::outY=0 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix. filesrc location=/home/root/working-dir/iceage4-1080p.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix.
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=816  sink_01::outX=0 sink_01::outY=0 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix. filesrc location=/home/root/working-dir/iceage4-1080p.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix.
 
</pre>
 
</pre>
 
 
 
=====Use case #4=====
 
=====Use case #4=====
Description: Some videos with text in overlay on FullHD video.
+
This section shows some different video combinations with overlayed text.
 
+
=====Use case #4.1=====
 +
* Description:
 
* CPU usage: 95%
 
* CPU usage: 95%
 
<pre class="board-terminal">
 
<pre class="board-terminal">
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=816  sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix. filesrc location=/home/root/working-dir/iceage4-1080p.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=left valign=bottom text="UTC time:" shaded-background=true ! mix.
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=816  sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix. filesrc location=/home/root/working-dir/iceage4-1080p.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=left valign=bottom text="UTC time:" shaded-background=true ! mix.
 
</pre>
 
</pre>
 
+
=====Use case #4.2=====
 
+
* Description: Video 1920x1080 rescaled in HW and video 480p with textoverlay.
 
 
 
 
Video 1920x1080 rescaled in HW and video 480p with textoverlay.
 
 
 
 
 
[[File:PiPseparated.jpg|400px]]
 
 
 
 
 
 
* CPU usage: 95%
 
* CPU usage: 95%
 
<pre class="board-terminal">
 
<pre class="board-terminal">
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1280 sink_00::outHeight=720  sink_01::outX=1072 sink_01::outY=720 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264,framerate=(fraction)30000/1252' ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location=/home/root/working-dir/battleship-ressurrecting_h1080p.h264 ! 'video/x-h264,framerate=(fraction)30000/1252' ! h264parse access-unit=true ! omx_h264dec ! mix.
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1280 sink_00::outHeight=720  sink_01::outX=1072 sink_01::outY=720 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264,framerate=(fraction)30000/1252' ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location=/home/root/working-dir/battleship-ressurrecting_h1080p.h264 ! 'video/x-h264,framerate=(fraction)30000/1252' ! h264parse access-unit=true ! omx_h264dec ! mix.
 
</pre>
 
</pre>
 
+
[[File:PiPseparated.jpg|400px]]
 
+
=====Use case #4.3=====
 
+
* Description: Video mp4 H264 1920x1080 and H264raw 480p with overlay.
 
 
 
 
Video mp4 H264 1920x1080 and H264raw 480p with overlay.
 
 
 
 
 
[[File:PipFull.jpg|400px]]
 
 
 
 
 
 
* CPU usage: 92%
 
* CPU usage: 92%
 
<pre class="board-terminal">
 
<pre class="board-terminal">
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=1080  sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264 ! omx_h264dec ! mix.
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=1080  sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264 ! omx_h264dec ! mix.
 
</pre>
 
</pre>
 
+
[[File:PipFull.jpg|400px]]
 
+
=====Use case #4.4=====
 
+
* Description: Videomix FullHD 1920x1080@30fps and streaming H264 only video 320x240 rescaled in HW with overlay
 
 
Videomix FullHD 1920x1080@30fps and streaming H264 only video 320x240 rescaled in HW with overlay
 
 
 
 
* CPU usage: 30%
 
* CPU usage: 30%
 
<pre class="board-terminal">
 
<pre class="board-terminal">
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=1080 sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-code=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false rtspsrc location=rtsp://192.168.0.33:5544 ! rtph264depay ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264 ! omx_h264dec ! mix.
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=1080 sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-code=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false rtspsrc location=rtsp://192.168.0.33:5544 ! rtph264depay ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264 ! omx_h264dec ! mix.
 
</pre>
 
</pre>
 
+
=====Use case #4.5=====
 
+
* Description: Stream H264 320x240 rescaled at 800x600
 
 
 
 
Stream H264 320x240 rescaled at 800x600
 
 
 
 
* CPU usage: 9%
 
* CPU usage: 9%
 
<pre class="board-terminal">
 
<pre class="board-terminal">
Line 88: Line 63:
 
video/x-raw-yuv,width=800,height=600' !omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false
 
video/x-raw-yuv,width=800,height=600' !omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false
 
</pre>
 
</pre>
 
+
=====Use case #4.6=====
 
+
* Description: Video mp4 1920x1080 and streaming H264 320x240 rescaled at 800x600 with clockoverlay  
 
 
 
 
Video mp4 1920x1080 and streaming H264 320x240 rescaled at 800x600 with clockoverlay  
 
 
 
 
 
[[File:PiPstreaming.jpg|400px]]
 
 
 
 
 
 
* CPU usage: 35%
 
* CPU usage: 35%
 
<pre class="board-terminal">
 
<pre class="board-terminal">
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=1080 sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=800 sink_01::outHeight=600 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false rtspsrc location=rtsp://192.168.0.33:5544 ! rtph264depay ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264! omx_h264dec ! mix.
 
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=1080 sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=800 sink_01::outHeight=600 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false rtspsrc location=rtsp://192.168.0.33:5544 ! rtph264depay ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264! omx_h264dec ! mix.
 
</pre>
 
</pre>
 +
[[File:PiPstreaming.jpg|400px]]

Revision as of 10:45, 4 July 2012

WorkInProgress.gif

Introduction[edit | edit source]

This page lists some statistics and information about real use cases based on Naon Embedded Linux Kit (NELK).

Gstreamer-based applications[edit | edit source]

For the sake of completeness, for each use case the full command line used to run the test applicaiton is provided.

Video decoding and playing[edit | edit source]

Output is HDMI port conneted to Full HD screen.

CPU usage referes to the process under test as reported by top application.

Use case #1[edit | edit source]
  • Description: playing H264 RAW video 1920x1080@25fps
  • CPU usage: 30%
decode_display_a8host_debug.xv5T -w 1920 -h 1080 -f 25 -i /home/root/working-dir/battleship-ressurrecting_h1080p.h264
Use case #2[edit | edit source]
  • Description: playing H264 MP5 video 1920x1080@30fps demuxed video only
  • CPU usage: 12%
gst-launch filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264  !  omx_h264dec ! omx_scaler ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink
Use case #3[edit | edit source]
  • Description: playing two videos (both are hrdware decoded)
    • video #1: H264 Raw 1920x1080 @25fps
    • video #2: H264 Raw 848x360 @25fps
  • CPU usage: 65%
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=816  sink_01::outX=0 sink_01::outY=0 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix. filesrc location=/home/root/working-dir/iceage4-1080p.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix.
Use case #4[edit | edit source]

This section shows some different video combinations with overlayed text.

Use case #4.1[edit | edit source]
  • Description:
  • CPU usage: 95%
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=816  sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix. filesrc location=/home/root/working-dir/iceage4-1080p.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=left valign=bottom text="UTC time:" shaded-background=true ! mix.
Use case #4.2[edit | edit source]
  • Description: Video 1920x1080 rescaled in HW and video 480p with textoverlay.
  • CPU usage: 95%
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1280 sink_00::outHeight=720  sink_01::outX=1072 sink_01::outY=720 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264,framerate=(fraction)30000/1252' ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location=/home/root/working-dir/battleship-ressurrecting_h1080p.h264 ! 'video/x-h264,framerate=(fraction)30000/1252' ! h264parse access-unit=true ! omx_h264dec ! mix.
Error creating thumbnail: File with dimensions greater than 12.5 MP
Use case #4.3[edit | edit source]
  • Description: Video mp4 H264 1920x1080 and H264raw 480p with overlay.
  • CPU usage: 92%
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=1080  sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false filesrc location=/home/root/working-dir/480p-ice-int.h264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264 ! omx_h264dec ! mix.
Error creating thumbnail: File with dimensions greater than 12.5 MP
Use case #4.4[edit | edit source]
  • Description: Videomix FullHD 1920x1080@30fps and streaming H264 only video 320x240 rescaled in HW with overlay
  • CPU usage: 30%
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=1080 sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=848 sink_01::outHeight=360 ! omx_ctrl display-code=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false rtspsrc location=rtsp://192.168.0.33:5544 ! rtph264depay ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264 ! omx_h264dec ! mix.
Use case #4.5[edit | edit source]
  • Description: Stream H264 320x240 rescaled at 800x600
  • CPU usage: 9%
gst-launch rtspsrc location=rtsp://192.168.0.33:5544 ! rtph264depay ! h264parse access-unit=true ! omx_h264dec ! omx_scaler ! '
video/x-raw-yuv,width=800,height=600' !omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false
Use case #4.6[edit | edit source]
  • Description: Video mp4 1920x1080 and streaming H264 320x240 rescaled at 800x600 with clockoverlay
  • CPU usage: 35%
gst-launch omx_videomixer port-index=0 framerate=25 name=mix sink_00::outX=0 sink_00::outY=0 sink_00::outWidth=1920 sink_00::outHeight=1080 sink_01::outX=360 sink_01::outY=150 sink_01::outWidth=800 sink_01::outHeight=600 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false rtspsrc location=rtsp://192.168.0.33:5544 ! rtph264depay ! h264parse access-unit=true ! omx_h264dec ! clockoverlay halign=center valign=bottom text="UTC time:" shaded-background=true ! mix. filesrc location="/home/root/working-dir/1080p-131852575.mp4" ! qtdemux name=demux demux.video_00 ! queue !  nal2bytestream_h264! omx_h264dec ! mix.
Error creating thumbnail: File with dimensions greater than 12.5 MP