Encoding RAW file on Arm to test performance

classic Classic list List threaded Threaded
1 message Options
gv
Reply | Threaded
Open this post in threaded view
|

Encoding RAW file on Arm to test performance

gv
Hello List,

I am running FFMPEG codecs on an ARM processor.  In an attempt to figure out performance, I am trying to encode the videotestsrc with the MPEG4 software encoder.

I initially pulled together this pipeline, which worked:
gst-launch -e videotestsrc ! video/x-raw-yuv, framerate=15/1,
width=320, height=240 ! ffenc_mpeg4 ! avimux ! filesink location=test.avi


However, I notice that the processor over 100% utilization (Not surprising, since I am doing in software).  In an attempt to figure out how under real time it is, I figured I would create a RAW file on the target with a known length.  (IE---10 seconds) and then, ENCODE that file with a separate command.   That way, I could see if it takes 12 seconds or 20 seconds to encode.  (And I will know how close the processor is to handling it real time.)

To create the RAW file, I pulled together this pipeline, which appeared to work fine:
gst-launch -e videotestsrc ! video/x-raw-yuv framerate=15/1, width=320, height=240 ! filesink location=testraw.avi


Now, I was thinking I could use this command to “TIME” how long it would take to encode the file.  However, I get a bunch of errors.  (At Bottom of post)

time gst-launch -e filesrc location=testraw.avi ! ffenc_mpeg4 ! avimux ! filesink location=test.avi


UPDATE!!!!
I did add the videoparse before the ffenc_mpeg4.  This DID encode the file, and didnt create any errors, but the video looks incorrect.  Almost as if there is a mismatch between the formats.


Any Help or suggestions would be GREATLY appreciated!


** (gst-launch-0.10:2013): CRITICAL **: gst_ffmpegenc_chain_video: assertion `frame_size == GST_BUFFER_SIZE (inbuf)' failed
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2378): gst_base_src_loop (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
streaming task paused, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
root@freescale ~$